当前位置: 首页 > 编程日记 > 正文

ORACLE SQL: 经典查询练手第二篇

本文使用的实例表结构与表的数据如下:

scott.emp员工表结构如下:

SQL> DESC SCOTT.EMP;
Name     Type         Nullable Default Comments 
-------- ------------ -------- ------- -------- 
EMPNO    NUMBER(4)                     员工编号  
ENAME    VARCHAR2(10) Y                员工姓名  
JOB      VARCHAR2(9)  Y                职位     
MGR      NUMBER(4)    Y                上级编号  
HIREDATE DATE         Y                雇佣日期  
SAL      NUMBER(7,2)  Y                薪金     
COMM     NUMBER(7,2)  Y                佣金     
DEPTNO   NUMBER(2)    Y                所在部门编号
--提示:工资 = 薪金 + 佣金

scott.dept部门表

SQL> DESC SCOTT.DEPT;
Name   Type         Nullable Default Comments 
------ ------------ -------- ------- -------- 
DEPTNO NUMBER(3)                     部门编号  
DNAME  VARCHAR2(14) Y                部门名称  
LOC    VARCHAR2(13) Y                地点

scott.emp表的现有数据如下:

 

SQL> SELECT * FROM SCOTT.EMP;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980-12-17     800.00               20
 7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30
 7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30
 7566 JONES      MANAGER    7839 1981-4-2      2975.00               20
 7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30
 7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10
 7788 SCOTT      ANALYST    7566 1987-4-19     4000.00               20
 7839 KING       PRESIDENT       1981-11-17    5000.00               10
 7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30
 7876 ADAMS      CLERK      7788 1987-5-23     1100.00               20
 7900 JAMES      CLERK      7698 1981-12-3      950.00               30
 7902 FORD       ANALYST    7566 1981-12-3     3000.00               20
 7934 MILLER     CLERK      7782 1982-1-23     1300.00               10
  102 EricHu     Developer  1455 2011-5-26 1   5500.00     14.00     10
  104 huyong     PM         1455 2011-5-26 1   5500.00     14.00     10
  105 WANGJING   Developer  1455 2011-5-26 1   5500.00     14.00     10
 
17 rows selected

Scott.dept表的现有数据如下:

SQL> SELECT * FROM SCOTT.DEPT;
 
DEPTNO DNAME          LOC
------ -------------- -------------
   110 信息科         海口
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON
    50 50abc          50def
    60 Developer      HaiKou
 
7 rows selected

用SQL完成以下问题列表:

1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名。
2. 找出EMP表员工名字中含有A 和N的员工姓名。
3. 找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,佣金从大到小。
4. 列出部门编号为20的所有职位。
5. 列出不属于SALES 的部门。
6. 显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。
7. 显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。
8. 说明以下两条SQL语句的输出结果:
SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
9. 让SELECT 语句的输出结果为
SELECT * FROM SALGRADE;
SELECT * FROM BONUS;
SELECT * FROM EMP;
SELECT * FROM DEPT;
……
列出当前用户有多少张数据表,结果集中存在多少条记录。
10. 判断SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错,为什么?

各试题解答如下(欢迎大家指出不同的方法或建议!):

--------1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名。---------
SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '__A%';
 
ENAME
----------
ADAMS
BLAKE
CLARK

-------2. 找出EMP表员工名字中含有A 和N的员工姓名。----------
SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%' AND ENAME LIKE '%N%';
 
ENAME
----------
ALLEN
MARTIN
WANGJING
--------或--------
SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%N%';
 
ENAME
----------
ALLEN
MARTIN
WANGJING

/*--------3. 找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,
佣金从大到小。----------*/
SQL> SELECT ENAME,SAL + COMM AS WAGE,COMM
  2  FROM SCOTT.EMP
  3  ORDER BY WAGE,COMM DESC;
 
