前言
手册简介
公约
1 数据类型
1.1 数值类型
1.1.1 TINYINT
1.1.2 SMALLINT
1.1.3 INT
1.1.4 BIGINT
1.1.5 FLOAT
1.1.6 DOUBLE
1.1.7 DECIMAL
1.2 字符类型
1.2.1 CHAR
1.2.2 VARCHAR
1.2.3 TEXT
1.3 二进制数据类型
1.4 日期和时间类型
1.4.1 DATE
1.4.2 TIME
1.4.3 DATETIME
1.4.4 TIMESTAMP
2 SQL语言基础
2.1 数值
2.1.1 字符串
2.1.2 数字
2.1.3 十六进制值
2.1.4 布尔值
2.1.5 NULL值
2.2 数据库、表、列和别名
2.3 标识符限定词
2.4 注释语法
2.5 用户变量
3 操作符和函数
3.1 操作符
3.1.1 操作符优先级
3.1.2 圆括号
3.1.3 比较函数和操作符
3.1.3.1 = 等于
3.1.3.2 <=> NULL值安全等于
3.1.3.3 <>,!= 不等于
3.1.3.4 <= 小于或者等于
3.1.3.5 < 小于
3.1.3.6 >= 大于或者等于
3.1.3.7 > 大于
3.1.3.8 is boolean_value ,is not boolean_value
3.1.3.9 expr BETWEEN min AND max
3.1.3.10 expr NOT BETWEEN min AND max
3.1.3.11 COALESCE(value,...)
3.1.3.12 GREATEST(value1,value2,...)
3.1.3.13 expr IN (value,...)
3.1.3.14 expr NOT IN (value,...)
3.1.3.15 ISNULL(expr)
3.1.3.16 LEAST(value1,value2,...)
3.1.4 逻辑操作符
3.1.4.1 NOT,!逻辑非
3.1.4.2 XOR逻辑异或
3.1.5 转换操作符和函数
3.1.5.1 BINARY
3.1.5.2 CAST和CONVERT函数
3.2 控制流函数
3.2.1 CASE
3.2.2 DECODE
3.2.3 IF(expr1,expr2,expr3)
3.2.4 IFNULL(expr1,expr2)
3.2.5 NULLIF(expr1,expr2)
3.3 字符串函数
3.3.1 ASCII(str)
3.3.2 BIN(N)
3.3.3 BIT_LENGTH(str)
3.3.4 CHAR(N,...)
3.3.5 CHAR_LENGTH(str)
3.3.6 CHARACTER_LENGTH(str)
3.3.7 CONCAT(str1,str2,...)
3.3.8 CONCAT_WS(separator,str1,str2,...)
3.3.9 CONV(N,from_base,to_base)
3.3.10 ELT(N,str1,str2,str3,...)
3.3.11 EXPORT_SET
3.3.12 FIELD(str,str1,str2,str3,...)
3.3.13 FIND_IN_SET(str,strlist)
3.3.14 HEX(N_or_S)
3.3.15 INSERT(str,pos,len,newstr)
3.3.16 INSTR()
3.3.17 LCASE(str)
3.3.18 LEFT(str,len)
3.3.19 LENGTH(str)
3.3.20 LOCATE()
3.3.21 LOWER(str)
3.3.22 LPAD(str,len,padstr)
3.3.23 LTRIM(str)
3.3.24 MAKE_SET(bits,str1,str2,...)
3.3.25 MID(str,pos,len)
3.3.26 NVL(string1,replace_with)
3.3.27 OCT(N)
3.3.28 ORD(str)
3.3.29 REPEAT(str,count)
3.3.30 REPLACE(str, from_str,to_str)
3.3.31 REVERSE(str)
3.3.32 RIGHT(str,len)
3.3.33 RPAD(str,len,padstr)
3.3.34 RTRIM(str)
3.3.35 SUBSTRING()
3.3.36 SUBSTRING_INDEX(str,delim,count)
3.3.37 TO_CHAR(number,[FORMAT])
3.3.38 TO_CHAR(datetime,[FORMAT])
3.3.39 TO_NUMBER(expr)
3.3.40 TRANSLATE(char,from_string,to_string)
3.3.41 TRIM
3.3.42 UCASE(str)
3.3.43 UNHEX(str)
3.3.44 UPPER(str)
3.3.45 字符串转换类型函数
3.3.46 expr LIKE pat [ESCAPE 'escape-char']
3.3.47 expr NOT LIKE pat [ESCAPE 'escape-char']
3.3.48 expr REGEXP pat,expr RLIKE pat
3.3.49 STRCMP(expr1,expr2)
3.4 数值函数
3.4.1 算术操作符
3.4.1.1 + 加法
3.4.1.2 - 减法
3.4.1.3 - 一元减
3.4.1.4 * 乘法
3.4.1.5 / 除法
3.4.1.6 DIV 整数除法
3.4.2 数学函数
3.4.2.1 ABS(X)
3.4.2.2 ACOS(X)
3.4.2.3 ASIN(X)
3.4.2.4 ATAN(X)
3.4.2.5 ATAN(Y,X),ATAN2(Y,X)
3.4.2.6 CEILING(X),CEIL(X)
3.4.2.7 COS(X)
3.4.2.8 COT(X)
3.4.2.9 CRC32(expr)
3.4.2.10 DEGREES(X)
3.4.2.11 EXP(X)
3.4.2.12 FLOOR(X)
3.4.2.13 LN(X)
3.4.2.14 LOG(X),LOG(B,X)
3.4.2.15 LOG2(X)
3.4.2.16 LOG10(X)
3.4.2.17 MOD(N,M),N % M,N MOD M
3.4.2.18 PI()
3.4.2.19 POW(X,Y),POWER(X,Y)
3.4.2.20 RADIANS(X)
3.4.2.21 RAND(),RAND(N)
3.4.2.22 ROUND(X),ROUND(X,D)
3.4.2.23 SIGN(X)
3.4.2.24 SIN(X)
3.4.2.25 SQRT(X)
3.4.2.26 TAN(X)
3.4.2.27 TRUNCATE(X,D)
3.5 日期和时间函数
3.5.1 ADDDATE()
3.5.2 ADDTIME(expr,expr2)
3.5.3 ADD_MONTHS(date, number)
3.5.4 CONVERT_TZ(dt,from_tz,to_tz)
3.5.5 CURDATE()
3.5.6 CURRENT_DATE,CURRENT_DATE()
3.5.7 CURRENT_TIME,CURRENT_TIME()
3.5.8 CURRENT_TIMESTAMP,CURRENT_TIMESTAMP()
3.5.9 CURTIME()
3.5.10 DATE(expr)
3.5.11 DATEDIFF(expr,expr2)
3.5.12 DATE_ADD(),DATE_SUB()
3.5.13 DATE_FORMAT(date,format)
3.5.14 DAY(date)
3.5.15 DAYNAME(date)
3.5.16 DAYOFMONTH(date)
3.5.17 DAYOFWEEK(date)
3.5.18 DAYOFYEAR(date)
3.5.19 EXTRACT(type FROM date)
3.5.20 FROM_DAYS(N)
3.5.21 FROM_UNIXTIME()
3.5.22 GET_FORMAT()
3.5.23 HOUR(time)
3.5.24 LAST_DAY(date)
3.5.25 LOCALTIME,LOCALTIME()
3.5.26 LOCALTIMESTAMP,LOCALTIMESTAMP()
3.5.27 MAKEDATE(year,dayofyear)
3.5.28 MAKETIME(hour,minute,second)
3.5.29 MICROSECOND(expr)
3.5.30 MINUTE(time)
3.5.31 MONTH(date)
3.5.32 MONTHNAME(date)
3.5.33 NOW()
3.5.34 PERIOD_ADD(P,N)
3.5.35 PERIOD_DIFF(P1,P2)
3.5.36 QUARTER(date)
3.5.37 SECOND(time)
3.5.38 SEC_TO_TIME(seconds)
3.5.39 STR_TO_DATE(str,format)
3.5.40 SUBDATE()
3.5.41 SUBTIME(expr,expr2)
3.5.42 SYSDATE()
3.5.43 TIME(expr)
3.5.44 TIMEDIFF(expr,expr2)
3.5.45 TIMESTAMP
3.5.46 TIMESTAMPADD
3.5.47 TIMESTAMPDIFF
3.5.48 TIME_FORMAT(time,format)
3.5.49 TIME_TO_SEC(time)
3.5.50 TO_DATE(string,format)
3.5.51 TO_DAYS(date)
3.5.52 TRUNC(date/datetime[,format])
3.5.53 UNIX_TIMESTAMP
3.5.54 UTC_DATE,UTC_DATE()
3.5.55 UTC_TIME,UTC_TIME()
3.5.56 UTC_TIMESTAMP,UTC_TIMESTAMP()
3.5.57 WEEK(date[,mode])
3.5.58 WEEKDAY(date)
3.5.59 WEEKOFYEAR(date)
3.5.60 YEAR(date)
3.5.61 YEARWEEK(date),YEARWEEK(date,start)
3.6 其它函数
3.6.1 位函数
3.6.1.1 |按位或
3.6.1.2 &按位与
3.6.1.3 ^按位异或
3.6.1.4 <<左移操作(BIGINT)
3.6.1.5 >>右移操作(BIGINT)
3.6.1.6 BIT_COUNT(N)
3.6.2 加密函数
3.6.2.1 AES_ENCRYPT
3.6.2.2 ENCRYPT(str[,salt])
3.6.2.3 MD5(str)
3.6.2.4 SHA1(str),SHA(str)
3.6.3 信息函数
3.6.3.1 BENCHMARK(count,expr)
3.6.3.2 CHARSET(str)
3.6.3.3 COLLATION(str)
3.6.3.4 CONNECTION_ID()
3.6.3.5 CURRENT_USER()
3.6.3.6 DATABASE()
3.6.3.7 SESSION_USER()
3.6.3.8 SYSTEM_USER()
3.6.3.9 USER()
3.6.3.10 VERSION()
3.6.4 辅助函数
3.6.4.1 FORMAT(X,D)
3.6.4.2 INET_ATON(expr)
3.6.4.3 INET_NTOA(expr)
3.6.4.4 SLEEP(duration)
3.6.4.5 UUID()
3.7 用于GROUP BY子句的函数和修饰语
3.7.1 GROUP BY(聚集)函数
3.7.1.1 AVG([DISTINCT] expr)
3.7.1.2 COUNT(expr)
3.7.1.3 COUNT(DISTINCT expr,[expr...])
3.7.1.4 MIN(),MAX()
3.7.1.5 SUM([DISTINCT]expr)
3.8 OLAP函数
3.8.1 用于分组统计的OLAP函数
3.8.1.1 GROUP BY CUBE函数
3.8.1.2 GROUP BY ROLLUP函数
3.8.1.3 GROUP BY GROUPING SETS函数
3.8.2 非分组统计的OLAP函数
3.8.2.1 RANK OVER函数
3.8.2.2 DENSE_RANK OVER函数
3.8.2.3 ROW_NUMBER OVER函数
3.8.2.4 SUM OVER函数
3.8.2.5 AVG OVER函数
3.8.2.6 COUNT OVER函数
3.8.2.7 LEAD/LAG OVER函数
3.9 ROWID函数
4 SQL语法
4.1 DDL语句
4.1.1 DATABASE
4.1.1.1 CREATE DATABASE
4.1.1.2 DROP DATABASE
4.1.2 TABLE
4.1.2.1 CREATE TABLE
4.1.2.1.1 CREATE TABLE...AS SELECT...
4.1.2.1.2 CREATE TABLE...LIKE...
4.1.2.1.3 CREATE TEMPORARY TABLE ...
4.1.2.2 ALTER TABLE
4.1.2.2.1 ALTER TABLE... SHRINK SPACE
4.1.2.3 RENAME TABLE
4.1.2.4 TRUNCATE TABLE
4.1.2.5 DROP TABLE
4.1.3 VIEW
4.1.3.1 CREATE VIEW
4.1.3.2 ALTER VIEW
4.1.3.3 DROP VIEW
4.1.4 INDEX
4.1.4.1 CREATE INDEX
4.1.4.2 DROP INDEX
4.1.5 预租磁盘
4.1.6 列和表的压缩
4.1.6.1 列级压缩
4.1.6.1.1 创建压缩列
4.1.6.1.2 修改压缩列
4.1.6.2 表级压缩
4.1.6.2.1 创建压缩表
4.1.6.2.2 修改压缩表
4.1.7 行列混存
4.1.7.1 行列混存的定义
4.1.7.2 行列混存的约束
4.2 DML语句
4.2.1 INSERT
4.2.2 UPDATE
4.2.2.1 快速UPDATE模式
4.2.3 DELETE
4.2.4 SELECT
4.2.5 相关概念
4.2.6 执行原理
4.2.7 语法格式
4.2.8 使用约束
4.2.9 分级查询语句示例
4.2.9.1 表
4.2.9.2 视图
4.2.9.3 GROUP BY ...
4.2.9.4 ORDER BY...
4.2.9.5 LIMIT ...
4.2.10 JOIN
4.2.11 UNION
4.2.12 INTERSECT
4.2.13 MINUS
4.2.14 MERGE
4.2.14.1 语法格式
4.2.14.2 MERGE示例
4.3 分级查询语句
4.3.1 相关概念
4.3.2 执行原理
4.3.3 语法格式
4.3.4 使用约束
4.3.5 分级查询语句示例
4.3.5.1 表
4.3.5.2 视图
4.4 查询结果导出语句
4.4.1 查询结果导出语法
4.4.2 查询结果导出的保存路径及规则
4.4.3 定长导出模式
4.4.4 转义字符导出模式
4.4.4.1 判定enclosed的值是否为TRUE
4.4.4.2 字符型数据的转义规则
4.4.4.3 非字符型数据的转义规则
4.4.4.4 两种不转义的特殊情况
4.4.5 查询结果导出示例
4.4.5.1 几种常见的错误写法
4.4.5.2 不指定字段分隔符
4.4.5.3 指定字段分隔符
4.4.5.4 指定字段包围符
4.4.5.5 指定转义标识符
4.4.5.6 指定换行符
4.4.5.7 指定行首分隔符
4.4.5.8 指定相对路径保存导出文件
4.4.6 数据导出中特殊情况的示例
4.4.6.1 数据中含有NULL值的处理
4.4.6.2 转义符为空字符的处理
4.4.6.3 数据中含有“\0”字符的处理
4.4.6.4 指定多字符为字段分隔符,且文本中也包含多字符分隔符时的处理
4.4.6.5 字段文本中包含“\n”或“\r”时的处理
4.4.6.6 定长模式的导出
4.4.6.7 含有NULL值的定长模式的导出
4.5 GBase 8a其他语句
4.5.1 DESCRIBE
4.5.2 USE
4.5.3 KILL
4.5.4 SET
4.6 GBase 8a事务和锁语句
4.6.1 START TRANSACTION,COMMIT和ROLLBACK语法
4.6.1.1 INSERT事务示例
4.6.1.2 UPDATE事务示例
4.6.1.3 快速UPDATE模式事务示例
4.6.1.4 DELETE事务示例
4.6.2 不能回滚的语句
4.7 数据库管理语句
4.7.1 帐号管理语句
4.7.1.1 CREATE USER
4.7.1.2 DROP USER
4.7.1.3 RENAME USER
4.7.1.4 SET PASSWORD
4.7.2 权限管理
4.7.2.1 GRANT和REVOKE
4.7.2.2 权限级别
4.7.3 SHOW管理语句
4.7.3.1 SHOW COLUMNS
4.7.3.2 SHOW CREATE DATABASE
4.7.3.3 SHOW CREATE FUNCTION
4.7.3.4 SHOW CREATE PROCEDURE
4.7.3.5 SHOW CREATE TABLE
4.7.3.6 SHOW CREATE VIEW
4.7.3.7 SHOW DATABASES
4.7.3.8 SHOW ERRORS
4.7.3.9 SHOW FUNCTION STATUS
4.7.3.10 SHOW GRANTS
4.7.3.11 SHOW INDEX
4.7.3.12 SHOW PROCEDURE STATUS
4.7.3.13 SHOW PROCESSLIST
4.7.3.14 SHOW STATUS
4.7.3.15 SHOW TABLES
4.7.3.16 SHOW TABLE STATUS
4.7.3.17 SHOW VARIABLES
4.7.3.18 SHOW WARNINGS
5 存储过程、函数
5.1 概述
5.2 创建存储过程、函数
5.3 修改存储过程、函数
5.4 删除存储过程、函数
5.5 调用存储过程、函数
5.6 查看存储过程、函数的状态
5.7 存储过程所支持的流程结构和语句
5.7.1 DELIMITER
5.7.2 BEGIN...END
5.7.3 DECLARE
5.7.4 SET
5.7.5 SELECT ...INTO...
5.7.6 IF
5.7.7 ITERATE
5.7.8 CASE
5.7.9 LOOP
5.7.10 REPEAT
5.7.11 WHILE
5.7.12 LEAVE
5.7.13 静态游标(CURSOR)
5.7.13.1 游标的定义
5.7.13.2 打开游标
5.7.13.3 从游标中取得数据
5.7.13.4 关闭游标
5.7.13.5 静态游标使用注意事项
5.7.13.6 游标示例
5.7.14 动态游标(CURSOR)
5.7.14.1 游标的定义
5.7.14.2 打开游标
5.7.14.3 从游标中取得数据
5.7.14.4 关闭游标
5.7.14.5 动态游标中使用的动态SQL语法
5.7.14.5.1 预处理语句中使用的动态SQL语法
5.7.14.5.2 OPEN语句中使用的动态SQL语法
5.7.14.6 动态游标使用注意事项
5.7.14.7 游标示例
5.8 存储程序(过程、函数)的限制
附录
GBase 8a分析型数据库保留字
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
Z