📅  最后修改于: 2020-11-28 14:14:33             🧑  作者: Mango
CREATE是通用的SQL命令,用于在H2数据库服务器中创建表,模式,序列,视图和用户。
创建表是用于在当前数据库中创建用户定义表的命令。
以下是“创建表”命令的通用语法。
CREATE [ CACHED | MEMORY ] [ TEMP | [ GLOBAL | LOCAL ] TEMPORARY ]
TABLE [ IF NOT EXISTS ] name
[ ( { columnDefinition | constraint } [,...] ) ]
[ ENGINE tableEngineName [ WITH tableEngineParamName [,...] ] ]
[ NOT PERSISTENT ] [ TRANSACTIONAL ]
[ AS select ]
通过使用Create Table命令的通用语法,我们可以创建不同类型的表,例如缓存表,内存表和临时表。以下是描述与给定语法不同的子句的列表。
快照-缓存表是常规表的默认类型。这意味着行数不受主存储器限制。
内存-内存表是临时表的默认类型。这意味着内存表不应太大,索引数据将保留在主内存中。
TEMPORARY-在关闭或打开数据库时删除临时表。基本上,临时表有两种类型-
全局类型-所有连接均可访问。
本地类型-当前连接可访问。
临时表的默认类型是全局类型。临时表的索引保留在主内存中,除非使用CREATE CACHED TABLE创建临时表。
ENGINE-仅当使用自定义表实现时才需要ENGINE选项。
NOT PERSISTENT-这是一个修饰符,用于将完整的表数据保留在内存中,并且在关闭数据库时所有行都会丢失。
TRANSACTIONAL-这是一个提交开放事务的关键字,此命令仅支持临时表。
在此示例中,让我们使用以下给定数据创建一个名为tutorials_tbl的表。
Sr.No | Column Name | Data Type |
---|---|---|
1 | ID | Int |
2 | Title | Varchar(50) |
3 | Author | Varchar(20) |
4 | Submission_date | Date |
以下查询用于创建表tutorials_tbl和给定的列数据。
CREATE TABLE tutorials_tbl (
id INT NOT NULL,
title VARCHAR(50) NOT NULL,
author VARCHAR(20) NOT NULL,
submission_date DATE
);
上面的查询产生以下输出。
(0) rows effected
创建模式是用于在特定授权下(在当前注册的用户下)创建用户相关模式的命令。
以下是“创建模式”命令的通用语法。
CREATE SCHEMA [ IF NOT EXISTS ] name [ AUTHORIZATION ownerUserName ]
在以上通用语法中,AUTHORIZATION是用于提供相应用户名的关键字。此命令是可选的,这意味着如果我们不提供用户名,则它将考虑当前用户。执行命令的用户必须具有管理员权限以及所有者。
此命令在此连接中提交一个打开的事务。
在此示例中,让我们使用以下命令在SA用户下创建一个名为test_schema的架构。
CREATE SCHEMA test_schema AUTHORIZATION sa;
上面的命令产生以下输出。
(0) rows effected
序列是一个概念,用于通过遵循id或任何随机列值的序列来生成数字。
以下是create sequence命令的通用语法。
CREATE SEQUENCE [ IF NOT EXISTS ] newSequenceName [ START WITH long ]
[ INCREMENT BY long ]
[ MINVALUE long | NOMINVALUE | NO MINVALUE ]
[ MAXVALUE long | NOMAXVALUE | NO MAXVALUE ]
[ CYCLE long | NOCYCLE | NO CYCLE ]
[ CACHE long | NOCACHE | NO CACHE ]
此通用语法用于创建序列。序列的数据类型为BIGINT 。按照这种顺序,即使回滚了事务,也永远不会重复使用值。
在此示例中,让我们使用以下查询创建一个名为SEQ_ID的序列。
CREATE SEQUENCE SEQ_ID;
上面的查询产生以下输出。
(0) rows effected