ENAME            WAGE      COMM
---------- ---------- ---------
TURNER           1500      0.00
WARD             1750    500.00
ALLEN            1900    300.00
MARTIN           2650   1400.00
EricHu           5514     14.00
WANGJING         5514     14.00
huyong           5514     14.00
SMITH                 
JONES                 
JAMES                 
MILLER                
FORD                  
ADAMS                 
BLAKE                 
CLARK                 
SCOTT                 
KING                  
 
17 rows selected

-------4. 列出部门编号为20的所有职位。----------
SQL> SELECT DISTINCT JOB FROM EMP WHERE DEPTNO = 20;
 
JOB
---------
ANALYST
CLERK
MANAGER

-------5. 列出不属于SALES 的部门。----------
SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME <> 'SALES';
 
DEPTNO DNAME          LOC
------ -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    40 OPERATIONS     BOSTON
    50 50abc          50def
    60 Developer      HaiKou
   110 信息科         海口
 
6 rows selected

--或者:
SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME != 'SALES';
SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT IN('SALES');
SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT LIKE 'SALES';

---6. 显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。---------
SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP
  2  WHERE SAL + COMM NOT BETWEEN 1000 AND 1500
  3  ORDER BY WAGE DESC;
 
ENAME            WAGE
---------- ----------
EricHu           5514
huyong           5514
WANGJING         5514
MARTIN           2650
ALLEN            1900
WARD             1750
 
6 rows selected
--或者
SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP
  2  WHERE SAL + COMM < 1000 OR SAL + COMM > 1500
  3  ORDER BY WAGE DESC;
 
ENAME            WAGE
---------- ----------
EricHu           5514
huyong           5514
WANGJING         5514
MARTIN           2650
ALLEN            1900
WARD             1750
 
6 rows selected

/*----- 7. 显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。----------*/
SQL> SELECT ENAME 姓名,JOB 职位,(SAL + COMM) * 12 AS 年薪
  2  FROM SCOTT.EMP
  3  WHERE (SAL + COMM) * 12 BETWEEN 15000 AND 20000
  4  AND JOB IN('MANAGER','SALESMAN');
 
姓名       职位              年薪
---------- --------- ----------
TURNER     SALESMAN       18000

/*----- 8. 说明以下两条SQL语句的输出结果:
    SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
    SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
----------*/
SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
 
EMPNO      COMM
----- ---------
 7369 
 7566 
 7698 
 7782 
 7788 
 7839 
 7876 
 7900 
 7902 
 7934 
 
10 rows selected

---------------------------------------------------------------
SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
 
EMPNO      COMM
----- ---------

--说明:IS NULL是判断某个字段是否为空,为空并不等价于为空字符串或为数字0;
--而 =NULL 是判断某个值是否等于 NULL,NULL = NULL和NULL <> NULL都为 FALSE。

/*-----9. 让SELECT 语句的输出结果为
    SELECT * FROM SALGRADE;
SELECT * FROM BONUS;
SELECT * FROM EMP;
SELECT * FROM DEPT;
……
列出当前用户有多少张数据表,结果集中存在多少条记录。
----------*/

SQL> SELECT 'SELECT * FROM '||TABLE_NAME||';' FROM USER_TABLES;
 
'SELECT*FROM'||TABLE_NAME||';'
---------------------------------------------
SELECT * FROM BONUS;
SELECT * FROM EMP;
SELECT * FROM DEPT;
--......等等,在此不列出。

---10. 语句SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错?---------
SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > '1500';
 
ENAME            SAL
---------- ---------
ALLEN        1600.00
JONES        2975.00
BLAKE        2850.00
CLARK        2450.00
SCOTT        4000.00
KING         5000.00
FORD         3000.00
EricHu       5500.00
huyong       5500.00
WANGJING     5500.00
 
10 rows selected
 
SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > 1500;
 
