| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2139 人关注过本帖, 1 人收藏
标题:多表查询教程
只看楼主 加入收藏
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
结帖率:100%
收藏(1)
 问题点数:0 回复次数:2 
多表查询教程
工具:navicat 10.1.7
数据:网上随便找的
目的:教新手以及自己练习多表查询
步骤1:新建数据库demo
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

步骤2:导入基础数据
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

步骤3:任务部分
1.查询出部门编号为30的所有员工

2.所有销售员的姓名、编号和部门编号。

3.找出奖金高于工资的员工。

4.找出奖金高于工资60%的员工。

5.找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。

6.找出部门编号为10中所有经理,部门编号为20中所有销售员,
还有即不是经理又不是销售员但其工资大或等于20000的所有员工详细资料。

7.有奖金的工种。

8.无奖金或奖金低于1000的员工。

9.查询名字由三个字组成的员工。

10.查询2000年入职的员工。

11.查询所有员工详细信息,用编号升序排序

12.查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序

13.查询每个部门的平均工资

14.求出每个部门的雇员数量。

15.查询每种工作的最高工资、最低工资、人数

16.显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于50000,输出结果按月工资的合计升序排列
步骤4:navicat输入sql语句方式
图片附件: 游客没有浏览图片的权限,请 登录注册

输入完sql语句之后点击“运行”,得到查询结果
图片附件: 游客没有浏览图片的权限,请 登录注册

步骤5:答案部分
1.查询出部门编号为30的所有员工
SELECT * FROM emp WHERE deptno=30;

2.所有销售员的姓名、编号和部门编号。
SELECT e.ename,e.empno,e.deptno FROM emp e WHERE e.job=’销售员’;

3.找出奖金高于工资的员工。
SELECT * FROM emp WHERE COMM>sal;

4.找出奖金高于工资60%的员工。
SELECT * from emp where COMM>sal*0.6;

5.找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。
SELECT * FROM emp where (deptno=10 and job=’经理’) or (deptno=20 and job=’销售员’);

6.找出部门编号为10中所有经理,部门编号为20中所有销售员,
还有即不是经理又不是销售员但其工资大或等于20000的所有员工详细资料。
SELECT * FROM emp where (deptno=10 and job=’经理’) or (deptno=20 and job=’销售员’)
or (job NOT IN (‘销售员’,’经理’) AND sal>=20000);

7.有奖金的工种。
SELECT DISTINCT job FROM emp where COMM is not NULL ;

8.无奖金或奖金低于1000的员工。
SELECT * from emp WHERE COMM is NULL or

9.查询名字由三个字组成的员工。
select * from emp where ename LIKE ‘_‘;

10.查询2000年入职的员工。
select * from emp where hiredate LIKE ‘2000%’;

11.查询所有员工详细信息,用编号升序排序
SELECT * FROM emp ORDER BY empno ASC ;

12.查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序
select * from emp ORDER BY sal desc,hiredate asc;

13.查询每个部门的平均工资
select deptno,avg(sal) from emp GROUP BY deptno;

14.求出每个部门的雇员数量。
select deptno,count(1) from emp GROUP BY deptno;

15.查询每种工作的最高工资、最低工资、人数
SELECT job,max(sal),min(sal),count(1) from emp group by job;

16.显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于50000,输出结果按月工资的合计升序排列
select job,sum(sal) from emp where job<>’销售员’ GROUP BY job HAVING sum(sal)>50000 ORDER BY sum(sal) asc;
搜索更多相关主题的帖子: 编号 员工 工资 SELECT FROM 
2018-04-17 22:03
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
收藏
得分:0 
数据.zip (1.31 KB)
附上基础数据

假如人生没有梦想,和咸鱼有什么区别!
2018-04-17 22:04
tianchengtop
Rank: 2
等 级:论坛游民
帖 子:37
专家分:10
注 册:2017-9-22
收藏
得分:0 
威武,刚好要练习一下数据库

有梦想,我还有梦想,要提醒自己还有梦(ˇˍˇ) 想~
2018-04-19 17:48
快速回复:多表查询教程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016411 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved