zbSQL规范
张博 2017.7.3
适用于内存数据库1.5以及使用内存数据库为基础的云内存数据库、云管理平台等
- 概述
zbSQL规范是简化的SQL,支持简单的DML和DDL语言,可作为内存数据库的开发和维护接口。
zbSQL的DML语句为标准SQL的子集,保证在任何数据库之间无需修改直接迁移的能力(当然,需要在相应的数据库接口下执行)。
zbSQL的DDL语句是按照内存数据库自身特点自行设计的,简洁明了。
zbSQL包括字段、表、索引和序列,表可以包含多个索引,序列独立。
- 标识符
字母或下划线开始的连续字母数字下划线串
可带负号的isxdigit()串
单引号包裹的内容
双引号包裹的内容
标识符不区分大小写
- 关键字
select from where order by update delete insert into set
关键字不区分大小写,不能用作列名、表名等
- 注释和脚本
支持三种注释格式:
“--” “//” “/* */”
多个语句可以用分号分隔,一次执行
- DML(可移植)
- select查询
select 列清单 from 表名 where 条件
列清单暂时只支持*,最多返回一万行
条件只能是“列名 操作符 值”,多个条件只能用“and”连接,暂不支持“or”
操作符:= <> > < >= <=
暂不支持Order by,根据where条件自动选择索引查询输出,无where条件则使用索引“PK”输出
-
- insert into插入
insert into 表名(列清单)values(值清单)
列清单逗号分隔
值清单逗号分隔
-
- update更新
update 表名 set 列名=值,… where 条件
where子句可选,条件格式同select语句
-
- delete 删除
delete from 表名 where 条件
where子句可选,条件格式同select语句
- DDL(不可移植)
- createtable创建表
createtable 表名(列名 数据类型 PK comment 列注释,…)comment 表注释
数据类型包括long\double\string,不区分大小写
PK可选,但整个表必须指定主键
comment可选
-
- droptable删除表
droptable 表名
-
- sequence序列
sequence 序列名 INIT/GET/NEXT 初值/增量
init设置初值,如果已经存在现存值丢失
get 获得当前值
next 获得下一个值,同时当前值增加,可指定增量,默认为1