欢迎投稿

今日深度:

从零学习数据库mysql--表的操作,

从零学习数据库mysql--表的操作,


数据库的完整性

什么是数据的完整性

保证用户输入的数据保存到数据库中是正确的。

如何添加数据完整性

在创建表时给表中添加约束

完整性分类


实体完整性

表中的一行(一条记录)代表一个实体(entity)

  1. 实体完整性的作用

标识每一行数据不重复。行级约束

  1. 约束类型

  1. 主键约束

特点:


添加主键约束的方式

CREATE TABLE 表名(字段名1 数据类型 primary key,字段2 数据类型);
CREATE TABLE 表名(字段1 数据类型, 字段2 数据类型,primary key(要设置主键的字段));
CREATE TABLE 表名(字段1 数据类型, 字段2 数据类型,primary key(主键1,主键2));

联合主键: 两个字段数据同时相同时,才违反联合主键约束。

1.先创建表

2.再去修改表,添加主键

ALTER TABLE student  ADD CONSTRAINT  PRIMARY  KEY (id);
  1. 唯一约束:

特点:


CREATE TABLE 表名(字段名1 数据类型 字段2 数据类型 UNIQUE);
  1. 自动增长列

特点:


CREATE TABLE 表名(字段名1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE);

域完整性

限制此单元格的数据正确,不对照此列的其它单元格比较
域代表当前单元格

域完整性约束:

CREATE TABLE 表名(字段名1 数据类型 PRIMARY KEY AUTO_INCREMENT ,字段2 数据类型 UNIQUE not null default '男');

​ 插入的时候,values当中的值直接给default

参照完整性

表之间关系


创建老师表
在这里插入图片描述
创建学生表
在这里插入图片描述
创建学生与老师关系表
在这里插入图片描述
关系图
在这里插入图片描述

添加外键
在这里插入图片描述
在这里插入图片描述

多表操作

合并结果集

合并结果集就是把两个select语句的查询结果合并到一起

  1. 合并结果集的两种方式

格式:
UNION:

SELECT * FROM 表1 UNION SELECT * FROM 表2;
SELECT * FROM 表1 UNION ALL SELECT * FROM 表2;

创建表:
在这里插入图片描述
UNION:
在这里插入图片描述
在这里插入图片描述
UNION ALL:
在这里插入图片描述
在这里插入图片描述

注意事项:被合并的两个结果:列数、列类型必须相同。

多表联查:

也可以叫跨表查询,需要关联多个表进行查询

  1. 什么是笛卡尔集

假设集合A={a,b},集合B={0,1,2},
则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。
可以扩展到多个集合的情况
同时查询两个表,出现的就是笛卡尔集结果

  1. 查询时给表起别名
    在这里插入图片描述
  2. 多表联查,如何保证数据正确
    逐行判断,相等的留下,不相等的全不要
    在这里插入图片描述

连接查询

1. 内连接

内连接
图示:
在这里插入图片描述
作用:查询两张表的共有部分
语句:

Select <select_list> from tableA A  Inner join  tableB B  on A.Key = B.Key

示例:

SELECT * from employee e  INNER JOIN department d on e.depart_id = d.id;

多表连接:
建表:
在这里插入图片描述
使用99连接法:
在这里插入图片描述
使用内联查询
在这里插入图片描述
在这里插入图片描述

2. 左连接

图示
在这里插入图片描述
作用: 把左边表的内容全部查出,右边表只查出满足条件的记录
语句:

Select <select_list> from tableA A Left Join  tableB B  on A.Key = B.Key

示例

SELECT * from employee e  LEFT JOIN department d on e.depart_id = d.id;		

在这里插入图片描述 在这里插入图片描述

3. 右连接

图示:
在这里插入图片描述
作用

把右边表的内容全部查出,左边表只查出满足条件的记录

语句

Select <select_list> from tableA A Right Join  tableB B  on A.Key = B.Key

示例

SELECT * from employee e  RIGHT JOIN department d on e.depart_id = d.id;

在这里插入图片描述
在这里插入图片描述

www.htsjk.Com true http://www.htsjk.com/Mysql/42742.html NewsArticle 从零学习数据库mysql--表的操作, 数据库的完整性 什么是数据的完整性 保证用户输入的数据保存到数据库中是正确的。 如何添加数据完整性 在创建表时给表中添加约束 完整性分类 实...
相关文章
    暂无相关文章
评论暂时关闭