关键字:
KingbaseES、SQL
一、SQL
1.1 SQL是什么
SQL,即structured Query Language,为结构化查询语言。
1.2 SQL的功能
1、对表:增、删、改、查;
2、控制对数据库及其对象的访问;
3、保证数据库的一致性和完整性。
1.3 SQL语法基础
1.3.1 SQL组成介绍
1、SQL语句是由一系列记号组成。
2、记号:用来指明词法单元,可为关键字、标识符、常量或一些特定的符号,记号之间通常使用分隔符(空格或新行)分隔。
(1)关键字:SQL语言中具有特定意义的单词,例如,SELECT、UPDATE等
(2)标识符:用户用来标识SQL语句中所使用的表、列或其它数据库对象的名称,一般都由数字,字母和_组成。
3、以分号“;”作为结束符。
4、注释:在SQL语句中可有注释。
单行注释:使用两个短线-,例如:– This is a standard SQL comment
多行注释:例如:/*… */
1.3.2 SQL语句类型
一共包括四种语句类型,分别是数据定义语言DDL、数据操纵语言DML、数据查询语言DQL、数据控制语言DCL和事务控制语言TCL,具体说明如表所示。
类型 | 对应语句 | 简要说明 |
---|---|---|
数据定义语言DDL | CREATE、DROP、ALTER、TRUNCATE | 主要用来创建、删除、修改数据库中各种对象—表、视图、索引等 |
数据操纵语言DML | INSERT、UPDATE、DELETE、MERGE | 对数据进行增、删、改等操作 |
数据查询语言DQL | SELECT | 由SELECT子句、FROM子句,WHERE子句组成的查询块 |
数据控制语言DCL | GRANT,REVOKE | 授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果等 |
事务控制语言TCL | BEGIN,END / COMMIT,ROLLBACK /SAVEPOINT /SET TRANSACTION ISOLATION LEVEL /LOCK TABLE |
图1-1 SQL语句类型分类
二、SQL常用数据类型和操作符
2.1 常用数据类型
在SQL中,大类上可以分为数值类型、字符类型、日期时间类型、布尔类型、二进制类型还有特殊字符类型,在每个类型中又可以细分成更加细的内容,具体如下表2-1所示。
数值类型 | 对应别名 | 描述 | 范围 |
---|---|---|---|
Smallint | Int2 | 带符号的2字节整数 | -32768到+32767 |
integer | Int,Int4 | 带符号的4字节整数 | -2147483648到+2147483647 |
Bigint | Int8 | 带符号的8字节整数 | -9223372036854775808到+9223372036854775807 |
Numeric | Decimal | 用户指定精度,精确 | 小数点前131072位;小数点后16383位 |
Real | Float4 | 4字节可变精度,不精确 | 6位十进制数字精度 |
Double precision | Float8 | 8字节可变精度,不精确 | 15位十进制数字精度 |
Smallserial | — | 自增2字节整数 | 1到32767 |
Serial | Serial4 | 自增4字节整数 | 1到2147483647 |
Bigserial | Serial8 | 自增8字节整数 | 1到9223372036854775807 |
字符类型 | 对应别名 | 描述 | 范围 |
---|---|---|---|
Character varying[(n)] | Varchar[(n)] | 变长字符串 | 有长度限制 |
Character[(n)] | Char[(n)] | 定长字符串 | 不足补空白 |
text | — | 变长字符串 | 无长度限制 |
日期类型 | 对应别名 | 描述 | 范围 |
— | — | — | — |
Date | — | 4字节只用于日期 | 4713BC到5874897AD |
Timestamp[(p)][without time zone] | — | 8字节日期和时间,无时区 | 4713BC到294276AD |
Timestamp[(p)][with time zone] | Timestamptz | 8字节日期和时间,有时区 | 4713BC到294276AD |
Time[(p)][without time zone] | — | 8字节只用于一日内时间,无时区 | 00:00:00到24:00:00 |
Time[(p)][with time zone] | Timetz | 8字节只用于一日内时间,有时区 | 00:00:00+1459到24:00:00-1459 |
Interval[fields][(p)] | — | 12字节存储时间间隔 -178000000年到178000000年 |
|布尔类型 | 对应别名| 描述| 范围| |–|–|–|–| |Boolean| Bool| 逻辑布尔量 |True/false| |二进制类型 |Bytea|存储二进制字符串 |特殊字符类型 “char” — 1字节 单字节内部类型| |name| —| 64字节| 对象名的内部类型|
2.2 常用操作符
操作符操纵的独立数据成为操作数或者参数,操作符由特殊字符或者关键字组成。
2.2.1 按照操作符操作对象个数分类
1、一元操作符:仅对一个操作数操作。
operator operand
2、二元操作符:对两个操作数操作。
operand1 operator operand2
2.2.2 按照操作符功能分类
按照操作符的功能,操作符可以分为如下五类:
1、算术操作符(13个):+(一元)、+(二元)、-(一元)、-(二元)、*、/、%、^、!、!!、|/、||/、@;
相关类型:数值类型和日期时间及时间间隔类型;
2、比较操作符(6个):>、<、=、、>=、<=;
相关类型:除BLOB、CLOB外的所有类型;
3、串(字符串、位串、二进制位串)操作符(3个):||、(like)、!(not like);
相关类型:字符串类型、位串类型、二进制位串类型;
4、位运算符(6个):~(一元)、&、|、#、>>、<<;
相关类型:整数数值类型和位串类型;
5、字符串运算操作符(15个):^@、@@、||、、!、*、!、、!、~、!*、>、<、>=、<=~
相关类型:字符串类型;
2.2.3 操作符的优先级
优先级是KingbaseES数据库在同一表达式中计算不同操作符的顺序。优先级高的操作符比优先级低的操作符要先计算。 下面从高往低列出了操作符,其中同一级别的操作符具有相同的优先级。
(1)操作符:+、-(作为一元操作符)、PRIOR、CONNECT_BY_ROOT、COLLATE身份、否定、层次结构中的位置
(2)操作符:*,/ 乘法、除法
(3)操作符:+、-(作为二元操作符)
三、总结
1、SQL语句是一种结构化查询语言,遵循特定的规则,SQL可以对数据库中的表等进行增删改查的工作。
2、在SQL中,数据类型可以分为数值类型、字符类型、日期时间类型、布尔类型、二进制类型还有特殊字符类型,在每个类型中又可以细分成更加细的内容。
3、操作符是对操作对象进行操作的运算符,按照操作对象个数可以分为一元操作符和二元操作符,而按照操作类型可以划分为算数、比较、串、位、字符串运算操作符,这些操作符有不同的优先级,优先级高的操作符在运算的时候会先进行运算。
更多信息,参见https://help.kingbase.com.cn/v8/index.html