内容正文:
MySQL数据库应用开发
单元3.3 完整性约束控制
任务3.3 完整性约束控制
MySQL约束控制
知识点小结
本节实验
任务3.3 完整性约束控制
能力目标
1.掌握各种字段约束的创建(重点、难点-外键约束);
2.掌握约束的删除。
思政目标
1.培养踏实严谨的工作作风;
2.锻炼团结协作的工作能力。
字段的约束
设计数据库时,可以对数据库表中的一些字段设置约束条件,由数据库管理系统(例如MySQL)自动检测输入的数据是否满足约束条件,不满足约束条件的数据,数据库管理系统拒绝录入。
MySQL支持的常用约束条件有7种:主键(primary key)约束、外键(foreign key)约束、非空(not NULL)约束、唯一性( unique )约束、默认值( default)约束、自增约束(auto_increment)以及检查( check)约束。
其中,检查( check)约束需要借助触发器或者MySQL复合数据类型实现。
主键(primary key)约束
设计数据库时,建议为所有的数据库表都定义一个主键,用于保证数据库表中记录的唯一性。一张表中只允许设置一个主键,当然这个主键可以是一个字段,也可以是一个字段组(不建议使用复合主键)。
在录入数据的过程中,必须在所有主键字段中输入数据,即任何主键字段的值不允许为NULL。
语法规则: PRIMARY KEY(字段名)
5
主键(primary key)约束(续)
(1)如果一个表的主键是单个字段ID(续)
如果用列级完整性约束,就是直接在该字段的数据类型或者其他约束条件后加上“PRIMARY KEY”关键字,即可将该字段设置为主键约束
语法规则: 字段名 数据类型[其他约束条件] PRIMARY KEY
(2)如果一个表的主键是多个字段的组合(例如,字段名1与字段名2共同组成主键),定义完所有的字段后,使用下面的语法规则设置复合主键。
语法规则: PRIMARY KEY (字段名1,字段名2)
修改主键:
利用ALTER TABLE。例如:
alter table sc drop primary key,add primary key(sno,cno);
6
主键(primary key)约束创建示例
创建单字段主键:
CREATE TABLE IF NOT EXISTS VIPuser1(
id INT PRIMARY KEY,
username VARCHAR(20)
);
创建多字段主键:
CREATE TABLE IF NOT EXISTS VIPuser2(
id INT,
username VARCHAR(20),
card CHAR(18),
PRIMARY KEY(id,card)
);
省略PRIMARY也可以创建主键:
CREATE TABLE IF NOT EXISTS user4(
id INT,
username VARCHAR(20) KEY
);
测试与演示主健
创建单字段主键
CREATE TABLE IF NOT EXISTS VIPuser1(
id INT PRIMARY KEY,
username VARCHAR(20)
);
查看表
DESC VIPuser1;
查看创建表的表的定义
SHOW CREATE TABLE VIPuser1;
插入记录,只要主键的值不重复就不会报错
INSERT VIPuser1 VALUES(1,'cau');
INSERT VIPuser1 VALUES(13,'CAUE');
查询输入记录
SELECT * FROM VIPuser1;
再插入一条记录,主键重复就会报错
INSERT VIPuser1 VALUES(13,'CAUE');
查询第一条记录
SELECT * FROM VIPuser1 WHERE id=1;
创建多字段主键
CREATE TABLE IF NOT EXISTS VIPuser2(
id INT,
username VARCHAR(20),
card CHAR(18),
PRIMARY KEY(id,card)
);
查看表结构
DESC VIPuser2;
插入记录
INSERT VIPuser2 VALUES(1,'cau','111');
SELECT * FROM VIPuser2;
插入1—122
INSERT VIPuser2 VALUES(1,'caue','112');
SELECT * FROM VIPuser2;
再插入1—112就会报错