基本SQL查询语句
使用Emp表和Dept表完成下列练习
Emp员工表
empno |
ename |
job |
Mgr |
Hiredate |
Sal |
Comm |
Deptno |
员工号 |
员工姓名 |
工作 |
上级编号 |
受雇日期 |
薪金 |
佣金 |
部门编号 |
Dept表
Deptno |
Dname |
Loc |
部门编号 |
部门名称 |
地点 |
1.列出至少有一个员工的所有部门。
2.列出薪金比“SMITH”多的所有员工。
3.列出所有员工的姓名及其直接上级的姓名。
4.列出受雇日期早于其直接上级的所有员工。
5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
6.列出所有“CLERK”(办事员)的姓名及其部门名称。
7.列出最低薪金大于1500的各种工作。
8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
9.列出薪金高于公司平均薪金的所有员工。
10.列出与“SCOTT”从事相同工作的所有员工。
11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
14.列出所有员工的姓名、部门名称和工资。
15.列出从事同一种工作但属于不同部门的员工的一种组合。
16.列出所有部门的详细信息和部门人数。
17.列出各种工作的最低工资。
18.列出各个部门的MANAGER(经理)的最低薪金。
19.列出所有员工的年工资,按年薪从低到高排序。
1.
select distinct dname
from dept
where deptno in
(select distinct deptno
from emp);
--要查部门编号如果存在于emp 表中,说明这个部门有员工。
2.
select ename,job,mgr,hiredate,sal
from emp
where sal>
(select sal
from emp
where ename='SMITH');
3.
select e.ename, e.mgr , w.ename
from emp e, emp w
where e.mgr=w.empno;
4.
select e.ename, e.mgr , e.hiredate,w.ename,w.hiredate
from emp e, emp w
where e.mgr=w.empno
and e.hiredate< w.hiredate;
5.
select e.ename,e.hiredate, d.dname,d.deptno
from emp e, dept d
where e.deptno (+)=d.deptno;
--本例子使用的是外连接, 也可以用右连接。
select e.ename,e.hiredate, d.dname,d.deptno
from emp e right join dept d
on e.deptno=d.deptno;
6.
select e.ename,e.hiredate,e.job, d.dname,d.deptno
from emp e, dept d
where e.deptno =d.deptno
and e.job=upper('clerk');
7.
select job, min(sal)
from emp
group by job
having min(sal)>1500;
8.
select e.ename,d.dname
from emp e,dept d
where e.deptno=d.deptno
and d.dname=upper('sales');
--或者:
select ename
from emp
where deptno =
(select deptno
from dept
where dname=upper('SALES'));
9.
select ename, job, sal
from emp
where sal>
(select avg(sal)
from emp );
10.
select ename, job
from emp
where job =
(select job
from emp
where ename=upper('scott'));
11.
select ename, sal,job
from emp
where sal in
(select sal
from emp
where deptno=30);
12.
select ename, sal,job
from emp
where sal >all
(select sal
from emp
where deptno=30);
--或者
select ename ,sal
from emp
where sal>
(select max(sal)
from emp
where deptno=30);
13.
select d.deptno,d.dname, count(e.ename), avg(e.sal), avg(months_between(sysdate,e.hiredate))
from emp e, dept d
where e.deptno(+)= d.deptno
group by d.deptno,dname;
--或者下面的方法,这种方法更好理解,把需要汇总的生成一个视图e。
select e.*,d.dname ,
from (select deptno, count(ename) ,avg(sal),avg(months_between(sysdate,hiredate))
from emp
group by deptno) e, dept d
where e.deptno =d.deptno;
14.
select d.dname, e.ename, sal+nvl(comm,0)
from emp e, dept d
where d.deptno=e.deptno;
15.
select e.ename,e.job, e.deptno ,d.job, d.deptno
from emp e, emp d
where e.job=d.job and e.deptno<>d.deptno;
16.
select count(e.ename),d.dname
from emp e, dept d
where e.deptno(+)= d.deptno
group by e.deptno,d.dname;
--或者写成
select d.deptno,e.*,d.dname
from (select deptno,count(ename)
from emp
group by deptno) e,dept d
where e.deptno(+)= d.deptno;
17.
select job,min(sal+nvl(comm,0))from emp group by job;
18.
select deptno,min(sal) from emp where job=upper('manager')
group by deptno ;
19.
select ename , (sal+nvl(comm,0))*12 yearsal
from emp
order by yearsal ;
基本SQL查询语句的更多相关文章
- sql查询语句如何解析成分页查询?
我们公司主要mysql存储数据,因此也封装了比较好用mysql通用方法,然后,我们做大量接口,在处理分页查询接口,没有很好分查询方法.sql查询 语句如何解析成“分页查询”和“总统计”两条语句.可能, ...
- 15个初学者必看的基础SQL查询语句
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...
- SQL查询语句去除重复行
1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录 ...
- WordPress 常用数据库SQL查询语句大全
在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...
- (转)经典SQL查询语句大全
(转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...
- 转: 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- 经典SQL查询语句大全
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- oracle中sql查询语句的执行顺序
查询语句的处理过程主要包含3个阶段:编译.执行.提取数据(sql查询语句的处理主要是由用户进程和服务器进程完成的,其他进程辅助配合) 一.编译parse 在进行编译时服务器进程会将sql语句的正文放入 ...
- SQL查询语句分类
SQL查询语句有多种,下面总结下.首先先建三张表用于后面的实验 -- 学生表,记录学生信息 CREATE TABLE student( sno ), sname ), ssex ENUM('男','女 ...
- 浅谈SQL优化入门:1、SQL查询语句的执行顺序
1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_ ...
随机推荐
- mybaits 时间查询DATE_FORMAT
<if test="accountdayInout.inoutDateStart!=null"> and DATE_FORMAT(t.inout_date,'%Y-%m ...
- easyui 无限级数tree[menulist1 = GetMenuList(sm2,menulist1);]
// 左侧导航加载 function addNav(data) { $.each(data,function(i, sm1) { var menulist1 = "<ul id='tt ...
- 陨石坑之webapi 使用filter中如何结束请求流
先看下正常的结束asp.net 请求流怎么写的 System.Web.HttpContext.Current.Response.Write(“end”); System.Web.HttpContext ...
- [USACO17JAN]Promotion Counting 题解
前言 巨佬说:要有线段树,结果蒟蒻打了一棵树状数组... 想想啊,奶牛都开公司当老板了,我还在这里码代码,太失败了. 话说奶牛开个公司老板不应该是FarmerJohn吗? 题解 刚看到这道题的时候竟然 ...
- sh_03_注释
sh_03_注释 # 这是第一个注释 print("hello hello") """ 这是一个多行注释 .... .... .... 注释结束了 & ...
- WPF Microsoft.Practices.Unity 注入大法简单示例
最近新入职了公司,做WPF方向的项目,进来后看到这边大量运用了依赖注入来解耦,采用的是Microsoft.Practices.Unity. WPF的话,目前主要有两个技术来实现IOC,unity和ME ...
- Redis学习:Redis的安装与配置
Redis是新兴的一种内存数据库技术,在数据高速读写方面有着明显的优势.前几天,Redis3.0正式版本发布,为我们带来了Redis集群功能.这一功能很早就投入了开发,直到现在才真正走进我们的视野.可 ...
- #1024-JSP结构
JSP 结构 网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面.容器负责截获对JSP页面的请求. JSP容器与Web服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够 ...
- String、StringBuffer与StringBuilder介绍
关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较: StringBuilder > St ...
- BigDecimal保留两位小数,或指定精确的位数
public static void main(String[] args) { BigDecimal t1 = new BigDecimal("3.15289"); BigDec ...