首页 / MYSQL / MYSQL笔记 之 集合和约束
MYSQL笔记 之 集合和约束
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL笔记 之 集合和约束,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2977字,纯文字阅读大概需要5分钟。
内容图文
一、集合
为了合并多个select语句的结果,可以使用集合操作符,实现集合的并,交,差
结合操作符:union union all
用来获取两个或两个以上结果集的并集,
union操作符会自动去掉合并后的重复记录
union all 返回两个结果集中的所有行,包括重复的行。
多条SQL集合操作的SELECT语句的列个数和数据类型必须匹配
例:
select * from 表名
union select * from 表名;
二、约束
约束(constraint
)的全称是约束条件,也称做完整性约束条件
约束是在数据表上强制执行的一些数据校验规则,可以保证表中数据的完整性,保证数据间的商业逻辑
一张表中可以有多个唯一约束
约束的类型
- 非空约束 (not null),简称(
NN
) - 唯一性约束(Unique) ,简称(
UK
) - 主键约束(Primary Key), 简称
PK
- 外键约束(Foreign Key), 简称
FK
非空约束 not null
非空约束用于确保字段值不为空,当某个字段被设置了非空约束条件,这个字段中必须存在有效值
当执行insert操作时,必须提供这个列的数据,当执行update操作时,不能给这个列的值设置为NULL
唯一性约束 unique
唯一性(unique)约束条件用于保证字段或者字段的组合不出现重复值
当给表的某个列定义了唯一约束条件,该列的值不允许重复,但允许是NULL值
唯一性约束条件可以在建表同时建立,也可以在建表以后建立
单个唯一性约束
create table employees (
eid int unique
);
组合唯一性约束
确保多个字段组合后唯一,需要组合添加约束
- 创建表时添加
create table employees ( eid int unique, name varchar(2), constraint employess_name_uk unique(name) )
- 建表后添加
alter table 表名 add constraint 约束名称 unique(字段1,字段2);
- 删除唯一约束
alter table t_user drop index 约束;
主键约束 primary key
主键的意义
主键(primary key)约束条件从功能上看相当于非空约束(not null) 和 唯一约束(unique)的组合
用来唯一确定一行数据,一个表上只允许建立一个主键,而其它约束条件则没有明确的个数限制
主键选取的原则
主键应是对系统无意义的数据,永远也不要更新主键,让主键除了唯一标识一行之外,再无其他的用途,主键应自动生成,不要人为干预,以避免使它带有除了唯一标识一行以外的意义
代码
-
创建时增加
create table 表名( id int primary key auto_increment, name varchar(20) )
-
创建后增加
alter table 表名 add constraint 约束名称 primary key (字段1,字段2);
-
删除
alter table 表名 drop primary key;
auto_increment 表示主键自动增长
- 创建时增加
create table 表名( id int primary key auto_increment, name varchar(20) ) auto_increment = 10; -- 表后面AUTO_INCREMENT表示从多少开始自增
- 创建后增加
alter table stu1 auto_increment = 2;//修改自增长
外键约束 Foreign Key 避免使用
外键约束条件定义在两个表的字段上,用于保证相关两个字段的关系,
外键约束下,删除上层数据需先删除下层数据
- 外键约束对性能的降低
如果在一个频繁DML操作的表上建立外键,每次DML操作都将导致数据库自动对外键所关联的主表做检查,产生开销。
如果已在程序中控制逻辑,这些判断将增加额外的负担,可以省去。外键确定了主从表的先后产生关系,有时会影响业务逻辑。
- 关联不一定需要外键约束
保证数据完整性可由程序控制
简化开发,维护数据时不用考虑外键约束
大量数据DML操作时不需要考虑外键耗费时间
代码
-
创建
create table 学生表( id int, cls_id int, foreign key(cls_id) references cls(id) -- 将cls_id 列关联到 班级表的id列 )
-
外部添加外键约束
alter table 学生表 add constraint 约束名称 foreign key(学生表字段) REFERENCES 班级表(班级表ID)
-
删除外键约束
alter table 表名 drop foreign key 约束名;
内容总结
以上是互联网集市为您收集整理的MYSQL笔记 之 集合和约束全部内容,希望文章能够帮你解决MYSQL笔记 之 集合和约束所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。