Mysql数据库之约束条件详解
一、主键约束
主键约束(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开启慢查询日志log-slow-queries的方法
MySQL中提供了一个慢查询的日志记录功能,可以把查询SQL语句时间大于多少秒的语句写入慢查询日志,日常维护中可以通过慢查询日志的记录信息快速准确地判断问题所在2016-05-05
一文搞定MySQL binlog/redolog/undolog区别
这篇文章主要介绍了一文搞定MySQL binlog/redolog/undolog区别,作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志,需要的朋友可以参考下2023-04-04
MySQL中distinct和count(*)的使用方法比较
这篇文章主要针对MySQL中distinct和count(*)的使用方法比较,对两者之间的使用方法、效率进行了详细分析,感兴趣的小伙伴们可以参考一下2015-11-11


最新评论