基本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_ ...
随机推荐
- mysql CREATE TABLE语句 语法
mysql CREATE TABLE语句 语法 作用:创建数据库中的表. 大理石量具系列 语法:CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,.... ...
- 区间查询异或最大值——cf1100F,hdu6579
cf1100F是静态区间查询最大值,有离线的解法,我感觉线段树或者莫队应该都能过 更优秀的解法可以在线并支持修改,可以解决hdu6579,即依次插入每个数,pos[i][j]表示在插第i个数时第j个基 ...
- 特征提取算法(4)——Harris角点提取
1.角点 1.1 特征点与角点 特征点是计算机视觉算法的基础,使用特征点来代表图像的内容. 角点是一类重要的点特征,图像分析的角度来定义: 角点可以是两个边缘的角点: 角点是邻域内具有两个主方向的特征 ...
- [CSP-S模拟测试]:位运算(数学)
题目传送门(内部题72) 输入格式 输入文件$bit.in$ 每个输入文件包含$T$组测试数据.输入文件的第一行为一个整数$T$,表示数据组数.接下来$T$行,每行表示一组测试数据每组测试数据包括三个 ...
- 阿里云万网虚拟主机安装配置Https(SSL)教程
太多太多的用户咨询阿里云虚拟主机是否可以安装SSL数字证书?万网空间是否可以支持HTTPS协议访问网站?答案只有一个:目前阿里云虚拟主机都不支持安装SSL证书!但是,但是,可以曲线实现目标! 1.为了 ...
- 基于python实现自动化办公学习笔记三
Excel(1)写xls文件 # 有序字典from collections import OrderedDict# 存储数据from pyexcel_xls import save_data def ...
- 记一次SQL Server delete语句的优化过程
今天测试反应问题,性能测试环境一个脚本执行了3个小时没有出结果,期间其他dba已经建立了一些索引但是没有效果. 语句: DELETE T from License T WHERE exists ( ...
- centos 6.8 安装 WebVirtMgr
1.kvm虚拟机已经用 virsh命令装好了 2. WebVirtMgr的安装步骤完全参照此处: https://github.com/retspen/webvirtmgr/wiki/Install- ...
- CMAK找不到相关编译器的问题
本机安装了vs2019,在编译vulkansdk所带的samples时,遇到 错误提示: CMake Error at CMakeLists.txt: (project): Generator Vis ...
- C# Oledb 连接Access数据库字符串
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbFile + ";Persist ...