T-SQL查询语句 第二部分 (多表查询)

T-SQL查询语句大总结

防伪码:有志者事竟成,破釜沉舟,百二秦关终属楚

案例六:表如下图所示

 

wKioL1e50LKzsUzzAAALPc-dNCw164.png-wh_50

wKioL1e50MvRSodrAAAHHKs83lc791.png-wh_50

wKiom1e50OfCehtLAAAOgDV-gx0905.png-wh_50

wKiom1e50QrR_CTtAAAItgYZSsQ010.png-wh_50

wKiom1e50SWAK_5nAAAJnkAzris823.png-wh_50

wKioL1e50TaAH5euAAAH7vqljTY586.png-wh_50

wKioL1e50UyhJMbpAAAJg6YYMZI059.png-wh_50

wKiom1e50WDSL36EAAAPrJlKglI220.png-wh_50

wKiom1e50XTDZdxOAAAM66RVuT4111.png-wh_50

wKioL1e50aLSSq2-AAAF16gUq7E369.png-wh_50

wKioL1e50bvCzCl4AAAJH5eNKL4316.png-wh_50

在数据库中显示为:

wKioL1e6W97Tlo1sAABIdQMloYM404.jpg-wh_50

实验需求:

1、两个表查询

select 学生表.姓名,学生表1.电话,学生表1.家庭住址

from 学生表,学生表1

where 学生表.学生id=学生表1.学生id

wKiom1e6VHHwF_nVAAB8leqlM8I331.jpg-wh_50

 

2、三个表的查询

select 学生表.姓名,课程表.课程名,成绩表.分数

from 学生表,课程表,成绩表

where 学生表.学生id=成绩表.学生id AND 成绩表.课程ID=课程表.课程ID

wKioL1e6VcbCEGaPAAB65ir4MEc542.jpg-wh_50

 

3、合并两个结果集

SELECT 姓名,学号,班级,国籍

FROM 二班

UNION

select 姓+' '+名,学号,班级,国籍

from 一班

order by 班级 desc,学号 asc

wKiom1e6WMjwUs77AACElCI8RE8841.jpg-wh_50

 

4、内联接(查找参加考试的学生的姓名和CNT成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S INNER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

wKiom1e6XEOSWeY2AABcI8bdnos677.png-wh_50

 

5、左外连接(查找本班学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S LEFT OUTER  JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

wKioL1e6XGKTMvyHAABh1aq93jA776.png-wh_50

 

6、右外连接(查找参加本次考试的学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S RIGHT OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

 wKioL1e6XIiTU_k0AABaP_CIH4Q051.png-wh_50

7、完全连接(查找所有学生的考试情况)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S FULL OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

 wKiom1e6XJuyLlA4AABbktKNBGM153.png-wh_50

8、自连接(查找每个员工的上司姓名)

SELECT Y.员工姓名,s.员工姓名 AS 上司姓名

from 员工信息表 as y inner join 员工信息表 as s

on y.上司ID=S.员工ID

wKioL1e6XOThh_jzAABaXATLk_E756.png-wh_50


 

9、子查询(查找每个季度的生产数量,百分比)

select 季度,sum(生产数量) AS 每个季度的生产数量,

str((sum(生产数量)/(select sum(生产数量) from 生产表))*100)+'%' AS 百分比

from 生产表

group by 季度

order by 季度

 wKiom1e6XPmjaJfbAABj5DyiSsQ258.png-wh_50

10、在where子句中使用SELECT ,查找课程ID=1并且成绩〉80的学生

select 学生表.姓名

from 学生表

where 80<(select 分数 from 成绩表

where 学生表.学生ID=成绩表.学生ID AND 成绩表.课程ID=1)

wKioL1e6XRKhQIHFAABW7Fh1XWo298.png-wh_50

 

11、 交叉连接

SELECT T.教师姓名,c.课程名

from 教员基本信息表 AS t cross join 课程表 AS C

wKiom1e6XSmjbilpAABT6_hE_wk618.png-wh_50





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值