mysql数据库实验实训5,数据查询yggl数据库查询(详细)

mysql数据库实验实训5,数据查询yggl数据库查询(详细),第1张

数据库实验yggl数据库,实训5(详细版) 1.SELECT语句的基本使用:

1-1:查询employees 表的员工部门号和性别,要求消除重复行

select distinct ‘员工部门号’,‘性别’ from employees;

1-2: 计算salary表每个雇员的实际收入(实际收入=收入-支出)。

select (收入-支出) as ‘实际收入’ from salary;

1-3: 查询employees表中员工的姓名和性别,要求sex值为1时,显示为‘男’,为0时显示为‘女’。

mysql> Select 姓名,
-> case
-> when 性别=1 then “男”
-> when 性别=0 then “女”
-> end as 性别
-> from employees;

1-4:查询每个雇员的地址和电话号码,显示列标题为adress,telephone

mysql> select 地址 as ‘adress’, 电话号码 as ‘telephone’ from employees;

1-5: 计算salary表中员工月收入的平均数

mysql> select avg(收入) as 月平均收入 from salary;

1-6: 计算所有员工的总支出

mysql> select sum(支出) as 总支出 from salary;

1-7: 显示女雇员的地址和电话号码

select 姓名,地址,电话号码 from employees where 性别=0;

1-8: 计算员工总数

mysql> select count(*) from employees;

1-9: 显示员工的最高收入和最低收入的员工编号

mysql> Select max(收入),min(收入) from salary;

2.条件查询:

2-1: 显示月收入高于2000元员工的员工号。

mysql> select 员工编号 from salary where 收入>2000;

2-2: 查询1970年以后的员工的姓名和地址。

mysql> select 姓名,地址 from employees where 出生日期>“1970-1-1”;

2-3: 显示工作年限三年以上(包含3年)、学历在本科以上(包含本科)的男性员工的信息。

mysql> select * from employees where 工作年限>=3 and (学历=“本科” or 学历=“硕士”) and 性别=1;

2-4: 查找员工中倒数第二个数字为0的员工的姓名、地址和学历。

mysql> select 姓名,地址,学历 from employees where 员工编号 like “%0_”;

2-5: 查询月收入在2000-3000元的员工。

select * from salary where 收入>=2000 and 收入<=3000;

3.多表查询:

3-1: 查询王林的基本情况和所工作的部门名称

mysql> select * from employees ,departments
-> where employees.员工部门号=departments.部门编号 and 姓名=‘王林’;

3-2: 查询财务部、研发部、市场部的员工信息。

mysql> select * from employees ,departments
-> where employees.员工部门号=departments.部门编号
-> and (部门名称=“财务部” or 部门名称=“市场部” or 部门名称=“研发部”);

3-3: 查询每个雇员的基本情况和薪水情况。

mysql> Select * from employees join salary using(员工编号);

3-4: 查询研发部在1970年以前的员工姓名和薪水情况。

mysql> select e.姓名,s.收入,s.支出
-> from employees e,salary s,departments d
-> where e.员工部门号=d.部门编号 and e.员工编号=s.员工编号 and d.部门名称=“研发部”
-> and e.出生日期 <‘1970-01-01’;

3-5: 查询employees表中员工的姓名、住址和收入水平,要求2000元以下显示为‘低收入’,2000-3000显示为‘中等收入’,3000元以上显示为‘高收入’。

mysql> select 姓名,地址,
-> case
-> when 收入<2000 then “低收入”
-> when 收入>3000 then “高收入”
-> when 收入>2000 and 收入<3000 then “中等收入”
-> end as “收入等级”
-> from employees,salary where employees.员工编号=salary.员工编号;

4.分类汇总与排序:

4-1: 按部门列出该部门的员工人数。

mysql> select d.部门名称,count(e.姓名) as “员工总人数”
-> from employees e,departments d
-> where e.员工部门号=d.部门编号 group by d.部门名称;

4-2: 分别统计男性员工和女性员工人数。

mysql> select count(*) as “人数”,
-> case
-> when 性别=1 then “男”
-> when 性别=0 then “女”
-> end as 性别
-> from employees group by 性别;

4-3: 查找雇员数超过2人的部门名称和员工数量。

mysql> select d.部门名称, count(e.姓名) as “员工总人数” from employees e,departments d
-> where e.员工部门号=d.部门编号
-> group by d.部门名称 having count(*)>2;

4-4 按员工学历分组统计各种学历人数。

mysql> select 学历,count(*) as人数
-> from employees group by 学历;

4-5: 将员工信息按出生日期从大到小排序。

mysql> select * from employees order by 出生日期;

4-6: 将员工薪水按收入多少从小到大排序

mysql> select * from salary order by 收入;

4-7: 按员工的工作年限分组,统计各个工作年限的人数,并按人数从小到大排序

mysql> select 工作年限 ,count(*) as ‘人数’
-> from employees group by 工作年限
-> order by 人数;

4-7: 按员工的工作年限分组,统计各个工作年限的人数,并按人数从小到大排序

mysql> select 工作年限 ,count(*) as ‘人数’
-> from employees group by 工作年限
-> order by 人数;

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存