DBMS 中的域约束

  • Post category:database

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中,语法和实现方法可能略有差异,需要具体参考各自的文档。