ENAME            SAL
---------- ---------
ALLEN        1600.00
JONES        2975.00
BLAKE        2850.00
CLARK        2450.00
SCOTT        4000.00
KING         5000.00
FORD         3000.00
EricHu       5500.00
huyong       5500.00
WANGJING     5500.00
 
10 rows selected
--说明不会抱错,这儿存在隐式数据类型的。

转载于:https://www.cnblogs.com/ywsoftware/archive/2013/01/31/2886559.html

相关文章:

第十三届光华工程科技奖名单揭晓!这40位专家和1个团体获奖

11月8日&#xff0c;第十三届光华工程科技奖揭晓仪式在北京隆重举行。工程科技是推动人类进步的发动机&#xff0c;是产业革命、经济发展、社会进步的有力杠杆。光华工程科技奖由中国工程院主管&#xff0c;目前已是第十三届&#xff0c;被誉为“中国工程界最高奖项”&#xff…

【C#公共帮助类】给大家分享一些加密算法 (DES、HashCode、RSA、AES等)

http://www.cnblogs.com/yuangang/p/5466068.html转载于:https://www.cnblogs.com/daming1233/p/6704562.html

MongoDB的备份(mongodump)与恢复(mongorestore)

为什么80%的码农都做不了架构师&#xff1f;>>> 不用多想&#xff0c;数据的备份无论什么时候都是必须的&#xff0c;尤其是重要数据。 MongoDB也提供了备份和恢复的功能&#xff0c;分别是MongoDB下载目录下的mongdump.exe和mongorestore.exe文件。 先介绍下命令…

Windows 2000/XP 注册表终极修改(转载)

Microsoft Windows 2000/XP 是一个强大的操作系统&#xff0c;为我们提供了以往Windows 9x从未有过的安全性能&#xff0c;可是你是否感觉某些地方的设置还不够呢&#xff0c;这里就对Windows 2000 的注册表进行一些修改来达到我们的目的。 一、修改开始菜单和任务栏 由于以往不…

百度CTO王海峰获“光华工程科技奖”,深耕自然语言处理近30年

11月8日&#xff0c;第十三届光华工程科技奖揭晓仪式在北京举行。该奖项被誉为“中国工程界最高奖项”&#xff0c;旨在对我国工程科技及管理领域做出杰出贡献的科学家、工程师进行表彰。百度CTO王海峰因其在人工智能领域、尤其是自然语言处理领域的卓越贡献&#xff0c;成为AI…

python自定义库文件路径

各有各的小烦恼&#xff0c;各有的小期待 这是人家私事&#xff0c;不要大嘴巴 在Pycharm中import whois时&#xff0c;总是失败 原因是安装了python3.x相关操作过程&#xff0c;将环境变量path中关于Python的配置c:\Python27和c:\Python27\Scripts都删除&#xff0c;pycharm中…

开机BIOS语言(转载)

开机自检时出现问题后会出现各种各样的英文短句&#xff0c;短句中包含了非常重要的信息&#xff0c;读懂这些信息可以自己解决一些小问题&#xff0c;可是这些英文难倒了一部分朋友&#xff0c;下面是一些常见的BIOS短句的解释&#xff0c;大家可以参考一下。 1.CMOS battery …

参与开源项目,结识技术大牛!CSDN“开源加速器计划”招募志愿者啦!

什么是“CSDN开源加速器计划”&#xff1f;纵观近 30 年的科技创新&#xff0c;开源已成为全球技术应用和行业数字化发展的基石&#xff0c;尤其最近几年&#xff0c;开源的商业化得到了极大突破&#xff0c;开源正在成为全球科技的强劲驱动力。在开源生态中&#xff0c;开发者…

破解CentOS的root密码(救援模式无密码)

开机后&#xff0c;在倒数读秒的时候按任意键、跳转画面后&#xff0c;再按E键&#xff0c;进入如下界面&#xff1a; 此时把光标定位到第二行&#xff0c;再按E键&#xff08;意为&#xff1a;在启动顺序里编辑这条命令&#xff09;&#xff0c;如下图&#xff0c;此时输入“空…

