MySQL约束超详解

 更新时间:2021年09月02日 16:21:41   作者:LL.LEBRON  
这篇文章主要介绍了MySQL约束包括非空约束、唯一约束、主键约束、外键约束,需要的朋友可以具体参考下面文章内容

MySQL约束操作

概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。

分类:

  • 主键:primary key
  • 非空约束:not null
  • 唯一约束:unique
  • 外键约束:foreign key

1.非空约束

not null,值不能为空。

创建表时添加非空约束:

CREATE TABLE stu(
 id INT,
 NAME VARCHAR(20) NOT NULL
);

创建表完后,添加非空约束

ALTER TABLE stu 
MODIFY NAME VARCHAR(20) NOT NULL;

删除非空约束

ALTER TABLE stu 
MODIFY NAME VARCHAR(20);

2.唯一约束

unique,值不能重复。

创建表时添加唯一约束

CREATE stu(
 id INT;
 phone_number VARCHAR(20) UNIQUE
);

注意:mysql中,唯一约束限定的列的值可以有多个null

删除唯一约束

ALTER TABLE stu
DROP INDEX phone_number;

创建表完后,添加唯一约束

ALTER TABLE stu 
MODIFY phone_number VARCHAR(20) UNIQUE;

3.主键约束

primary key,

  • 非空且唯一。
  • 一张表只能有一个字段为主键。
  • 主键就是表中记录的唯一标识。

创建表时添加主键约束

CREATE TABLE stu( 
 id INT PRIMARY KEY,
 NAME VARCHAR(20)
);

删除主键

ALTER TABLE stu 
DROP PRIMARY KEY;

创建表完后,添加主键

ALTER TABLE stu 
MODIFY id INT PRIMARY KEY ;

这里补充一个知识点:自动增长

概念:如果某一列是数值类型的,使用auto_increment可以来完成自动增长。

例子:

在创建表时,添加主键约束,并且完成主键自动增长

CREATE TABLE stu(
 id INT PRIMARY KEY AUTO_INCREMENT,
 NAME VARCHAR(20)
);
#自动增长会根据当前列的最后一行的值往后增加。

删除自动增长

ALTER TABLE stu
MODIFY id INT;
#这样只会删除自动增长,主键删不掉。

创建表完后,在添加自动增长

ALTER TABLE stu
MODIFY id INT AUTO_INCREMENT;

4.外键约束

foreign ley,让表与表产生关系,从而保证数据的正确性。

在创建表时,可以添加外键

CREATE TABLE 表名(
 ...
 外键列
 CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称)
);

删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

创建表之后,添加外键

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

5、级联

添加级联操作

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 
FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称)
ON UPDATE CASCADE ON DELETE CASCADE  ;

级联删除

ON UPDATE CASCADE

到此这篇关于MySQL约束超详解的文章就介绍到这了,更多相关MySQL约束内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文搞懂MySQL索引特性(清晰明了)

    一文搞懂MySQL索引特性(清晰明了)

    索引可以提高数据库的性能,提高一个海量数据的检索速度,但是插入,更新,删除的速度相应会降低,下面这篇文章主要给大家介绍了关于MySQL索引特性的相关资料,需要的朋友可以参考下
    2023-04-04
  • MacOS 下安装 MySQL8.0 登陆 MySQL的方法

    MacOS 下安装 MySQL8.0 登陆 MySQL的方法

    这篇文章主要介绍了MacOS 下安装 MySQL8.0 登陆 MySQL 的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 关于MySQL中的查询开销查看方法详解

    关于MySQL中的查询开销查看方法详解

    一个查询通常可以有很多种执行方式,并且返回同样的结果,而好的程序员应该是找到最好的方式,下面这篇文章主要给大家介绍了关于MySQL中查询开销查看方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • SQL 中 HAVING 常见的使用方法

    SQL 中 HAVING 常见的使用方法

    这篇文章主要介绍了SQL中HAVING常见的使用方法,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • MySql获取某个字段存在于哪个表的sql语句

    MySql获取某个字段存在于哪个表的sql语句

    本文为大家详细介绍下通过MySql查询某个字段所在表是哪一个,具体的sql语句如下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-07-07
  • Mysql CAST函数的具体使用

    Mysql CAST函数的具体使用

    本文主要介绍了Mysql CAST函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)

    最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)

    这篇文章主要介绍了最新版MySQL 8.0.22下载安装超详细教程(Windows 64位),本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • mysql 8.0.15 安装配置方法图文教程(Windows10 X64)

    mysql 8.0.15 安装配置方法图文教程(Windows10 X64)

    这篇文章主要为大家详细介绍了Windows10 X64 mysql 8.0.15 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • mysql主键id的生成方式(自增、唯一不规则)

    mysql主键id的生成方式(自增、唯一不规则)

    本文主要介绍了mysql主键id的生成方式,主要包括两种生成方式,文中通过代码示例介绍的非常详细,感兴趣的可以了解一下
    2021-09-09
  • Win10下免安装版MySQL8.0.16的安装和配置教程图解

    Win10下免安装版MySQL8.0.16的安装和配置教程图解

    这篇文章主要介绍了Win10下免安装版MySQL8.0.16的安装和配置 ,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考解决价值,需要的朋友可以参考下
    2019-06-06

最新评论