logo资料库

H2Database-SQL语法.pdf

第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
资料共53页,剩余部分请下载后查看
SQL 语法 数据处理语句(Data Manipulation) SELECT INSERT UPDATE DELETE BACKUP CALL EXPLAIN MERGE RUNSCRIPT SCRIPT SHOW 数据定义语句(Data Definition) ALTER INDEX RENAME ALTER SEQUENCE ALTER TABLE ADD ALTER TABLE ADD CONSTRAINT ALTER TABLE ALTER ALTER TABLE DROP COLUMN ALTER TABLE DROP CONSTRAINT ALTER TABLE SET ALTER TABLE RENAME ALTER USER ADMIN ALTER USER RENAME ALTER USER SET PASSWORD ALTER VIEW ANALYZE COMMENT CREATE AGGREGATE CREATE ALIAS CREATE CONSTANT CREATE DOMAIN CREATE INDEX CREATE LINKED TABLE CREATE ROLE CREATE SCHEMA CREATE SEQUENCE CREATE TABLE CREATE TRIGGER CREATE USER CREATE VIEW DROP AGGREGATE DROP ALIAS DROP ALL OBJECTS DROP CONSTANT DROP DOMAIN DROP INDEX DROP ROLE DROP SCHEMA DROP SEQUENCE DROP TABLE DROP TRIGGER DROP USER DROP VIEW TRUNCATE TABLE 其他语句 CHECKPOINT CHECKPOINT SYNC COMMIT COMMIT TRANSACTION GRANT RIGHT GRANT ROLE HELP PREPARE COMMIT REVOKE RIGHT REVOKE ROLE ROLLBACK SET CLUSTER SET COLLATION SET COMPRESS_LOB SET DATABASE_EVENT_LISTENER SET DB_CLOSE_DELAY SET DEFAULT_LOCK_TIMEOUT SET DEFAULT_TABLE_TYPE SET EXCLUSIVE SET IGNORECASE SET LOCK_MODE SET LOCK_TIMEOUT SET MODE SET MULTI_THREADED SET OPTIMIZE_REUSE_RESULTS SET PASSWORD SET QUERY_TIMEOUT SET REFERENTIAL_INTEGRITY SET SALT HASH SET SCHEMA SET SCHEMA_SEARCH_PATH
ROLLBACK TRANSACTION SAVEPOINT SET @ SET ALLOW_LITERALS SET AUTOCOMMIT SET CACHE_SIZE SET LOG SET MAX_LENGTH_INPLACE_LOB SET MAX_LOG_SIZE SET MAX_MEMORY_ROWS SET MAX_MEMORY_UNDO SET MAX_OPERATION_MEMORY SET THROTTLE SET TRACE_LEVEL SET TRACE_MAX_FILE_SIZE SET UNDO_LOG SET WRITE_DELAY SHUTDOWN Quoted Csv Options Data Type Date Decimal Digit Dollar String Double Expression Factor Hex Hex Number Index Column Int Long Name Null Number Operand Order Quoted Name Referential Constraint Select Expression String Summand Table Expression Term Time Timestamp Value 其他语法 Alias And Condition Array Boolean Bytes Case Case When Cipher Column Definition Comments Compare Condition Condition Right Hand Side Constraint Constraint Definition Name 系统表 Information Schema Range Table SELECT SELECT [ TOP term ] [ DISTINCT | ALL ] selectExpression [,...] FROM tableExpression [,...] [ WHERE expression ] [ GROUP BY expression [,...] ] [ HAVING expression ]
[ { UNION [ ALL ] | MINUS | EXCEPT | INTERSECT } select ] [ ORDER BY order [,...] ] [ LIMIT expression [ OFFSET expression ] [ SAMPLE_SIZE rowCountInt ] ] [ FOR UPDATE ] 从一张表或多张表查询数据。GROUP BY 根据给定的表达式(expression) 将结果进行分组,HAVING 是在分组之后进行行过滤。ORDER BY 根据给定 的字段或表达式对结果集进行排序。UNION 联合这个查询的结果集和另一个 查询的结果集。 LIMIT 限制查询返回的行数,OFFSET 指定多少行被跳过, SAMPLE_SIZE 限制聚集查询读取的行数。 如果指定 FOR UPDATE,表被锁定用于写。 例子如下: SELECT * FROM TEST; SELECT * FROM TEST ORDER BY NAME; SELECT ID, COUNT(*) FROM TEST GROUP BY ID; SELECT NAME, COUNT(*) FROM TEST GROUP BY NAME HAVING COUNT(*) > 2; SELECT 'ID' COL, MAX(ID) AS MAX FROM TEST UNION SELECT 'NAME', MAX(NAME) FROM TEST; SELECT * FROM TEST LIMIT 1000; SELECT * FROM (SELECT ID, COUNT(*) FROM TEST GROUP BY ID UNION SELECT NULL, COUNT(*) FROM TEST) ORDER BY 1 NULLS LAST; INSERT INSERT INTO tableName [ ( columnName [,...] ) ] { VALUES { ( { DEFAULT | expression } [,...] ) } [,...] | select } 插入新行到表中。 例子如下: INSERT INTO TEST VALUES(1, 'Hello')
UPDATE UPDATE tableName [ [ AS ] newTableAlias ] SET { columnName= { DEFAULT | expression } } [,...] [ WHERE expression ] 更新表中的数据: 例子如下: UPDATE TEST SET NAME='Hi' WHERE ID=1; UPDATE PERSON P SET NAME=(SELECT A.NAME FROM ADDRESS A WHERE A.ID=P.ID); DELETE DELETE FROM tableName [ WHERE expression ] 从表中删除行。 例子如下: DELETE FROM TEST WHERE ID=2 BACKUP BACKUP TO fileNameString 备份数据库文件到一个.zip 文件按中,对象不能被锁定,执行这条语句需要管理员权限。 例子如下: BACKUP TO 'backup.zip' CALL
CALL expression 计算一个简单的表达式。 例子如下: CALL 15*25 EXPLAIN EXPLAIN [ PLAN FOR ] { select | insert | update | delete } 显示语句的执行计划。 例子如下: EXPLAIN SELECT * FROM TEST WHERE ID=1 MERGE MERGE INTO tableName [ ( columnName [,...] ) ] [ KEY ( columnName [,...] ) ] { VALUES { ( { DEFAULT | expression } [,...] ) } [,...] | select } 如果记录不存在,插入记录,如果记录存在,更新存在的记录,如果没有指定的键(KEY) 字段,查找记录时就使用主键字段,如果一个新纪录影响多个记录,将抛出异常,如果表包 含自增的键或标识字段,生产的键被设置为0,否则,它就被设置为新的键值。 例子如下: MERGE INTO TEST KEY(ID) VALUES(2, 'World') RUNSCRIPT RUNSCRIPT FROM fileNameString [ COMPRESSION { DEFLATE | LZF | ZIP | GZIP } ] [ CIPHER cipher PASSWORD string ] [ CHARSET charsetString ] 运行指定 SQL 脚本文件,SQL 脚本文件是包含 SQL 语句的文本文件,每个语句必须使用';'
结束。这个语句也可以用于从一个备份恢复数据库。密码必须使用单引号引用,它是区分大 小写的,并且可以包含空格。 压缩算法必须与创建脚本的压缩算法相匹配。当使用加密时,只有 DEFLATE 和 LZF 被支 持(LZF 性能更快,但是使用更多的空间)。可以不指定文件,使用 URL 替代。 执行这个命令需要管理员权限。 例子如下: RUNSCRIPT FROM 'backup' SCRIPT SCRIPT [ SIMPLE ] [ NODATA ] [ NOPASSWORDS ] [ NOSETTINGS ] [ DROP ] [ BLOCKSIZE blockSizeInt ] [ TO fileNameString [ COMPRESSION { DEFLATE | LZF | ZIP | GZIP } ] [ CIPHER cipher PASSWORD string ] ] 从数据库创建 SQL 脚本。 SIMPLE 表示不使用多行插入语句。 NODATA 表示不会发出 INSERT 语句。如果 DROP 选项被指定,表(TABLE)、视图(VIEW)和序列(SEQUENCE)的 DROP 语句被创建。 如果 BLOCKSIZE 被设置,当 CLOB 和 BLOB 的尺寸比设置值大时,将被分割为多块。 如果 TO 文件没有被指定,脚本将返回一个结果集。这个语句也能用于创建数据库备份,对 于长期存储,它比拷贝数据库文件更便携。 如果一个文件名被指定,整个脚本(包括插入语句)都被写入到这个文件,一个不包含插入 语句的结果集将被返回,当要加密时,只有 DEFLATE 和 LZF 被支持(LZF 性能更快,但 需要更多的空间)。 这个语句在运行时,将锁定对象。密码必须使用单引号引用,它是区分大小写的,并且可以 包含空格。 例子如下: SCRIPT NODATA SHOW SHOW { SCHEMAS | TABLES [ FROM schemaName ] | COLUMNS FROM tableName [ FROM schemaName ] } 列出 SCHEMAS 列表,表列表,表的字段列表。 例子如下:
SHOW TABLES ALTER INDEX RENAME ALTER INDEX indexName RENAME TO newIndexName 重命名一个索引,这个语句提交一个打开的事务。 例子如下: ALTER INDEX IDXNAME RENAME TO IDX_TEST_NAME ALTER SEQUENCE ALTER SEQUENCE sequenceName [ RESTART WITH long ] [ INCREMENT BY long ] 改变自增序列的下一个值,这个语句不提交当前的事务,但是其他事务能立即获得新值,即 使回滚当前的事务,这个语句不受影响。 例子如下: ALTER SEQUENCE SEQ_ID RESTART WITH 1000 ALTER TABLE ADD ALTER TABLE tableName ADD name dataType [ DEFAULT expression ] [ [ NOT ] NULL ] [ AUTO_INCREMENT | IDENTITY ] [ BEFORE columnName ] 增加一个新的列到表中,这个语句提交一个打开的事务。 例子如下: ALTER TABLE TEST ADD CREATEDATE TIMESTAMP ALTER TABLE ADD CONSTRAINT
ALTER TABLE tableName ADD constraint [ CHECK | NOCHECK ] 增加一个约束到表中。如果 NOCHECK 被指定,已经存在的行将不被检查一致性(默认情 况下是检查已存在行的一致性的)。如果被需要的索引不存在,将自动创建索引,但是不可 能去屏蔽唯一性检查。这个语句提交一个打开的事务。 例子如下: ALTER TABLE TEST ADD CONSTRAINT NAME_UNIQUE UNIQUE(NAME) ALTER TABLE ALTER ALTER TABLE tableName ALTER COLUMN columnName { { dataType [ DEFAULT expression ] [ [ NOT ] NULL ] [ AUTO_INCREMENT | IDENTITY ] } | { RENAME TO name } | { RESTART WITH long } | { SELECTIVITY int } | { SET DEFAULT expression } | { SET NULL } | { SET NOT NULL } } 改变列的数据类型,重命名列名,改变标识符值,改变优化选项。 如果数据不能被转换,数据类型的改变将失败。 RESTART 改变一个自增列的下一个值,这个字段必须已经是一个自增列,对于 RESTART, 遵守与 ALTER SEQUENCE 相同的事务规则。 SELECTIVITY 设置字段的优化选项,0为优化选项的默认值,SELECTIVITY 用于基于成 本优化器去计算一个索引的开销估算,SELECTIVITY 设置为100意味着是列上的值都是唯 一的,10意味着平均每10次就会有相同的值出现。 SET DEFAULT 改变列的默认值。 SET NULL 设置允许这个列为 NULL,行不能是主键或复合 HASH 索引的一部分,这个字 段上的单列索引被移去。 SET NOT NULL 设置字段不允许为空,行不允许包含为 NULL 的字段。 这个语句提交一个打开的事务。 例子如下: ALTER TABLE TEST ALTER COLUMN NAME CLOB; ALTER TABLE TEST ALTER COLUMN NAME RENAME TO TEXT; ALTER TABLE TEST ALTER COLUMN ID RESTART WITH 10000; ALTER TABLE TEST ALTER COLUMN NAME SELECTIVITY 100; ALTER TABLE TEST ALTER COLUMN NAME SET DEFAULT ''; ALTER TABLE TEST ALTER COLUMN NAME SET NOT NULL; ALTER TABLE TEST ALTER COLUMN NAME SET NULL;
分享到:
收藏