第九—十三单元练习

<<<第九单元练习>>>1.在desktop主机中建立用户westos&#xff0c;并设定其密码为westoslinux2.配置desktop中的sshd服务要求如下&#xff1a;*&#xff09;设定sshd服务只允许westos用户可以被访问使用*&#xff09;创建westos用户的key认证方式*&#xff09…

用 Java 训练深度学习模型,原来这么简单

作者 | DJL-Keerthan&Lanking来源 | HelloGitHub头图 | CSDN下载自东方IC前言很长时间以来&#xff0c;Java 都是一个很受企业欢迎的编程语言。得益于丰富的生态以及完善维护的包和框架&#xff0c;Java 拥有着庞大的开发者社区。尽管深度学习应用的不断演进和落地&#xf…

重装操作系统的20条原则(转载)

系统是否需重装&#xff0c;三条法则帮你忙&#xff1a; 如果系统出现以下三种情况之一&#xff0c;应该是你考虑重装系统的时候了&#xff1a;   1)系统运行效率变得低下&#xff0c;垃圾文件充斥硬盘且散乱分布又不便于集中清理和自动清理&#xff1b;   2)系统频繁出错&…

RKLayout

2019独角兽企业重金招聘Python工程师标准>>> RKLayout 是 iOS 上一个简单的布局管理器 转载:http://www.adobex.com/ios/source/details/00000978.htm 转载于:https://my.oschina.net/u/868244/blog/107107

【网络流24题】最小路径覆盖问题

【题目】1738: 最小路径覆盖问题 【题解】网络流 关于输出路径&#xff0c;因为即使有反向弧经过左侧点也一定会改变左侧点的去向&#xff0c;若没连向右侧就会被更新到0&#xff0c;所以不用在意。 mark记录有入度的右侧点&#xff0c;然后从没入度的右侧点开始把整条路径输出…

Windows的端口列表(转载)

按端口号可分为3大类&#xff1a; &#xff08;1&#xff09;公认端口&#xff08;Well Known Ports&#xff09;&#xff1a;从0到1023&#xff0c;它们紧密绑定&#xff08;binding&#xff09;于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如&#xff1a;80端…

有了图分析,可解释的AI还远吗?

GraphAI 更多新可能随着深度学习、机器学习等人工智能技术的逐级深入&#xff0c;企业对挖掘大数据的关联性去探索“隐藏”在背后的商业价值提出了更高的要求。尤其是&#xff0c;新一代人工智能技术正从“感知智能”迈向“认知智能”&#xff0c;让机器实现“理解、推理、决策…

智能公交GPS

蓝斯通信推出LZ8713B*-X车载终端。这款设备是按交通部JT/T794-2011《道路运输车辆卫星定位系统车载终端技术要求 》和JT/T808-2011《道路运输车辆卫星定位系统车载终端通讯协议及数据格式》技术标准进行设计的。 产品集GPS&#xff08;可选配BD2双模模块&#xff09…

数据化管理在餐饮业中的应用

一、为什么要重视数据化运营和管理&#xff1f; “从经营到管理&#xff0c;管理方向需要数据灯塔” 餐饮市场和社会各业具有相似之处&#xff0c;也有很明确的本质不同。 1、首先&#xff0c;餐饮市场不像电信、石油市场是垄断性的&#xff0c;餐饮市场充分透明&#xff0c;符…

1 元秒杀 1000+ 册爆款电子书,错过再等一年!

wow代码人们让钱包瑟瑟发抖的双十一已经来啦与此同时码不停蹄地向你奔赴而来的还有 CSDN 为你准备的???? 1 元秒杀 ????价值 3.5 万元的爆款电子书限时特惠&#xff0c;仅需 1 元你&#xff0c;准备好了吗仅限 500 人速领????????????错过悔10年系列好书一

