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之临时表,感兴趣的可以了解一下
    2023-08-08
  • MySQL Binlog日志的记录模式写入机制文件操作详解

    MySQL Binlog日志的记录模式写入机制文件操作详解

    这篇文章主要介绍了MySQL Binlog日志的记录模式写入机制文件操作详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • MySQL如何为表和字段取别名详解

    MySQL如何为表和字段取别名详解

    在SQL语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是SQL标准语法,几乎所有的数据库系统都支持,下面这篇文章主要给大家介绍了关于MySQL如何为表和字段取别名的相关资料,需要的朋友可以参考下
    2022-11-11
  • Windows服务器MySQL中文乱码的解决方法

    Windows服务器MySQL中文乱码的解决方法

    这篇文章主要介绍了MySQL中文乱码的一些解决方案,本文同时分解了MySQL中文乱码的原因分析,需要的朋友可以参考下
    2015-01-01
  • MySQL数据库连接数查询、配置简单示例代码

    MySQL数据库连接数查询、配置简单示例代码

    这篇文章主要介绍了MySQL数据库连接数查询、配置的相关资料,连接数与性能密切相关,需要根据实际需求合理配置,通过设置最大连接数、使用连接池和优化应用程序连接逻辑,可以提高数据库的稳定性和性能,需要的朋友可以参考下
    2025-03-03
  • mysql+shardingSphere的分库分表实现示例

    mysql+shardingSphere的分库分表实现示例

    分库分表是一种场景解决方案,它的出现是为了解决一些场景问题的,本文主要介绍了mysql+shardingSphere的分库分表实现示例,具有一定的参考价值,感兴趣的可以
    2024-04-04
  • MySQL 千万级数据量如何快速分页

    MySQL 千万级数据量如何快速分页

    这篇文章主要介绍了MySQL 千万级数据量如何快速分页,帮助大家提高MySQL数据库的性能,感兴趣的朋友可以了解下
    2020-09-09
  • 为mysql数据库添加添加事务处理的方法

    为mysql数据库添加添加事务处理的方法

    开始首先说明一下,mysql数据库默认的数据库引擎是MyISAM,是不支持事务的,单数如果你添加了数据执行语句是不会出错的,单数不管用,即便是回滚事务,记录也是插入进去了,所有首先我们要做的第一步是更改数据库引擎
    2011-07-07
  • MYSQL查询去除小数位后多余的0几种方法

    MYSQL查询去除小数位后多余的0几种方法

    在编程的时候我们经常会遇到要去除掉小数点后面无效的零,这篇文章主要介绍了MYSQL查询去除小数位后多余的0的几种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10
  • MySQL事务处理与应用简析

    MySQL事务处理与应用简析

    事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。这篇文章主要介绍了MySQL事务处理,需要的朋友可以参考下
    2014-06-06

最新评论