在Oracle数据库中,DDL(Data Definition Language)语句用于定义和管理数据库结构,如表、约束、索引等。以下是如何使用DDL语句来管理表和约束的一些示例。
1. 创建表
使用CREATE TABLE
语句来创建表。
CREATE TABLE employees ( employee_id NUMBER PRIMARY KEY, first_name VARCHAR2(50), last_name VARCHAR2(50), email VARCHAR2(100) UNIQUE NOT NULL, hire_date DATE, salary NUMBER(10, 2) CHECK (salary > 0), department_id NUMBER REFERENCES departments(department_id)
);
在这个例子中,employees
表有多个列,包括一个主键约束(PRIMARY KEY
)、一个唯一约束(UNIQUE
)、一个非空约束(NOT NULL
)、一个检查约束(CHECK
)和一个外键约束(REFERENCES
)。
2. 修改表
使用ALTER TABLE
语句来修改表结构。
添加列
ALTER TABLE employees ADD (address VARCHAR2(100));
修改列
ALTER TABLE employees MODIFY (salary NUMBER(12, 2));
删除列
ALTER TABLE employees DROP COLUMN address;
重命名列
注意:Oracle没有直接的ALTER TABLE ... RENAME COLUMN
语句。你需要使用其他方法,如创建一个新列,复制数据,然后删除旧列。
3. 管理约束
添加约束
-
主键约束
ALTER TABLE employees ADD CONSTRAINT pk_employees PRIMARY KEY (employee_id);
-
唯一约束
ALTER TABLE employees ADD CONSTRAINT uq_employees_email UNIQUE (email);
-
检查约束
ALTER TABLE employees ADD CONSTRAINT ck_employees_salary CHECK (salary > 0);
-
外键约束
ALTER TABLE employees ADD CONSTRAINT fk_employees_departments FOREIGN KEY (department_id) REFERENCES departments(department_id);
删除约束
要删除约束,你需要知道约束的名称(除非它是自动生成的)。
ALTER TABLE employees DROP CONSTRAINT pk_employees;
如果你不知道约束的名称,但知道它的类型(例如,它是某个表的主键),你可以查询数据字典视图(如USER_CONSTRAINTS
或ALL_CONSTRAINTS
)来找到它。
4. 删除表
使用DROP TABLE
语句来删除表。
DROP TABLE employees;
注意:删除表会永久删除表及其所有数据,所以在执行此操作之前请务必谨慎。
以上只是DDL语句在Oracle中管理表和约束的基本用法。实际上,Oracle提供了更多的选项和功能来定义和管理数据库结构。