4 . 约束

1.约束的种类

    非空约束:not null
    唯一性约束: unique
    主键约束: primary key (简称PK)
    外键约束:foreign key(简称FK)
    检查约束:check(mysql不支持,oracle支持)

>>根据约束位置可分为

列级约束 如  name varchar(255) unique,

表级约束 如 unique(name,email)  // 这时只有两个都一样才违反约束

2.非空约束  not null

    drop table if exists t_vip;
    create table t_vip(
        id int,
        name varchar(255) not null  // not null只有列级约束,没有表级约束!
    );

这时若输入数据的name值为空就会报错

3.唯一性约束  unique

3.1列级

    create table t_vip(
        id int,
        name varchar(255) unique,
        email varchar(255)
    );

3.2表级

            drop table if exists t_vip;
            create table t_vip(
                id int,
                name varchar(255),
                email varchar(255),
                unique(name,email) // 约束没有添加在列的后面,这种约束被称为表级约束。
            );

4.主键约束

4.1主键特征

not null + unique(主键值不能是NULL,同时也不能重复!)

②任何一张表都应该有主键,没有主键,表无效!!

4.2主键作用

        主键值是每一行记录的唯一标识。
        主键值相当于一行记录的身份证号!!!

4.3单一主键和复合主键

①单一主键

        create table t_vip(
            id int primary key,  //列级约束
            name varchar(255)
        );

②复合主键(不建议使用!!)

        create table t_vip(
            id int,
            name varchar(255),
            email varchar(255),
            primary key(id,name)
        );

>>不能有两个主键

        drop table if exists t_vip;
        create table t_vip(
            id int primary key,
            name varchar(255) primary key
        );

会报错

4.4主键的自动维护 (使用auto_increment)

        create table t_vip(
            id int primary key auto_increment, //auto_increment表示自增,从1开始,以1递增!
            name varchar(255)
        );

5.外键

如何添加外键约束

以表级约束的方式添加:

foreign key 列 references 表名(列名)

注意

①被引字段不一定要是主键,有unique约束就行

②外键值可以为空值

Guess you like

Origin blog.csdn.net/weixin_44593786/article/details/121171826