表的约束

                                                                        表的约束
1、首先先来了解一下
  • 实体完整性:要求 表中不能存在两个完全相同的行,并且 每行必须是 非空且不重复的主键值。
  • 主键的约束:primary key,确保数据库中的每条记录的唯一性,也就是说作为主键的实体在表中不能重复出现。
  • 参照完整性(引用完整性):表与表之间的规则,作用于两个表或者两个以上的表之间,通过主键与外键的关系,使表中键值在相关表中保持一致
2、举例
  • 主键的约束
use       Information                --选择要操作的数据库
insert    class     value(1602,'物联网工程')    --1602 代表的是class表中的id号,后面代表的是专业名,这两个是在表中建立好的,并且id号是主键
insert    class     value(1602,'物联网工程')    --主键重复
这样的话会报错,“不能再对象...中插入重复键”
将第二局改为
insert    class     value(1601,'物联网工程')    --正确,有已经插入到表中
    如何加主键的约束呢?
  • 创建表的时候添加(1)
create    table     class
(
    class_id    int     primary    key            --直接在后面添加,这样创建出来的主键的名字是系统自己分配的
)  
  • 创建表的时候添加(2)
create    table     class
(
    class_id    int,           
    constraint    PK_class_id    Primary Key(class_id)        --这样创建的主键的名字是自己给的
  • 在表创建后加上主键约束
use          Information                    --选择要操作的数据库
alter     table    class             --更改表class , alter更改的关键词
add     Constraint     PK_Class_num     primary key(mem_num)    --add 增加,Constraint 约束,  PK_Class_num 给这个约束起的名字,primary key约束的关键字,                                                                    --mem_num将这个约束作用在这个实体上,将其设为主键  
  • 同时设置两个主键
create table  calss
(
    class_id    int,
    class_num   int,
    constraint    PK_class_id_num    Primary Key (class_id,class_num)        --同时将其设置成主键
)
  • 主键约束与外键约束
主键约束     例如:constraint    PK_class_id_num    Primary Key (class_id)        
外键约束     例如:constraint    FK_Class_id        Foreign Key(class_id2) references class(class_id)  --外键约束,class_id2 确保在class表的class_id中存在
  • 唯一约束
alter    table    calss
add constraint    UQ_class_id    unique(class_id),    --class_id在表中不能重复出现
add constraint     UQ_class_id     unique(class_id,class_num),     --class_id,class_num 在表中不能同时重复出现,单独一个还是可以的
  • 自定义约束
check 自定义约束
alter     table     class
add constraint    CK_Sex check(sex = '男' or sex = '女'or sex = '人')
add constraint    CK_Sex check sex in ('男','女','人')  
  • 其他约束
1、not null    不知道填什么可以用null代替,null表示未知值,其不是 0 也不是空字符
2、default(),   例如:tlevel char(1) default('0')    ,默认为0   ,    default()括号里面写的内容类型与前面的类型一致,如char
3、identity(1,1)    自增约束,从哪个值开始,每次增加多少



















你可能感兴趣的:(数据库)