可用版本: Dev (3.21) | 最新版 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

SQL 语句 (DDL)

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

数据定义语言 (DDL) 用于CREATE(创建)ALTER(修改)DROP(删除)数据库目录中的各种对象类型。 jOOQ 原生支持越来越多的这些操作,并且为了方便起见,还增加了合成操作支持。

虽然原生支持许多 DDL 语句,并且与 jOOQ API 的表示形式一一对应,但在 DDL 语句支持方面,不同数据库方言存在许多细微的差异。 这些差异可能包括

  • 不同的关键字表示相同的意思。 例如,在更改表中的列或其他属性时,可以使用关键字 ALTERCHANGEMODIFY
  • 不同的语句而不是子句。 例如,某些数据库方言可能会选择支持 RENAME [object type] .. TO .. 语句,而不是使重命名操作成为 ALTER [object type] .. RENAME TO .. 的子句
  • 某些语法可能不受支持,或者不支持一致地支持,例如各种 IF EXISTSIF NOT EXISTS 子句。 可以使用数据库方言的过程语言进行模拟

由于这些许多差异,jOOQ 手册不会列出每个 jOOQ API 调用的每个单独的本机 SQL 表示形式。 此外,可能存在一些可选子句,例如可以从 API 轻松发现的 IF EXISTSOR 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

上一节 : 下一节

反馈

您对此页面有任何反馈吗? 我们很乐意听到您的反馈!

The jOOQ Logo