关键字:
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 S
QL
语句类型
一共包括四种语句类型,分别是数据定义语言DDL、数据操纵语言DML、数据查询语言DQL、数据控制语言DCL和事务控制语言TCL,具体说明如图1-1所示。
图1-1 SQL语句类型分类
类型
|
对应语句
|
简要说明
|
数据定义语言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
|
二、SQL常用数据类型和操作符
2.1 常用数据类型
在SQL中,大类上可以分为数值类型、字符类型、日期时间类型、布尔类型、二进制类型还有特殊字符类型,在每个类型中又可以细分成更加细的内容,具体如下表2-1所示。
表2-1 SQL常用数据类型
类型名称
|
对应别名
|
描述
|
范围
| |
数值类型
|
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、操作符是对操作对象进行操作的运算符,按照操作对象个数可以分为一元操作符和二元操作符,而按照操作类型可以划分为算数、比较、串、位、字符串运算操作符,这些操作符有不同的优先级,优先级高的操作符在运算的时候会先进行运算