关联有什么意义么?
表之间的关联是表示表之间的关系
比如
你有个用户分类表
在用户表中有个用户类型
这个时候在用户类型字段
你就可以存放用户分类的一个编号
【注意:在这里这个编号只要是唯一的就可以啊,见得一定得是自动编号的】
再打个比方说
一个员工表
记录员工的基本信息
一个工资表
记录员工的工资
这个时候在工资表中的员工信息部分完全可以只村一个员工编号【姓名可以重复
但是编号不会】
在每个表中的这个唯一的字段
称为“关键字”
当然也可以是几个字段的组合
比如员工有两个叫张**
一个男的一个女的
我们在数据库查询的时候完全可以用
姓名='张**'
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
这样的来查询到
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)