目录@萌狼蓝天
- 通过对多个表中的数据同时进行查询获取结果
- 语法一
- 语法二
- 作业
- 1、查看YGGL数据库中Employees员工信息表、Departments部门信息表、Salary员工薪水情况表的数据信息。(确保数据和教材第102-103页表5-10员工信息表、表5-11员工薪水情况表、表5-12部门信息表中数据一致。)
- 2、完成教材第104页以下操作:
- (1)查询“王林”的`基本情况`和所工作的`部门名称`。
- (2)查询`每个雇员`的`基本情况`和`薪水情况`。
- (3)查询`“财务部”、“研发部”、“市场部”`的员工信息。
- (4)查询研发部在1970年以前出生的`员工姓名`和`薪水情况`。
- (5)查询员工的`姓名`、`地址`和`收入水平`,要求2000元以下显示为“`低收入`”,2000元-3000元显示为“`中等收入`”,3000元以上时显示为“`高收入`”。
通过对多个表中的数据同时进行查询获取结果
语法一
Select 列名 From 表1 Join 表2 On
[Join 表3 on 表3.列名=表2.列名]
[Where 条件表达式];
例题:查询选修了C1课程的学生姓名
Select 姓名 from SC Join S on SC.学号=S.学号
Where 课程号='C1';
注:若SC和S表中均有属性“姓名”,则需指定表名
格式: Select sc.姓名
或: Select s.姓名
语法二
Select 列名
From 表1,表2,表3
where 表1.列名=表2.列名 and 表2.列名=表3.列名
例:查询选修课成绩为80分的学生姓名和所在系。
Select 姓名,所在系
From SC,S
Where SC.学号=S.学号 and 成绩=80
作业
1、查看YGGL数据库中Employees员工信息表、Departments部门信息表、Salary员工薪水情况表的数据信息。(确保数据和教材第102-103页表5-10员工信息表、表5-11员工薪水情况表、表5-12部门信息表中数据一致。)
Use YGGL
select*from Employees;
select*from 部门信息表;
select*from 员工薪水情况表;
2、完成教材第104页以下操作:
(1)查询“王林”的基本情况
和所工作的部门名称
。
select*from Employees Join 部门信息表
on Employees.员工部门号=部门信息表.部门编号 where 姓名='王林';
select*from Employees,部门信息表 where Employees.员工部门号=部门信息表.部门编号 and 姓名='王林';
(2)查询每个雇员
的基本情况
和薪水情况
。
select*from Employees join 员工薪水情况表 on Employees.员工编号=员工薪水情况表.员工编号;
select*from Employees,员工薪水情况表 where 员工薪水情况表.员工编号=Employees.员工编号;
(3)查询“财务部”、“研发部”、“市场部”
的员工信息。
select*from Employees Join 部门信息表
on Employees.员工部门号=部门信息表.部门编号 where 部门名称='财务部' or 部门名称='研发部' or 部门名称='市场部';
select*from Employees,部门信息表 where Employees.员工部门号=部门信息表.部门编号 and (部门名称='财务部' or 部门名称='研发部' or 部门名称='市场部');
(4)查询研发部在1970年以前出生的员工姓名
和薪水情况
。
select 姓名,收入,支出 from Employees
join 员工薪水情况表 on Employees.员工编号=员工薪水情况表.员工编号
join 部门信息表 on Employees.员工部门号=部门信息表.部门编号
where 出生日期<'1970-1-1' and 部门名称='研发部';
select 姓名,员工薪水情况表.*
from Employees,员工薪水情况表 ,部门信息表
where 员工薪水情况表.员工编号=Employees.员工编号
and Employees.员工部门号=部门信息表.部门编号
and 出生日期<'1970-1-1' and 部门名称='研发部';
(5)查询员工的姓名
、地址
和收入水平
,要求2000元以下显示为“低收入
”,2000元-3000元显示为“中等收入
”,3000元以上时显示为“高收入
”。
select 姓名,地址,收入,
case
when 收入 <2000 then '低收入'
when 收入 >=2000 and 收入 <=3000 then '中等收入'
when 收入 >3000 then'高收入'
end as '收入水平'
from Employees join 员工薪水情况表 on Employees.员工编号=员工薪水情况表.员工编号;
select 姓名,地址,收入,
case
when 收入 <2000 then '低收入'
when 收入 >=2000 and 收入 <=3000 then '中等收入'
when 收入 >3000 then'高收入'
end as '收入水平'
from Employees , 员工薪水情况表 where Employees.员工编号=员工薪水情况表.员工编号;