在PostgreSQL中,數據定義語言(DDL)腳本用于定義、修改或刪除數據庫的結構。DDL 操作包括創建表、修改表結構、刪除表等。以下是幾種常見的DDL操作示例以及如何在腳本中實現它們。
1. 創建表
CREATE TABLE employees (employee_id SERIAL PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),email VARCHAR(100) UNIQUE,hire_date DATE
);
2. 修改表結構
添加列
ALTER TABLE employees ADD COLUMN department_id INT;
?修改列數據類型
ALTER TABLE employees ALTER COLUMN email TYPE VARCHAR(150);
重命名列?
ALTER TABLE employees RENAME COLUMN email TO email_address;
刪除列?
ALTER TABLE employees DROP COLUMN department_id;
刪除表?
DROP TABLE employees;
??創建索引
CREATE INDEX idx_employee_email ON employees (email_address);
修改索引(例如重命名索引)
DROP INDEX idx_employee_email;
CREATE INDEX idx_new_employee_email ON employees (email_address);
創建序列和主鍵序列自動增長(對于自增字段)?
CREATE SEQUENCE employee_id_seq;
ALTER TABLE employees ALTER COLUMN employee_id SET DEFAULT nextval('employee_id_seq');
ALTER TABLE employees ALTER COLUMN employee_id SET DEFAULT nextval('employee_id_seq'); -- 如果序列已存在,則需要手動設置默認值,因為 SERIAL 自動處理序列的創建和默認值設置。通常,使用 SERIAL 會自動處理這些。
?添加外鍵約束
ALTER TABLE employees ADD CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id);
刪除外鍵約束(和索引等其他約束)
ALTER TABLE employees DROP CONSTRAINT fk_department; -- 外鍵約束名可能需要根據具體情況調整。或者通過索引名刪除外鍵約束(不推薦,除非你知道索引名):DROP INDEX fk_department;