Mysql数据库之约束条件详解

 更新时间:2025年01月10日 16:48:50   作者:_BooI  
本文介绍了数据库表中的主键约束、非空约束、唯一约束、默认值约束和外键约束,并举例说明了如何在创建表和修改表时设置这些约束

一、主键约束

主键约束(PRIMARY KEY constraint)用于唯一标识数据库表中的每条记录。

语法:

create table 表名 (
列名1 数据类型 primary key,
列名2 数据类型,
...
);

在主键的后面添加:auto_increment, 可以让主键自增。

设置auto_increment之后,可以不用设置id, id会自增。

创建表之后再创建主键的语法:alter table 表名 add primary key (列名1, 列名2, ...);

二、非空约束

非空约束是一种数据库约束,用于确保表中的某个列不接受空值。当为表的某个列定义了非空约束后,插入或更新该列时,必须提供非空的值。

语法:

create table 表名 (
列名 数据类型 not null,
...
);

创建表之后再设置非空的语法:alter table 表名 modify 列名 数据类型 not null;

三、唯一约束

唯一约束是一种数据库约束,用于确保表中的某个列或一组列的值是唯一的,即不允许重复值。唯一约束是一种数据完整性措施,它可以保证数据的唯一性和一致性。

语法:

create table 表名 (
列名2 数据类型 unique,
...
);

在创建好的表中添加唯一约束:alter table 表名 add constraint 约束名 unique (列名1, 列名2, ...);

四、默认值约束

默认值约束是一种数据库约束,用于在插入数据时,如果未显式为列指定值,则自动使用指定的默认值,是一种数据完整性措施,它确保了在缺少显式值的情况下,表中的列始终具有默认值。

语法:

Create table 表名 (
列名1 数据类型 default 默认值,
列名2 数据类型 default 默认值,
...
);

在创建好的表中添加默认值约束:alter table 表名 alter colum 列名 set default 默认值;

五、外键约束

外键约束是一种数据库约束,用于在相关表之间建立关联关系,保持数据的完整性和一致性。

外键约束可以确保在一个表中的列值必须在另一个表中存在。

语法:

Create table 表名 (
列名1 数据类型,
列名2 数据类型,
...
foreign key (列名) references 关联表名(关联列名)
);

例:作者和文章的关系是:1:N, 外键存在多的一方,所以外键设在文章表, 所以先创建作者表。

创建作者表:

创建文章表,并设置外键:

在创建好的表中添加外键约束(约束名自己命名):

alter table 表名 add constraint 约束名 foreign key (列名) references 关联表名(关联列名);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 通过MySQL慢查询优化MySQL性能的方法讲解

    通过MySQL慢查询优化MySQL性能的方法讲解

    今天小编就为大家分享一篇关于通过MySQL慢查询优化MySQL性能的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • ubuntu下apt-get安装和彻底卸载mysql详解

    ubuntu下apt-get安装和彻底卸载mysql详解

    本文给大家分享ubuntu下apt-get安装和彻底卸载mysql的方法,文中提到了安装mysq命令查看mysql是否运行的命令写法,具体内容详情大家通过本文学习吧
    2017-08-08
  • windows版本下mysql的安装启动和基础配置图文教程详解

    windows版本下mysql的安装启动和基础配置图文教程详解

    本文通过图文并茂的形式给大家介绍了windows版本下mysql的安装启动和基础配置图文教程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • mysql主键,外键,非空,唯一,默认约束及创建表的方法

    mysql主键,外键,非空,唯一,默认约束及创建表的方法

    这篇文章主要介绍了mysql主键,外键,非空,唯一,默认约束及创建表的方法,在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位
    2022-07-07
  • mysql8新特性之binlog_expire_logs_seconds浅析

    mysql8新特性之binlog_expire_logs_seconds浅析

    MySQL8中新增了不少新特性,这些特性提高了数据库的安全性和性能,使数据库管理员能够更灵活地进行账户管理工作,下面这篇文章主要给大家介绍了关于mysql8新特性之binlog_expire_logs_seconds的相关资料,需要的朋友可以参考下
    2023-02-02
  • mysql视图之创建可更新视图的方法详解

    mysql视图之创建可更新视图的方法详解

    这篇文章主要介绍了mysql视图之创建可更新视图的方法,结合实例形式分析了mysql可更新视图的具体创建、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-12-12
  • mysql查询字段类型为json时的两种查询方式

    mysql查询字段类型为json时的两种查询方式

    这篇文章主要介绍了mysql查询字段类型为json时的两种查询方式,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • MySQL Group by的优化详解

    MySQL Group by的优化详解

    这篇文章主要介绍了MySQL Group by 优化的相关资料,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-03-03
  • mysql用户创建与授权的简单实例

    mysql用户创建与授权的简单实例

    MySQL等主流数据库的最高权限一般是root用户,有时我们需要提供数据库的账号和密码以使用某些服务,下面这篇文章主要给大家介绍了关于mysql用户创建与授权的相关资料,需要的朋友可以参考下
    2022-03-03
  • MySQL回表产生的原因和场景

    MySQL回表产生的原因和场景

    在MySQL数据库中,回表(Look Up)指的是在进行索引查询时,首先通过索引定位到对应页,然后再根据行的物理地址找到所需的数据行,本文给大家介绍了MySQL回表是什么以及哪些情况下会回表,需要的朋友可以参考下
    2023-11-11

最新评论