美文网首页
mysql基础2-数据完整性约束使用

mysql基础2-数据完整性约束使用

作者: D_w | 来源:发表于2021-10-27 14:27 被阅读0次

四、数据完整性约束

实体完整性、域完整性、引用完整性、自定义完整性

1、实体完整性
主键约束、唯一约束、主键自增

1)主键约束
    特点:唯一的,不能为空 
    关键字:primary key
    添加约束语法:alter table 表名 add constraint 约束名 primary key(字段名);
    约束名:PK_字段
    删除约束语法:alter table 表名 drop primary key;
    
    规定:在每一个表中有且只有一个主键约束

    create table student(
        id int primary key,
        name varchar(20),
        age int
    )

    alter table userinfo add uid int;
    #表已经创建好了,如何添加主键约束
    #alter table 表名 add constraint 约束名 primary key(字段名);
    #约束名:PK_字段
    alter table userinfo add constraint PK_uid primary key(uid);

    #删除约束
    #alter table 表名 drop primary key;
    alter table userinfo drop primary key;

2)唯一约束
    特点:不能重复,可以为空,可以添加多个
    关键字:unique
    添加约束语法:alter table 表名 add constraint 约束名 unique(字段名);
    约束名:UQ_字段
    删除约束语法:alter table 表名 drop key 约束名;

    create table student(
        id int primary key,
        name varchar(20),
        age int,
        id_card varchar(20) unique
    )

    alter table userinfo add constraint UQ_login_name unique(login_name); 
    
    alter table userinfo drop key UQ_login_name;
    
3)主键自增
     特点:从1开始,每次自身加1(在oracle中不能使用)
     关键字: auto_increment
     只能在创建表的时候添加主键自增的约束,而且必须是主键才可以添加

    create table student(
        id int primary key auto_increment,
        name varchar(20),
        age int,
        id_card varchar(20) unique
    )

    -- 删除主键自增约束
    --  1:去除自增性
    alter table student modify id int;
    --  2:删除主键约束
    alter table student drop primary key;

2、域完整性
域完整性约束保证字段的数据准确的
域完整性包括类型约束、非空约束、默认值

1)非空约束
    特点:字段不允许为空
    关键字: not null

2)默认值
     特点:设置默认的值
    关键字: default
    
create table student(
    id int primary key auto_increment,
    name varchar(20) not null,
    age int not null,
    sex char(2) default '男',
    id_card varchar(20) unique
)

3、引用完整性
一张表中通用列的取值必须参考另外一张表的主键
引用完整性有外键约束

1)外键约束
特点:设置外键的字段的取值只能参考另一张表中同一个字段的值
关键字: foreign key
添加外键约束的语法:alter table 表名1 add constraint 约束名 foreign key(字段名) references 表名2(字段名)
删除外键的语法:alter table 表名 drop foreign key 约束名;


注意:
1、主外键关联
2、外键关联字段名称可以不一样,但是类型必须一致

--外键约束
    create table student(
        id int primary key auto_increment,
        name varchar(20) not null,
        age int not null,
        sex char(2) default '男',
        id_card varchar(20) unique,
        class_id int  #添加外键约束
    )

    create table classroom(
        class_id int PRIMARY key,
        class_name varchar(20)
    )

    -- 添加外键约束的语法:alter table 表名1 add constraint 约束名 foreign key(字段名) references 表名2(字段名)
    -- 约束名 FK_字段名

    alter table student add constraint FK_class_id foreign key(class_id) references classroom(class_id);
    
    --  删除外键的语法:alter table 表名 drop foreign key 约束名;
    alter table student drop foreign key FK_class_id;

相关文章

  • mysql基础2-数据完整性约束使用

    四、数据完整性约束 实体完整性、域完整性、引用完整性、自定义完整性 1、实体完整性主键约束、唯一约束、主键自增 2...

  • 2018.12.28 数据定义DDL-3.3/3.4

    3.3数据完整性约束 3.3.1 数据的完整性约束 3.3.2 主键约束 3.3.3 代替键约束 3.3.4 参照...

  • mysql表约束

    mysql表的约束 约束是一种限制,它通过对表的行或者列的数据做出限制,来确保表数据的完整性和唯一性.在mysql...

  • MySQL约束

    概念: 为了保证数据的完整性和一致性,MySQL提供了约束这个属性。约束分为表级约束和列级约束,如果约束只是针对某...

  • 一篇文章带你彻底了解MySQL各种约束

    MySQL约束 <1> 概念 是一种限制,它是对表的行和列的数据做出约束,确保表中数据的完整性和唯一性。 <2> ...

  • 【笔记】数据表管理

    一、约束 【为什么要有约束?】 保证数据表数据的完整性和合理性 1.实体完整性(对行进行约束) 约束方法:唯一约束...

  • 3、约束

    MySQL数据库约束:约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。常见的几种...

  • 约束

    1、使用约束的作用 约束保证数据的完整性和一致性 2、约束的分类 约束分为表级约束和列级约束 约束类型包括:not...

  • SQL-完整性约束-2018.07.13

    完整性约束 数据类型完整性 非空约束 唯一键 主键约束 外键约束 默认值约束 标识列8 检查约束(CHECK)

  • MySQL约束

    mysql约束 1. 约束简介 关系型数据库系统和文件系统的一个不同点是,关系型数据库本身能保证存储数据的完整性,...

网友评论

      本文标题:mysql基础2-数据完整性约束使用

      本文链接:https://www.haomeiwen.com/subject/hocpaltx.html