SQL 语句 (DDL)
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
数据定义语言 (DDL) 用于CREATE(创建)、ALTER(修改)和DROP(删除)数据库目录中的各种对象类型。 jOOQ 原生支持越来越多的这些操作,并且为了方便起见,还增加了合成操作支持。
虽然原生支持许多 DDL 语句,并且与 jOOQ API 的表示形式一一对应,但在 DDL 语句支持方面,不同数据库方言存在许多细微的差异。 这些差异可能包括
- 不同的关键字表示相同的意思。 例如,在更改表中的列或其他属性时,可以使用关键字
ALTER
、CHANGE
或MODIFY
。 - 不同的语句而不是子句。 例如,某些数据库方言可能会选择支持
RENAME [object type] .. TO ..
语句,而不是使重命名操作成为ALTER [object type] .. RENAME TO ..
的子句 - 某些语法可能不受支持,或者不支持一致地支持,例如各种
IF EXISTS
和IF NOT EXISTS
子句。 可以使用数据库方言的过程语言进行模拟
由于这些许多差异,jOOQ 手册不会列出每个 jOOQ API 调用的每个单独的本机 SQL 表示形式。 此外,可能存在一些可选子句,例如可以从 API 轻松发现的 IF EXISTS
或 OR REPLACE
子句。 本手册将省略在每个示例中记录这些子句。
商业支持模拟
许多 DDL 查询都带有需要使用匿名块进行模拟的语法。 虽然基本的匿名块在 jOOQ 开源版中也受支持,但更复杂的块和其他过程逻辑是仅限商业版的功能。
目录
- 3.6.1.
- ALTER语句
- 3.6.1.1.
- ALTER DATABASE(修改数据库)
- 3.6.1.1.1.
- ALTER DATABASE .. RENAME(修改数据库 .. 重命名)
- 3.6.1.1.2.
- ALTER DATABASE IF EXISTS(如果存在则修改数据库)
- 3.6.1.2.
- ALTER DOMAIN(修改域)
- 3.6.1.2.1.
- ALTER DOMAIN .. RENAME(修改域 .. 重命名)
- 3.6.1.2.2.
- ALTER DOMAIN .. SET DEFAULT(修改域 .. 设置默认值)
- 3.6.1.2.3.
- ALTER DOMAIN .. DROP DEFAULT(修改域 .. 删除默认值)
- 3.6.1.2.4.
- ALTER DOMAIN .. SET NOT NULL(修改域 .. 设置非空)
- 3.6.1.2.5.
- ALTER DOMAIN .. DROP NOT NULL(修改域 .. 删除非空)
- 3.6.1.2.6.
- ALTER DOMAIN .. ADD CONSTRAINT(修改域 .. 添加约束)
- 3.6.1.2.7.
- ALTER DOMAIN .. RENAME CONSTRAINT(修改域 .. 重命名约束)
- 3.6.1.2.8.
- ALTER DOMAIN .. RENAME CONSTRAINT IF EXISTS(如果存在则修改域 .. 重命名约束)
- 3.6.1.2.9.
- ALTER DOMAIN .. DROP CONSTRAINT(修改域 .. 删除约束)
- 3.6.1.2.10.
- ALTER DOMAIN .. DROP CONSTRAINT IF EXISTS(如果存在则修改域 .. 删除约束)
- 3.6.1.2.11.
- ALTER DOMAIN IF EXISTS(如果存在则修改域)
- 3.6.1.3.
- ALTER INDEX(修改索引)
- 3.6.1.3.1.
- ALTER INDEX .. RENAME(修改索引 .. 重命名)
- 3.6.1.3.2.
- ALTER INDEX IF EXISTS(如果存在则修改索引)
- 3.6.1.4.
- ALTER SCHEMA(修改模式)
- 3.6.1.4.1.
- ALTER SCHEMA .. RENAME(修改模式 .. 重命名)
- 3.6.1.4.2.
- ALTER SCHEMA IF EXISTS(如果存在则修改模式)
- 3.6.1.5.
- ALTER SEQUENCE(修改序列)
- 3.6.1.5.1.
- ALTER SEQUENCE .. RENAME(修改序列 .. 重命名)
- 3.6.1.5.2.
- ALTER SEQUENCE .. CACHE(修改序列 .. 缓存)
- 3.6.1.5.3.
- ALTER SEQUENCE .. CYCLE(修改序列 .. 循环)
- 3.6.1.5.4.
- ALTER SEQUENCE .. MINVALUE(修改序列 .. 最小值)
- 3.6.1.5.5.
- ALTER SEQUENCE .. MAXVALUE(修改序列 .. 最大值)
- 3.6.1.5.6.
- ALTER SEQUENCE .. INCREMENT BY(修改序列 .. 增量)
- 3.6.1.5.7.
- ALTER SEQUENCE .. START WITH(修改序列 .. 起始值)
- 3.6.1.5.8.
- ALTER SEQUENCE .. RESTART(修改序列 .. 重新开始)
- 3.6.1.5.9.
- ALTER SEQUENCE IF EXISTS(如果存在则修改序列)
- 3.6.1.6.
- ALTER TABLE(修改表)
- 3.6.1.6.1.
- ALTER TABLE .. ADD COLUMN(修改表 .. 添加列)
- 3.6.1.6.2.
- ALTER TABLE .. ADD COLUMN .. FIRST, BEFORE, AFTER(修改表 .. 添加列 .. 第一个,之前,之后)
- 3.6.1.6.3.
- ALTER TABLE .. ADD COLUMNS(修改表 .. 添加列)
- 3.6.1.6.4.
- ALTER TABLE .. ADD COLUMN IF NOT EXISTS(如果不存在则修改表 .. 添加列)
- 3.6.1.6.5.
- ALTER TABLE .. ADD PRIMARY KEY(修改表 .. 添加主键)
- 3.6.1.6.6.
- ALTER TABLE .. ADD UNIQUE(修改表 .. 添加唯一约束)
- 3.6.1.6.7.
- ALTER TABLE .. ADD FOREIGN KEY(修改表 .. 添加外键)
- 3.6.1.6.8.
- ALTER TABLE .. ADD CHECK(修改表 .. 添加检查约束)
- 3.6.1.6.9.
- ALTER TABLE .. RENAME(修改表 .. 重命名)
- 3.6.1.6.10.
- ALTER TABLE .. COMMENT(修改表 .. 注释)
- 3.6.1.6.11.
- ALTER TABLE .. ALTER COLUMN .. SET DEFAULT(修改表 .. 修改列 .. 设置默认值)
- 3.6.1.6.12.
- ALTER TABLE .. ALTER COLUMN .. DROP DEFAULT(修改表 .. 修改列 .. 删除默认值)
- 3.6.1.6.13.
- ALTER TABLE .. ALTER COLUMN .. SET NOT NULL(修改表 .. 修改列 .. 设置非空)
- 3.6.1.6.14.
- ALTER TABLE .. ALTER COLUMN .. DROP NOT NULL(修改表 .. 修改列 .. 删除非空)
- 3.6.1.6.15.
- ALTER TABLE .. ALTER COLUMN .. SET TYPE(修改表 .. 修改列 .. 设置类型)
- 3.6.1.6.16.
- ALTER TABLE .. ALTER CONSTRAINT .. ENFORCED(修改表 .. 修改约束 .. 强制执行)
- 3.6.1.6.17.
- ALTER TABLE .. ALTER CONSTRAINT .. NOT ENFORCED(修改表 .. 修改约束 .. 不强制执行)
- 3.6.1.6.18.
- ALTER TABLE .. RENAME COLUMN(修改表 .. 重命名列)
- 3.6.1.6.19.
- ALTER TABLE .. RENAME CONSTRAINT(修改表 .. 重命名约束)
- 3.6.1.6.20.
- ALTER TABLE .. RENAME INDEX(修改表 .. 重命名索引)
- 3.6.1.6.21.
- ALTER TABLE .. DROP COLUMN(修改表 .. 删除列)
- 3.6.1.6.22.
- ALTER TABLE .. DROP COLUMN RESTRICT(修改表 .. 删除列 RESTRICT)
- 3.6.1.6.23.
- ALTER TABLE .. DROP COLUMN CASCADE(修改表 .. 删除列 CASCADE)
- 3.6.1.6.24.
- ALTER TABLE .. DROP COLUMNS(修改表 .. 删除列)
- 3.6.1.6.25.
- ALTER TABLE .. DROP COLUMN IF EXISTS(如果存在则修改表 .. 删除列)
- 3.6.1.6.26.
- ALTER TABLE .. DROP CONSTRAINT(修改表 .. 删除约束)
- 3.6.1.6.27.
- ALTER TABLE .. DROP PRIMARY KEY(修改表 .. 删除主键)
- 3.6.1.6.28.
- ALTER TABLE .. DROP UNIQUE(修改表 .. 删除唯一约束)
- 3.6.1.6.29.
- ALTER TABLE .. DROP FOREIGN KEY(修改表 .. 删除外键)
- 3.6.1.6.30.
- ALTER TABLE .. DROP CONSTRAINT IF EXISTS(如果存在则修改表 .. 删除约束)
- 3.6.1.6.31.
- ALTER TABLE IF EXISTS(如果存在则修改表)
- 3.6.1.7.
- ALTER TYPE(修改类型)
- 3.6.1.7.1.
- ALTER TYPE .. RENAME(修改类型 .. 重命名)
- 3.6.1.7.2.
- ALTER TYPE .. 用于枚举更改
- 3.6.1.7.3.
- ALTER TYPE IF EXISTS(如果存在则修改类型)
- 3.6.1.8.
- ALTER VIEW(修改视图)
- 3.6.1.8.1.
- ALTER VIEW .. AS(修改视图 .. AS)
- 3.6.1.8.2.
- ALTER VIEW .. COMMENT(修改视图 .. 注释)
- 3.6.1.8.3.
- ALTER VIEW .. RENAME(修改视图 .. 重命名)
- 3.6.1.8.4.
- ALTER VIEW IF EXISTS(如果存在则修改视图)
- 3.6.2.
- COMMENT语句
- 3.6.2.1.
- COMMENT ON COLUMN(列注释)
- 3.6.2.2.
- COMMENT ON MATERIALIZED VIEW(物化视图注释)
- 3.6.2.3.
- COMMENT ON TABLE(表注释)
- 3.6.2.4.
- COMMENT ON VIEW(视图注释)
- 3.6.3.
- CREATE 语句
- 3.6.3.1.
- CREATE DATABASE(创建数据库)
- 3.6.3.2.
- CREATE DOMAIN(创建域)
- 3.6.3.3.
- CREATE FUNCTION(创建函数)
- 3.6.3.3.1.
- 标量函数
- 3.6.3.3.2.
- CREATE OR REPLACE FUNCTION(创建或替换函数)
- 3.6.3.3.3.
- SQL 数据访问特性
- 3.6.3.3.4.
- DETERMINISTIC特性
- 3.6.3.3.5.
- ON NULL INPUT特性
- 3.6.3.4.
- CREATE INDEX(创建索引)
- 3.6.3.5.
- CREATE PROCEDURE(创建存储过程)
- 3.6.3.5.1.
- CREATE OR REPLACE PROCEDURE(创建或替换存储过程)
- 3.6.3.5.2.
- SQL 数据访问特性
- 3.6.3.6.
- CREATE SCHEMA(创建模式)
- 3.6.3.7.
- CREATE SEQUENCE(创建序列)
- 3.6.3.7.1.
- CREATE SEQUENCE IF NOT EXISTS(如果不存在则创建序列)
- 3.6.3.7.2.
- CREATE SEQUENCE .. AS (新增)
- 3.6.3.7.3.
- CREATE SEQUENCE .. CACHE(创建序列 .. 缓存)
- 3.6.3.7.4.
- CREATE SEQUENCE .. CYCLE(创建序列 .. 循环)
- 3.6.3.7.5.
- CREATE SEQUENCE .. MINVALUE(创建序列 .. 最小值)
- 3.6.3.7.6.
- CREATE SEQUENCE .. MAXVALUE(创建序列 .. 最大值)
- 3.6.3.7.7.
- CREATE SEQUENCE .. INCREMENT BY(创建序列 .. 增量)
- 3.6.3.7.8.
- CREATE SEQUENCE .. START WITH(创建序列 .. 起始值)
- 3.6.3.8.
- CREATE SYNONYM (新增)
- 3.6.3.8.1.
- CREATE OR REPLACE SYNONYM (新增)
- 3.6.3.9.
- CREATE TABLE(创建表)
- 3.6.3.9.1.
- 列
- 3.6.3.9.2.
- 可空性
- 3.6.3.9.3.
- 默认值
- 3.6.3.9.4.
- 标识列
- 3.6.3.9.5.
- 计算列
- 3.6.3.9.6.
- 主键
- 3.6.3.9.7.
- 唯一约束
- 3.6.3.9.8.
- 外键
- 3.6.3.9.9.
- 检查约束
- 3.6.3.9.10.
- 从SELECT创建
- 3.6.3.9.11.
- 全局临时表
- 3.6.3.10.
- CREATE TRIGGER(创建触发器)
- 3.6.3.10.1.
- 事件
- 3.6.3.10.2.
- REFERENCING子句
- 3.6.3.10.3.
- STATEMENT vs ROW触发器
- 3.6.3.10.4.
- WHEN子句
- 3.6.3.11.
- CREATE TYPE .. AS ENUM(创建类型 .. AS ENUM)
- 3.6.3.12.
- CREATE TYPE .. AS OBJECT(创建类型 .. AS OBJECT)
- 3.6.3.13.
- CREATE VIEW(创建视图)
- 3.6.3.13.1.
- CREATE OR REPLACE VIEW(创建或替换视图)
- 3.6.3.13.2.
- WITH CHECK OPTION(WITH CHECK OPTION)
- 3.6.3.13.3.
- WITH READ ONLY(WITH READ ONLY)
- 3.6.3.13.4.
- MATERIALIZED(物化)
- 3.6.4.
- DROP语句
- 3.6.4.1.
- DROP DATABASE(删除数据库)
- 3.6.4.1.1.
- IF EXISTS(如果存在)
- 3.6.4.2.
- DROP DOMAIN(删除域)
- 3.6.4.2.1.
- IF EXISTS(如果存在)
- 3.6.4.3.
- DROP FUNCTION(删除函数)
- 3.6.4.3.1.
- IF EXISTS(如果存在)
- 3.6.4.4.
- DROP INDEX(删除索引)
- 3.6.4.4.1.
- IF EXISTS(如果存在)
- 3.6.4.5.
- DROP PROCEDURE(删除存储过程)
- 3.6.4.5.1.
- IF EXISTS(如果存在)
- 3.6.4.6.
- DROP SCHEMA(删除模式)
- 3.6.4.6.1.
- IF EXISTS(如果存在)
- 3.6.4.7.
- DROP SEQUENCE(删除序列)
- 3.6.4.7.1.
- IF EXISTS(如果存在)
- 3.6.4.8.
- DROP SYNONYM (新增)
- 3.6.4.8.1.
- IF EXISTS (新增)
- 3.6.4.9.
- DROP TABLE(删除表)
- 3.6.4.9.1.
- CASCADE(级联)
- 3.6.4.9.2.
- IF EXISTS(如果存在)
- 3.6.4.10.
- DROP TRIGGER(删除触发器)
- 3.6.4.10.1.
- IF EXISTS(如果存在)
- 3.6.4.11.
- DROP TYPE(删除类型)
- 3.6.4.11.1.
- IF EXISTS(如果存在)
- 3.6.4.12.
- DROP VIEW(删除视图)
- 3.6.4.12.1.
- IF EXISTS(如果存在)
- 3.6.5.
- GRANT语句
- 3.6.6.
- REVOKE语句
- 3.6.7.
- SET语句
- 3.6.7.1.
- SET CATALOG(设置目录)
- 3.6.7.2.
- SET SCHEMA(设置模式)
- 3.6.8.
- TRUNCATE语句
- 3.6.9.
- 从对象生成DDL
上一节 : 下一节 |
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!