数据库多表连接查询

一、多表查询
多表查询,又称表联合查询,即一条sql语句涉及到的表有多张,数据通过特定的连接进行联合显示。
1)笛卡尔积
在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y.
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
在数据库中,如果直接查询俩张表,那么其查询结果就会产生笛卡尔积
例如:

select *
		from s_emp,s_dept;

1)连接查询
为了在多表查询中避免笛卡尔积的产生,我们可以使用连接查询来解决这个问题。
连接查询分为:1.等值连接2.不等值连接3.外连接(左外连接,右外连接,全连接)4.自连接
a)等值连接
利用一张表中某列的值和另一张表中某列的值相等的关系,把俩张表连接起来。
例如:查询员工的名字、部门编号、部门名字

select last_name,dept_id,name
		from s_emp,s_dept
		where s_emp.dept_id=s_dept.id;
		为了表述的更加清楚,可以给每张表起别名
select se.last_name,se.dept_id,sd.id,sd.name 
		from s_emp se,s_dept sd
		where se.dept_id=sd.id;dep;

b)不等值连接: 通过范围确定
例如:查询出员工的名字、职位、工资、工资等级名称

SELECT  e.last_name, e.title, e.salray, s.gradeName
		FROM    s_emp e, salgrade s
		WHERE   e.salray BETWEEN s.losal AND s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值