sql基础规范说明
sql语句由DDL、DML组成,其中DDL由 select、 insert、 delete、 update、 rows_of、 cols_of、 fields_of、 show tables等组成;DML由 create、 alter、 drop、 import、 load、 exec等组成。
每一个sql语句非常数表达式或注释内容可接任意多个空白或注释字符,空白字符为0x09到0x0c(注意空白字符不包含0x0d,这意味着sql语句执行行尾默认为unix格式)或0x20的ASCII字符。
所有sql语句大小写严格区分,字符编码为唯一编码UTF-8。
每一个sql语句结束符为";",结束符在不影响语句解析时可以省略。
注释
单行注释:
//这是一个注释
多行注释:
/*这是一
个注释
*/
基础数据类型
整数
0 //有符号或无符号整数
1 //省略符号整数
100 //省略符号整数
+1 //有符号整数
-100 //有符号整数
-1000 //有符号整数
+0b000 //有符号二进制整数
-0xa0b3 //有符号十六进制整数
0xA0cD //无符号大小写混写十六进制整数
-847u2 //有符号两字节长整数
56u1 //无符号一字节长整数
0x0au1 //无符号十六进制一字节整数
浮点数
+0. //无小数部分正浮点数
-0.01 //仅小数部分负浮点数
-100.0 //仅整数部分负浮点数
-100e20 //仅整数及正指数部分负浮点数
1.25E-32 //小数及负指数部分正浮点数
1.25E+20 //小数及正指数部分正浮点数
1.00E20f //严格四字节浮点数
1.00E20d //严格八字节浮点数
定长字符串
定长字符串只支持如下字节长度:4,8,16,32,64,128,256
"a和中文bc" //包含中英文的有效字符串(UTF-8编码)
"ab和中文c\"\'\\\a\b\f\n\r\t\v" //包含控制转义的有效字符串
"ab和中文c\x0a\x0001\uaabb\Uaabbccdd" //包含十六进制转义和Unicode转义的有效字符串
@"aabbcc(018d7##@!@^_""AA6)aabbcc" //以aabbcc为分割的原始字符串
日期型
2020-02-03 //2020年2月3日
0020-01-31 //20年1月31日
时间型
18:59:31 //18时59分31秒
00:00:01.100 //0时0分1.1秒
日期时间型
2020-02-03 18:59:31.123 //2020年2月3日18时59分31.123秒
表达式
表达式使用C语言表达式基础结构,保留对应运算符号优先级
id //域表达式表示对应字段值
(id) //括号表达式表示优先括号内容求值
id+10 //加性表达式表示域字段与常数值10的和
id+max(grade) //加性表达式表示域字段与grade域的最大值之和
id*sin(id) //积性表达式表示id域与id域的sin值之积
id << 10 //移位表达式表示id域左移10位的值
id&&sin(id)>0 //逻辑与表达式表示id和sin(id)>0的逻辑与结果
id/sin(id) //积性表达式表示id与sin(id)之商
id&min(id) //位与表达式表示id与mi