DBMS 中的域约束是指对于每一个属性(列)设置了其取值的规定,保证属性值的合法性,避免数据异常或不符合实际要求。常用的域约束有以下几种:
1. 非空约束
非空约束即要求某个属性值不能为空。可以用以下SQL语句进行创建:
CREATE TABLE TABLE_NAME (
COLUMN_NAME DATA_TYPE CONSTRAINT CONSTRAINT_NAME NOT NULL
);
例如,为customer表的name列添加非空约束,语句可如下:
ALTER TABLE customer ADD CONSTRAINT not_null_name NOT NULL;
2. 默认约束
默认约束即要求某个属性在没有特别给定值的时候,必须具有默认值。可以用以下SQL语句进行创建:
CREATE TABLE TABLE_NAME (
COLUMN_NAME DATA_TYPE CONSTRAINT CONSTRAINT_NAME DEFAULT DEFAULT_VALUE
);
例如,为customer表的age列添加默认约束,默认值为18,语句可如下:
ALTER TABLE customer ADD CONSTRAINT default_age DEFAULT 18 FOR age;
3. 唯一约束
唯一约束即要求某个属性值必须唯一,不允许重复。可以用以下SQL语句进行创建:
CREATE TABLE TABLE_NAME (
COLUMN_NAME DATA_TYPE CONSTRAINT CONSTRAINT_NAME UNIQUE
);
例如,为orders表的order_no列添加唯一约束,语句可如下:
ALTER TABLE orders ADD CONSTRAINT unique_order_no UNIQUE (order_no);
4. 主键约束
主键约束即要求某个属性值必须唯一,且不允许为空。一个表只能有一个主键。可以用以下SQL语句进行创建:
CREATE TABLE TABLE_NAME (
COLUMN_NAME DATA_TYPE CONSTRAINT CONSTRAINT_NAME PRIMARY KEY
);
例如,为customers表的id列添加主键约束,语句可如下:
ALTER TABLE customers ADD CONSTRAINT pk_customer_id PRIMARY KEY (id);
5. 外键约束
外键约束即要求某个属性的值必须是另一个表的主键值,保证数据的一致性和完整性。可以用以下SQL语句进行创建:
CREATE TABLE TABLE_NAME (
COLUMN_NAME DATA_TYPE CONSTRAINT CONSTRAINT_NAME REFERENCES REFERENCE_TABLE (REFERENCE_COLUMN_NAME)
);
例如,为orders表的customer_id列添加外键约束,关联customers表的id列,语句可如下:
ALTER TABLE orders ADD CONSTRAINT fk_orders_customer_id FOREIGN KEY (customer_id) REFERENCES customers (id);
需要注意的是,在设置约束时应当考虑到数据的完整性和一致性,同时具体约束的实现方法应当符合实际需求。在不同的DBMS中,语法和实现方法可能略有差异,需要具体参考各自的文档。