第22课 高级SQL特性
约束
1.约束:管理如何插入或管理数据库数据的规则
DBMS通过在数据库表上施加约束来实施引用完整性
- 主键:
- 任意两行的主键值都不相同
- 每行都具有一个主键值,列中不允许NULL值
- 包含主键值的列从不修改或更新
- 主键值不能重用
CREATE TABLE Vendors
(
vend_id CHAR(10) NOT NULL PRIMARY KEY,
vend_name CHAR(50) NOT NULL,
...
)
ALTER TABLE Vendors
ADD CONSTRAINT PRIMARY KEY (vend_id);
- 外键:
ALTER TABLE Orders
ADD CONSTRAINT
FOREIGN KEY(cust_id) REFERENCES Customers(cust_id);
-
唯一约束UNIQUE
表可包含多个唯一约束,唯一约束列可包含NULL值,可修改或更新,可重复使用,不能用来定义外键 -
检查约束
quantity INTEGER NOT NULL CHECK (quantity>0)
ADD CONSTRAINT CHECK (gender LIKE '[MF]')
索引
CREATE INDEX prod_name_ind
ON Products (prod_name);
触发器
CREATE TRIGGER customer_state
ON Customers
FOR INSERT, UPDATE
AS
UPDATE Customers
SET cust_state=UPPER(cust_state)
WHERE Customers.cust_id=inserted.cust_id;
网友评论