文章目录
- 数据表的约束
- 主键约束
- 非空约束
- 默认值约束DEFAULT
- 唯一性约束 UNIQUE
- 外键约束 FOREIGN KEY
- 创建外键
- 数据的一致性了解
- 删除外键
- 外键约束需要注意的细节
数据表的约束
为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。常见约束如下:
以上五种约束条件针对表中字段进行限制从而保证数据表中数据的正确性和唯一性。换句话说,表的约束实际上就是表中数据的限制条件。
下面对这五种约束进行详细介绍:
主键约束
主键约束(primary key):每一行记录的唯一标识。
被标识为主键的数据在表中是唯一的且不为空。
在创建数据表时设置主键约束,既可以为表中的一个字段设置主键,也可以为表中多个字段设置联合主键。
语法:
字段名 数据类型 primary key;
设置主键约束的第一种方法
create table student(
id int primary key,//定义数据类型时设置
name varchar(20)
);
设置主键约束的第二种方法
create table student(
id int,
name varchar(20),
primary key(id)
);
非空约束
非空约束:即 not null指的是字段的值不能为空。
语法:
字段名 数据类型 not null;
举例:
create table student(
id int,
name varchar(20) not null
);
默认值约束DEFAULT
默认值约束:即 default用于给数据表中的字段指定默认值,即当在表中插入一条新记录时若未给该字段赋值,那么,数据库系统会自动为这个字段插人默认值。
语法:
字段名 数据类型 default 默认值;
举例:
create table student03(
id int,
name varchar(20),
sex varchar(10) default '男'
);
唯一性约束 UNIQUE
唯一性约束:即unique用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。
语法:
字段名 数据类型 unique;
举例:
create table student04(
id int,
name varchar(20) unique
);
外键约束 FOREIGN KEY
外键约束:即foreign key常用于多张表之间的约束。
创建外键
语法:
-- 在创建数据表时设置外键约束语法如下:
constraint 外键名 foreign key (从表外键字段) references 主表 (主键字段)
-- 将创建数据表创好后设置外键约束语法如下:
alter table 从表名 add constraint 外键名 foreign key (从表外键字段) references 主表 (主键字段);
举例:
-- 创建学生表
create table student(
id int primary key,
name varchar(20)
);
-- 创建班级表
create table class(
classid int primary key,
studentid int
);
-- 添加外键约束 因为班级表的studentid是由学生表的id决定的,因此学生表也被称为主表,班级表被称为从表。
alter table class add constraint fk_class_studentid foreign key(studentid) references student(id);
数据的一致性了解
建立外键是为了保证数据的完整性和统一性。
==如果主表中的数据被删除,那么从表中的数据也应该被删除,==否则数据库中会存在很多无意义的垃圾数据。
删除外键
语法:
alter table 从表名 droo foreign key 外键名;
举例:
删除上述设置的外键约束
alter table class drop foreign key fk_class_studentid;
外键约束需要注意的细节
- 从表里的外键通常为主表的主键
- 从表的外键的数据类型必需与主表的数据类型一致
- 主表发生任何变化时应注意与从表的数据一致性的问题
注:MySQL命令都要大写,本文为方便都是小写。
其他MySQL知识请参照:
MySQL(一)——SQL简述,数据库的三大范式
MySQL(二)——数据库的数据类型MySQL
(三)——数据库、数据表的基本操作(增删查改)、子查询、分组查询、多表查询等