关键字:

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,具体说明如表所示。

类型对应语句简要说明
数据定义语言DDLCREATE、DROP、ALTER、TRUNCATE主要用来创建、删除、修改数据库中各种对象—表、视图、索引等
数据操纵语言DMLINSERT、UPDATE、DELETE、MERGE对数据进行增、删、改等操作
数据查询语言DQLSELECT由SELECT子句、FROM子句,WHERE子句组成的查询块
数据控制语言DCLGRANT,REVOKE授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果等
事务控制语言TCLBEGIN,END / COMMIT,ROLLBACK /SAVEPOINT /SET TRANSACTION ISOLATION LEVEL /LOCK TABLE

图1-1 SQL语句类型分类

二、SQL常用数据类型和操作符

2.1 常用数据类型

在SQL中,大类上可以分为数值类型、字符类型、日期时间类型、布尔类型、二进制类型还有特殊字符类型,在每个类型中又可以细分成更加细的内容,具体如下表2-1所示。

数值类型对应别名描述范围
SmallintInt2带符号的2字节整数-32768到+32767
integerInt,Int4带符号的4字节整数-2147483648到+2147483647
BigintInt8带符号的8字节整数-9223372036854775808到+9223372036854775807
NumericDecimal用户指定精度,精确小数点前131072位;小数点后16383位
RealFloat44字节可变精度,不精确6位十进制数字精度
Double precisionFloat88字节可变精度,不精确15位十进制数字精度
Smallserial自增2字节整数1到32767
SerialSerial4自增4字节整数1到2147483647
BigserialSerial8自增8字节整数1到9223372036854775807
字符类型对应别名描述范围
Character varying[(n)]Varchar[(n)]变长字符串有长度限制
Character[(n)]Char[(n)]定长字符串不足补空白
text变长字符串无长度限制
日期类型对应别名描述范围
Date4字节只用于日期4713BC到5874897AD
Timestamp[(p)][without time zone]8字节日期和时间,无时区4713BC到294276AD
Timestamp[(p)][with time zone]Timestamptz8字节日期和时间,有时区4713BC到294276AD
Time[(p)][without time zone]8字节只用于一日内时间,无时区00:00:00到24:00:00
Time[(p)][with time zone]Timetz8字节只用于一日内时间,有时区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