MySQL数据库>约束>>非空、唯一、主键、外键约束的使用方法

    概念:对表中的数据进行限定,保证数据额正确性、有效性和完整性。
    分类:
        1.主键约束:primary key
        2.非空约束:not null
        3.唯一约束:unique
        4.外键约束:foreign key
    非空约束:not null
        1.创建表时添加约束
            CREATE TABLE stu{
                id INT,
                NAME VARCHAR(20) NOT NULL -- name为非空约束
            };
        2.创建表完后,添加非空约束
            ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
        3.删除非空约束
            ALTER TABLE stu MODIFY NAEM VARCHAR(20) NOT NULL;
    唯一约束:unique,值不能重复
        1.创建表时,添加唯一约束
            create table stu{
                id int,
                phone_number varchar(20) unique -- 添加了唯一约束
                };
            注意mysql中,唯一约束限定的列的值可以有多个null
        2.删除唯一约束
            alter table stu drop index phone_number;
        3.在创建表后,添加唯一约束
            alter table stu modify phone_number varchar(20) unique;
    主键约束:primary key
        1.注意:
            1.含义:非空且唯一
            2.一张表只能有一个字段为主键
            3.主键就是表中记录的唯一标识
        2.在创建表时,添加主键约束
            create table stu{
                id int primary key, -- 给id添加主键约束
                name varchar(20)
            };
        3.删除主键
            alter table stu drop primary key;
        4.创建完表后,添加主键
            alter table stu modify id int primary key;
        5.自动增长:
            1.概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长
            2.再创建表时,添加主键约束,并且完成主键自增长
                create table stu{
                    id int primary key auto_increment, -- 给id添加主键约束
                    name varchar(20)
                };
            3.删除自动增长
                alter table stu modify id int;
            4.添加自动增长
                alter table stu modify id int auto_increment;
    外键约束:foreign key,让表与表产生关系,从而保证数据的正确性
        1.在创建表示,可以添加外键
            语法:
                create table 表名{
                    ....
                    外键列
                    constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
                };
        2.删除外键
            alter table 表名 drop foreign key 外键名称;
        3.创建外键
            alter table 表名 add constraint 外键名称 foreign key(外键字段名称) references 主表名称(主表列名称);
        4.级联操作
            1.添加级联操作
                语法:alter table 表名 add constraint 外键名称
                      foreign key(外键字段名称) references 主表名称(主表列名称)
                      on update cascade on delete cascade;
            2.分类:
                1.级联更新:on update cascade
                2.级联删除:on delete cascade