select * from emp;

--1.找出部门30的员工
select * from emp where deptno = 30;

--2.列出所有办事员(CLERK)的姓名,变化和部门编号
select * from emp where job = upper('clerk');

--3.找出佣金高于薪金的员工。
select * from emp where comm > sal;

--4.找出佣金高于薪金60%的员工。
select *
from emp
where comm > sal * 0.6

--5.找出部门10中所有的经理(MANAGER)和部门20中所有的办事员(CLERK)的详细资料
select *
from emp
where (deptno = 10 and job = upper('manager'))
or (deptno = 20 and job = upper('clerk'));

--6.找出部门10中所有的经理(MANAGER)和部门20中所有的办事员(CLERK)的详细资料,既不是经理又不是办事员,但薪资大于等于2000的所有员工地详细信息
select *
from emp
where (deptno = 10 and job = upper('manager'))
or (deptno = 20 and job = upper('clerk'))
or (job not in ('MANAGER', 'CLERK') and sal >= 2000);

--7.找出收取佣金的员工地不同工作
select distinct job from emp where comm is not null;

--8.找出不收取佣金或收取佣金低于100的员工.
select *
from emp
where comm is null
or comm < 100;

--9.找出各个月倒数第3天受雇的员工
select LAST_DAY(HIREDATE)
from emp
select * from emp where LAST_DAY(HIREDATE) - 2 = HIREDATE;

--10.找出早于12年前受雇的员工.
select * from emp where months_between(sysdate, hiredate) / 12 > 12;

--11.以首字母大写的方式显示所有员工姓名
select initcap(ename) from emp;

--12.显示正好为5个字符的员工姓名.
select * from emp where length(ename) = 5;

--13.显示不带“R”的员工姓名.
select * from emp where ename not like '%R%';

--14.显示所有员工共姓名前三个字符.
select substr(ename, 0, 3) from emp;

--15.显示所有员工,用“a"替换"A"
select replace(ename, 'A', 'a') from emp;

--16.显示满10年的员工姓名和授雇日期
select ename, hiredate
from emp
where months_between(sysdate, hiredate) / 12 > 10;

--17.显示员工的详细资料,按姓名排序
select * from emp order by ename;

--18.显示员工姓名和授雇日期,根据其服务年限,将最老的员工牌在最前面
select ename, hiredate from emp order by hiredate;

--19.显示所有员工的姓名/工作和薪资,按工作的降序排序,若共工作相同则按薪资排序
select ename, job, sal from emp order by job desc, sal;

--20.显示所有员工的姓名/加入公司的年份和月份,安排受雇日前所作的月排序,若月份相同则将最早年份的员工排在最前面。
select ename, to_char(hiredate, 'yyyy') y, to_char(hiredate, 'mm') m
from emp
order by m, y;

--21.显示在一个月为30天的情况,所有员工日薪资,忽略余数。
select ename, round(sal / 30) from emp;

--22.找出在(任何年份的)2月份受雇的员工。
select * from emp where to_char(hiredate, 'mm') = '02';

--23.对于每个员工显示其加入公司的天数。
select ename, trunc(sysdate - hiredate) from emp;

--24.显示姓名字段的任何位置包含“A”的所有员工地姓名。
select ename from emp where ename like '%A%';

--25.以年月日的方式显示所有员工的服务年限(大概)
select ename,
hiredate,
trunc(months_between(sysdate, hiredate) / 12) y,
trunc(mod(months_between(sysdate, hiredate), 12)) m,
trunc(mod(sysdate - hiredate, 30)) d
from emp;

oracle学习篇三:SQL查询的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. oracle学习 第二章 限制性查询和数据的排序 ——03

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

  3. oracle学习篇二:常用SQL

    ------------------------1.简单的SQL查询--------------------------select * from emp;select empno,ename,job ...

  4. oracle 学习笔记(三)

    1. SQL(基础查询) 1.1. 基本查询语句 1.1.1. FROM子句 SQL查询语句的语法如下:   SELECT <*, column [alias], -> FROM tabl ...

  5. oracle学习篇九:同义词

    Oracle数据库中提供了同义词管理的功能.Oracle同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性. 在Oracle中对用户的管理是使用权限的方式来管理的,也就是说, ...

  6. Oracle学习(六):子查询

    1.知识点:能够对比以下的录屏进行阅读 SQL> --子查询所要解决的问题:问题不能一步求解 SQL> --查询工资比SCOTT高的员工信息 SQL> --(1)使用普通方法 SQL ...

  7. Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页

    GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group ...

  8. Oracle学习第三篇—多行函数

    0 order by asc/desc 默认升序 order by 列的名字|表达式|别名|序号 把空放在后边:order by desc nulls last 1分组函数--会自动滤空值 count ...

  9. oracle学习篇六:子查询

    -- 1.查询比7654工资要高的员工 select * from emp where sal>(select sal from emp where empno=7654); ---2.查询最低 ...

随机推荐

  1. 浏览器HTTP_USER_AGENT汇总——Firefox、Chrome、IE9、IE8、IE7、IE6

    结论:  浏览器 \ OS XP(IE6) XP(IE7) XP(IE8) Win7 x64(IE9) 猎豹浏览器2.0急速模式     Chrome/21 猎豹浏览器2.0兼容模式 IE6     ...

  2. [CQOI2006]凸多边形(半平面交)

    很明显是一道半平面交的题. 先说一下半平面交的步骤: 1.用点向法(点+向量)表示直线 2.极角排序,若极角相同,按相对位置排序. 3.去重,极角相同的保留更优的 4.枚举边维护双端队列 5.求答案 ...

  3. win10+anaconda环境下pyqt5+qt tools+eric6.18安装及汉化过程

    最近需要用python编写一个小程序的界面,选择了pyqt5+eric6的配套组合,安装过程中遇到一些坑,特此记录.参考书籍是电子工业出版社的<PyQt5快速开发与实战>. 因为我使用an ...

  4. 使用带参数的SQL语句向数据库中插入空值

    private void button1_Click(object sender, EventArgs e) { string name = textBox1.Text; int age = Conv ...

  5. VSLAM技术框架详述

    最早的SLAM雏形是在军事(核潜艇的海底定位)上的应用,主要传感器是军用雷达.SLAM技术发展到如今已经几十年,目前以激光雷达作为主传感器的SLAM技术比较稳定.可靠,仍然是主流的技术方案.但随着最近 ...

  6. JAVA GET 和 POST 的区别

    GET 和 POST 的区别 GET请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:/test/demo_form.asp?name1=value1&name2=val ...

  7. Python中的if __name__ == '__main__'

    如何简单地理解Python中的if __name__ == '__main__'   1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__ ...

  8. PyQt 5+qtDesigner

    https://blog.csdn.net/view994/article/details/84402069 https://blog.csdn.net/yizhou2010/article/deta ...

  9. C++_代码重用4-多重继承

    继承使用时要注意,默认是私有派生.所以要公有派生时必须记得加关键字Public. MI(Multi Inheritance)会带来哪些问题?以及如何解决它们? 两个主要问题: 从两个不同的基类继承同名 ...

  10. rest-assured之获取响应数据(Getting Response Data)

    我们使用rest-assured可以获得响应内容,比如:我们发起一个get请求 get("/lotto") 并且获得响应内容,我们有多种方式可以实现: // 通过流的方式获得响应内 ...