数据库多表关联问题

数据库多表关联问题,第1张

你用用户表和管理员表

关联有什么意义么?

表之间的关联是表示表之间的关系

比如

你有个用户分类表

在用户表中有个用户类型

这个时候在用户类型字段

你就可以存放用户分类的一个编号

【注意:在这里这个编号只要是唯一的就可以啊,见得一定得是自动编号的】

再打个比方说

一个员工

记录员工的基本信息

一个工资表

记录员工的工资

这个时候在工资表中的员工信息部分完全可以只村一个员工编号【姓名可以重复

但是编号不会】

在每个表中的这个唯一的字段

称为“关键字”

当然也可以是几个字段的组合

比如员工有两个叫张**

一个男的一个女的

我们在数据库查询的时候完全可以用

姓名='张**'

and

性别='男'

这样来查询到那个男的张**

当然就像是上面说的

这个员工还有个唯一的编号

这个时候可以用

编号=12345

这样的来查询到

关联查询是日常工作中常用的查询方式,关联查询sql编写的思路一般如下:1、先确定所连接的表,2、再确定所要查询的字段,3、确定连接条件以及连接方式(表连接分类: 内连接、外连接、交叉连接、自连接)

1、内连接:[inner] join on

分类:等值连接、非等值连接

(1)等值连接: 指使用等号"=“比较两个表的连接列的值,相当于两表执行笛卡尔后,取两表连结列值相等的记录(自然连接是一种特殊的等值连接)(2)非等值连接:指使用”>“或”<"比较两个表的连接列的值,相当于两表执行笛卡尔后,取一个表大于或小于另一个表的连结列值的记录

2、外连接

分类:左外连接、右外连接、全外连接

(1)左外连接:left outer join

连接效果:查询结果包含左、右两个表需要查询的全部行,左侧的表中的全部数据都会被显示出来,但是右侧表的数据,只有和左侧匹配上的数据才会被查询出来!否则显示为null(2)右外连接:right outer join

连接效果:查询结果包含左、右两个表需要查询的全部行,右侧的表中的全部数据都会被显示出来,但是左侧表的数据,只有和右侧匹配上的数据才会被查询出来!否则显示为null(3)全外连接:full/all outer join,查询结果包含左、右两个表需要查询的全部行,对应字段没有值显示null

3、交叉连接

左表中的每一行与右表中的所有行组合,也叫表与表之间做笛卡尔积查询

4、自连接

当前表与自身的连接查询,关键点在于虚拟化出一张表,即给自身的表定义一个别名

你用用户表和管理员表

关联有什么意义么?

表之间的关联是表示表之间的关系

比如

你有个用户分类表

在用户表中有个用户类型

这个时候在用户类型字段

你就可以存放用户分类的一个编号

【注意:在这里这个编号只要是唯一的就可以啊,见得一定得是自动编号的】

再打个比方说

一个员工表

记录员工的基本信息

一个工资表

记录员工的工资

这个时候在工资表中的员工信息部分完全可以只村一个员工编号【姓名可以重复

但是编号不会】

在每个表中的这个唯一的字段

称为“关键字”

当然也可以是几个字段的组合

比如员工有两个叫张**

一个男的一个女的

我们在数据库查询的时候完全可以用

姓名='张**'

and

性别='男'

这样来查询到那个男的张**

当然就像是上面说的

这个员工还有个唯一的编号

这个时候可以用

编号=12345

这样的来查询到


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9968110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存