关于XP进程问题(转载)

Smss.exe 会话管理子系统&#xff0c;它负责启动用户会话。这个进程是通过系统进程来初始化的&#xff0c;包括对已经正在运行的Winlogon&#xff0c;Win32&#xff08;Csrss.exe&#xff09;线程和设定的系统变量作出反映。在它启动这些进程后&#xff0c;它等待Winlogon或者C…

NoticeView

2019独角兽企业重金招聘Python工程师标准>>> NoticeView 是 iOS 的消息提醒组件&#xff0c;类似 TweetBot 的提醒。 转载:http://www.adobex.com/ios/source/details/00001068.htm 转载于:https://my.oschina.net/u/868244/blog/107344

elasticsearch 分片恢复经历了哪些步骤?

why 服务重启&#xff0c;或者与集群断网重连时&#xff0c;需要和集群当前的主分片的数据保持一致。 how 上图中&#xff0c;RecoverTarget 代表加入集群前想要同步数据的分片&#xff0c;RecoverSource代表当前集群中的正常分片。 同步过程本质上来说&#xff0c;就是通过拷贝…

Java 事件适配器 Adapter

事件适配器Adapters 在上一篇文章中&#xff1a; http://www.cnblogs.com/mengdd/archive/2013/02/06/2908241.html 第二个例子中&#xff0c;可以看到要实现相应的事件监听器接口&#xff0c;就必须实现其中的所有方法。 有的接口中包含多个方法&#xff08;多个事件处理器&am…

Facebook面经全披露,我是怎么拿到机器学习工程师offer的?

作者 | Rahul Agarwal翻译 | Katie&#xff0c;责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国去年八月&#xff0c;我正在接受面试。那时&#xff0c;我已经分别接受Google India和Amazon India的机器学习和数据科学职位面试。然后我的上级建议我申请Facebook伦敦…

内存性能参数详解(转载)

内存性能参数详解 先说说最有效提高你机器内存性能的几个参数&#xff1a;CL&#xff0c;TRP&#xff0c;TRCD CAS Latency “列地址选通脉冲潜伏期” BIOS中可能的其他描述为&#xff1a;tCL、CAS Latency Time、CAS Timing Delay&#xff0c;这个值一般是1.5~3之间&#xff0…

一些关于Hibernate延迟加载的误区

最近面试别人&#xff0c;正好出的笔试题中有道关于Hibernate延迟加载的问题&#xff0c;聊天过程中发现很多人对Hibernate的延迟加载有些理解误区&#xff0c;写 些东东在这里&#xff0c;希望对大家有所帮助。 首先是第一个误区&#xff1a;延迟加载只能作用于关联实体看到这…

Java单元测试与Jutil详解(一) 简介

1.什么是单元测试 单元测试&#xff08;unit testing&#xff09;&#xff0c;是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义&#xff0c;Java里单元指一个类。总的来说&#xff0c;单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中…

反转!BAT编程吸金榜来了,AI程序员刷爆了......

从2017年开始&#xff0c;人工智能便波澜不断&#xff0c;无论是从BAT高调布局AI&#xff0c;还是从年薪80万招聘AI应届生&#xff0c;炽手可热形容AI工程师一点都不过分。百度推出“少帅计划”,针对30岁以下的深度学习科学家&#xff0c;开出100万以上年薪&#xff01;阿里巴巴…

Windows启动文件

Windows启动文件 Files Used in the Windows 2000 Boot Process FileLocationBoot stageNtldr System partition root (C:/ )Preboot and bootBoot.iniSystem partition rootBootBootsect.dosSystem partition rootBoot (optional)Ntdetect.com System partition rootBootNtboo…

Sublime Text 3 个人使用总结

待更新 Sublime Text 3\Packages\FileHeader\template\header转载于:https://www.cnblogs.com/yourstars/p/6739965.html