只讲干货!!数据库的裤腰带!!今天拿下:MySQL中的约束!!

MySQL中的约束

约束概述

        数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性

主键约束(Primary Key) PK

        主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。
        主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。例如,学生信息表中的学号是唯一的。

外键约束(Foreign Key) FK

        外键约束经常和主键约束一起使用,用来确保数据的一致性。

唯一性约束(Unique)

        唯一约束与主键约束有一个相似的地方,就是它们都能够确保列的唯一性。与主键约束不同的是,唯一约束在一个表中可以有多个,并且设置唯一约束的列是允许有空值的。

非空约束(Not Null)

        非空约束用来约束表中的字段不能为空

检查约束(Check)

        检查约束也叫用户自定义约束,是用来检查数据表中,字段值是否有效的一个手段,但目前MySQL 数据库不支持检查约束。

添加主键约束(Primary Key)

        单一主键

        使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。

        联合主键

        使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。

修改表添加主键约束

        使用DDL语句添加主键约束

        ALTER TABLE 表名 ADD PRIMARY KEY(列名)

示例:
        将 emp 表中的 employee_id 修改为主键。
        alter table emp add primary key ( employee_id ) ;

主键自增长

        MySQL 中的自动增长类型要求:
        一个表中只能有一个列为自动增长。
        自动增长的列的类型必须是整数类型。
        自动增长只能添加到具备主键约束与唯一性约束的列上。
        删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然 后在删除约束

        alter table 表名 modify 主键 类型 auto_increment;

示例:
        将 emp 表中的 employee_id 主键修改为自增。
        alter table emp modify employee_id int auto_increment ;

        使用Navicat添加主键约束

删除主键

        使用DDL语句删除主键

        ALTER TABLE 表名 DROP PRIMARY KEY;

注意:
        删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除主键。
示例:
        ALTER TABLE 表名 DROP PRIMARY KEY ; 删除 emp 表中的 employee_id 主键约束。
去掉自动增长:
        alter table emp modify employee_id int;

删除主键:

      

          alter table emp drop primary key;

使用Navicat删除主键

添加外键约束(Foreign Key)

        修改表添加外键约束

                使用DDL语句添加外键约束
        ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY ( 列 名 ) REFERENCES 参照的表名 ( 参照的列名 ) ;
示例一:
        创建 departments 表包含 department_id department_name location_id
        create table departments ( department_id int,department_namevarchar ( 30 ) ,location_id int ) ;
示例二:
        修改departments 表,向 department_id 列添加主键约束与自动递增。
        alter table departments add primary key ( department_id ) ;
        alter table departments modify department_id int auto_increment ;
                使用Navicat添加外键约束

删除外键约束

        使用DDL语句删除外键约束

        ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

示例:
        删除 dept_id 的外键约束
        alter table emp drop foreign key emp_fk;

        使用Navicat删除外键约束

添加唯一性约束(Unique)

        修改表添加唯一性约束

                使用DDL语句加唯一性约束

        ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名);

示例:
        向 emp 表中的 name 添加唯一约束。
        alter table emp add constraint emp_uk unique ( name ) ;
                使用Navicat添加唯一性约束

删除唯一性约束

        使用DDL语句删除唯一性约束。

        ALTER TABLE 表名 DROP KEY 约束名

示例:
        删除 name 的唯一约束。

        alter table emp drop key emp_uk;

        Navicat删除唯一性约束

非空约束(Not Null)

        修改表添加非空约束

                        用DDL语句添加非空约束

        ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;

示例:
        向 emp 表中的 salary 添加非空约束。

        alter table emp modify salary float(8,2) not NULL;

                        使用Navicat添加非空约束

删除非空约束

        用DDL语句删除非空约束

        ALTER TABLE 表名 MODIFY 列名 类型 NULL ;
示例:
        删除emp 表中 salary 的非空约束。
        alter table emp modify salary float ( 8 , 2 ) NULL ;

        使用Navicat删除非空约束

创建表时添加约束

示例:
        
        创建 depts 表包含 department_id 该列为主键且自动增长, department_name 列不 允许重复,location_id 列不允含有空值。
        create table depts ( department_id int primary key auto_increment ,department_name
varchar ( 30 ) unique ,location_id int not null ) ;

只讲干货

#有什么错误的地方大家多多担待,欢迎大家留下意见共同努力。


#需要什么技术的内容大家也可以积极留言。


#有升本的伙伴也可留言,后序也可更新升本内容C 和数据结构。


#有需要的伙伴或有什么问题直接联留下wx或联系邮箱2821835676qq.com

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值