- H2数据库教程
- H2数据库 - 首页
- H2数据库 - 简介
- H2数据库 - 安装
- H2数据库 - 数据操作
- H2数据库 - 查询
- H2数据库 - 插入
- H2数据库 - 更新
- H2数据库 - 删除
- H2数据库 - 备份
- H2数据库 - 调用
- H2数据库 - 解释
- H2数据库 - 合并
- H2数据库 - 显示
- H2数据库 - 数据定义
- H2数据库 - 创建
- H2数据库 - 修改
- H2数据库 - 删除
- H2数据库 - 截断
- H2数据库 - 提交
- H2数据库 - 授权
- H2数据库 - 保存点
- H2数据库 - 回滚
- H2数据库 - JDBC连接
- H2数据库有用资源
- H2数据库 - 快速指南
- H2数据库 - 有用资源
- H2数据库 - 讨论
H2数据库 - 创建
CREATE是一个通用的SQL命令,用于在H2数据库服务器中创建表、模式、序列、视图和用户。
创建表
创建表是一个用于在当前数据库中创建用户定义表的命令。
语法
以下是Create Table命令的通用语法。
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命令的通用语法,我们可以创建不同类型的表,例如缓存表、内存表和临时表。以下是描述给定语法中不同子句的列表。
CACHED - 缓存表是常规表的默认类型。这意味着行数不受主内存限制。
MEMORY - 内存表是临时表的默认类型。这意味着内存表不应过大,索引数据保留在主内存中。
TEMPORARY - 关闭或打开数据库时会删除临时表。基本上,临时表有两种类型:
GLOBAL类型 - 所有连接都可以访问。
LOCAL类型 - 当前连接可以访问。
临时表的默认类型为全局类型。临时表的索引保留在主内存中,除非使用CREATE CACHED TABLE创建临时表。
ENGINE - 仅当使用自定义表实现时才需要ENGINE选项。
NOT PERSISTENT - 它是一个修饰符,用于将完整的表数据保存在内存中,并且在关闭数据库时所有行都会丢失。
TRANSACTIONAL - 它是一个关键字,用于提交打开的事务,并且此命令仅支持临时表。
示例
在此示例中,让我们使用以下给定数据创建一个名为tutorials_tbl的表。
| 序号 | 列名 | 数据类型 |
|---|---|---|
| 1 | ID | Int |
| 2 | 标题 | Varchar(50) |
| 3 | 作者 | Varchar(20) |
| 4 | 提交日期 | 日期 |
以下查询用于创建表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是一个用于在特定授权下(在当前注册的用户下)创建用户依赖模式的命令。
语法
以下是Create Schema命令的通用语法。
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