03_mysql常用的约束条件及执行

约束

* 对表中的数据进行限定,保证数据的正确性、有效性和完整性。
* 分类:
    1. 主键约束: primary key
    2. 非空约束: not null
    3. 唯一约束: unique
    4. 外键约束: foreign key
    
    
* 非空约束:
    1.创建时添加
    create table student (
        id int,
        name varchar(32) not null
        );
    2.创建表完后,修改
    alter table student modify name varchar(32) not null;
    
    3.删除非空约束
    alter table student modify name varchar(32);
    
 * 唯一约束:值不能重复,但是null可以出现多个
    1.创建时添加
    2.修改
    alter table student modify phone_number varchar(20) unique;
    3.删除唯一约束
    alter table student drop index phone_number;
    
* 主键约束:非空且唯一,一张表只能有一个主键。表中记录的唯一标识。
    1.创建时添加主键
    create table student (
        id int primary key, 给id添加主键
        name varchar(32) not null
        );
    
    2.修改
    alter table student modify id  int primary key;
    
    3.删除主键
    alter table student drop primary key;
    
    4.自动增长:如果某一列是数值类型的,使用auto_increment可以完成值的自动增长。
    
      create table student (
        id int primary key auto_increment, 给id添加主键
        name varchar(32) not null
        );
* 外键约束
    1.创建时添加外键
    create table student (
        id int primary key, 给id添加主键
        name varchar(32) not null
        外键列
        constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
        );
        
        create table employee(id int primary key auto_increment,name varchar(20),age int,dep_id int,constraint emp_dept foreign key(dep_id) references employee(id));
    
    2.删除外键
    alter table employee drop foreign key emp_dept;
    
    3.添加外键(引用时最好引用主键或者唯一值)
        不然会出现:1215 - Cannot add foreign key constraint
    alter table employee add constraint emp_dept foreign key(dep_id) references department(id)
    
    4.级联:
        如果设置时有问题,检查所设置的键的值是否匹配
    
    设置级联更新
     alter table employee add constraint emp_dept foreign key(dep_id) references department(id) on update cascade;
     
    设置级联删除
    alter table employee add constraint emp_dept foreign key(dep_id) references department(id) on update cascade on delete cascade;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值