oracle数据库常用的99条查询语句

1. select * from emp;

2. select empno,ename,job from emp;

3. select empno 编号,ename 姓名,job 工作 from emp;

4. select job from emp;

5. select distinct job from emp;

6. select distinct empno,job from emp;
说明:因为雇员编号不重复,所以此时证明所有的列没有重复,所以不能消除掉重复的列.

7. 查询出雇员的编号,姓名,工作,但是显示的格式:编号是: 7369 的雇员,姓名是: smith,工作是: clear
select '编号是: ' || empno || '的雇员,姓名是: ' || ename || ',工作是: ' || job from emp;

8. 求出每个雇员的姓名及年薪
select ename,sal * 12 income from emp;

9. 求出工资大于 1500 的所有雇员信息
select * from emp where sal > 1500;

10. 查询每月可以得到奖金的雇员信息
select * from emp where comm is not null;

11. 查询没有奖金的雇员信息
select * from emp where comm is null;

12. 查询出基本工资大于 1500 同时可以领取奖金的雇员信息
select * from emp where sal > 1500 and comm is not null;

13. 查询出基本工资大于 1500 或者可以领取奖金的雇员信息
select * from emp where sal > 1500 or comm is not null;

14. 查询出基本工资不大于 1500 或者不可以领取奖金的雇员信息
select * from emp where not(sal > 1500 and comm is not null);

15. 查询基本工资大于 1500,但是小于 3000 的全部雇员信息
select * from emp where sal > 1500 and sal < 3000;

16. 查询基本工资大于等于 1500,但是小于等于 3000 的全部雇员信息
select * from emp where sal >= 1500 and sal <= 3000;
select * from emp where sal between 1500 and 3000;

17. 查询出在 1981 年雇佣的全部雇员信息(1981 年 1 月 1 日 到 1981 年 12 月 31 日之间的雇佣的雇员)
select * from emp where hiredate between '1-1月-81' and '31-12月-81';

18. 要求查询出姓名是 smith 的雇员信息
select * from emp where ename = 'SMITH';

19. 要求查询出雇员是 7369,7499,7521 的雇员的具体信息
select * from emp where empno = 7369 or empno = 7499 or empno = 7521;
select * from emp where empno in(7369,7521);

20. 要求查询出雇员不是 7369,7521 的雇员的具体信息
select * from emp where empno not in(7369,宋体; line-height:25.2px"> 21. 要求查询出姓名是 smith,allen,king 的雇员信息
select * from emp where ename in('SMITH','ALLEN','KING');

22. 查询出所有雇员姓名中第二个字母包含 "M" 的雇员信息
select * from emp where ename like '_M%';

23. 查询出雇员姓名中包含字母 M 的雇员信息
select * from emp where ename like '%M%';

24. 要求查询出在 1981 年雇佣的雇员信息
select * from emp where hiredate like '%81%';

25. 查询工资中包含 5 的雇员信息
select * from emp where sal like '%5%';

26. 查询雇员编号不是 7369 的雇员信息
select * from emp where empno != 7369;
select * from emp where empno <> 7369;

27. 要求按照工资由低到高排序
select * frm emp order by sal;
select * from emp order by sal asc;

28. 要求按照工资由高到低排序
select * from emp order by sal desc;

29. 要求查询出 20 部门的所有雇员信息,查询的信息按照工资由高到低排序,如果工资相等,则按照雇佣日期由早到晚排序.
select * from emp where deptno = 20 order by sal desc,hiredate asc;

30. 将小写字母变为大写字母
select upper('hello') from dual;

31. 将大写字母变为小写字母
select lower('HELLO WORLD') from dual;

32. 要求查询出姓名是 smith 的雇员信息
select * from emp where ename = upper('smith');

33. 使用 initcap() 函数将单词的第一个字母大写
select initcap('hello world') from dual;

34. 将雇员表中的雇员姓名变为开头字母大写
select initcap(ename) from emp;

35. 将字符串 "hello" 和 "world" 进行串联
select concat('hello ','world') from dual;

36. 对字符串进行操作的常用字符处理函数
select substr('hello',1,3) 截取字符串,length('hello') 字符串的长度,replace('hello','l','x') 字符串替换 from dual;
select substr('hello','x') 字符串替换 from dual;

37. 显示所有雇员的姓名及姓名的后三个字符
select ename,substr(ename,length(ename) -2) from emp;
select ename,-3,3) from emp;

38. 使用数值函数执行四舍五入操作
select round(789.536) from dual;

39. 要求将 789.536 数值保留两位小数
select round(789.536,2) from dual;

40. 要求将 789.536 数值中的整数的十位进行四舍五入进位
select round(789.536,-2) from dual;

41. 采用 trunc() 函数不会保留任何小数,而且小数点也不会执行四舍五入的操作
select trunc(789.536) from dual;

42. 通过 trunc() 也可以指定小数点的保留位数
select trunc(789.536,宋体; line-height:25.2px"> 43. 作用负数表示位数
select trunc(789.536,宋体; line-height:25.2px"> 44. 使用 mod() 函数可以进行取余的操作
select mod(10,3) from dual;

45. 显示 10 部门雇员进入公司的星期数(当前日期 - 雇佣日期 = 天数 / 7 = 星期数)
select empno,round((sysdate - hiredate) / 7) from emp where deptno = 10;

46. 日期函数
months_between(): 求出给定日期范围的月数
add_months(): 在指定的日期上加上指定的月数,求出之后的日期
next_day(): 指定日期的下一个日期
last_day(): 求出给定日期当月的最后一天日期

47.
select empno,months_between(sysdate,hiredate) from emp;
select empno,round(months_between(sysdate,hiredate)) from emp;

48. select sysdate,add_months(sysdate,4) from dual;

49. select next_day(sysdate,'星期一') from dual;

50. select last_day(sysdate) from dual;

51. 转换函数
to_char(): 转换成字符串
to_number(): 转换成数字
to_date(): 转换成日期

52. 查询所有雇员的雇员编号,雇佣日期
select empno,
ename,
to_char(hiredate,'yyyy') year,'mm') months,'dd') day
from emp;

select empno,to_char(hiredate,'yyyy-mm-dd') from emp;

53. 查询所有雇员的编号,姓名和工资
select empno,sal from emp;
select empno,to_char(sal,'99,999') from emp;
select empno,'L99,'$99,999') from emp;

54. select to_number('123') + to_number('123') from dual;

55. 将一个字符串转换成日期类型
select to_date('2009-01-01','yyyy-mm-dd') from dual;

56. 求出每个雇员的年薪(要求加上奖金)
select empno,sal,comm,(sal + comm) * 12 from emp;
select empno,nvl(comm,0),(sal + nvl(comm,0)) * 12 income from emp;

57. decode() 函数类似于 if....elsif...else 语句
select decode(1,'内容是 1',2,'内容是 2',3,'内容是 3') from dual;

58. 查询出雇员的编号,雇佣日期及工作,要求将雇员的工作替换成以下信息:
select empno 雇员编号,
ename 雇员姓名,
hiredate 雇佣日期,
decode(job,
'CLERK','业务员',
'SALESMAN','销售人员',
'MANAGER','经理',
'ANALYST','分析员',
'PRESIDENT','总裁'
) 职位
from emp;

59. 笛卡尔积(交差连接)
select * from emp,dept;
select * from emp cross join dept;

60. 内连接
select * from emp e,dept d where e.deptno = d.deptno;
select * from emp e inner join dept d on e.deptno = d.deptno;
select * from emp e join dept d on e.deptno = d.deptno;


61. 自然连接
select * from emp natural join dept;
select * from emp e join dept d using(deptno);

62. 要求查询出雇员的编号,部门的编号,名称,地址
select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno = d.deptno;

63. 要求查询出雇员的姓名,雇员的直接上级领导姓名
select e.ename,e.job,m.ename from emp e,emp m where e.mgr = m.empno;

64. 要求查询出雇员的姓名,雇员的直接上级领导姓名以及部门名称
select e.ename,m.ename,d.dname from emp e,emp m,dept d where e.mgr = m.empno and e.deptno = d.deptno;

65. 要求查询出每个雇员的姓名,工资,部门名称,工资在公司的等级(salgrade),及其领导的姓名及工资所在公司的等级
select e.ename,e.sal,s.grade,m.sal,ms.grade
from emp e,dept d,salgrade s,salgrade ms
where e.deptno = d.deptno
and e.sal between s.losal and s.hisal
and e.mgr = m.empno
and m.sal between ms.losal and ms.hisal;

select e.ename,
e.sal,
d.dname,
decode(s.grade,'第五等级','第四等级','第三等级',4,'第二等级',5,'第一等级'),
m.ename,
m.sal,
decode(ms.grade,'第一等级')
from emp e,salgrade ms
where e.deptno = d.deptno and e.sal between s.losal and s.hisal and e.mgr = m.empno
and m.sal between ms.losal and ms.hisal;

66. select empno,dname,loc from emp e,dept d where e.deptno = d.deptno;
select empno,loc from emp e inner join dept d on e.deptno = d.deptno;

67. 左外连接
select empno,dept d where e.deptno = d.deptno(+);
select empno,loc from emp e left outer join dept d on e.deptno = d.deptno;
select empno,loc from emp e left join dept d on e.deptno = d.deptno(+);

68. 右外连接
select empno,dept d where e.deptno(+) = d.deptno;
select empno,loc from emp e right outer join dept d on e.deptno = d.deptno;
select empno,loc from emp e right join dept d on e.deptno = d.deptno;

69. select e.empno,m.empno,宋体; line-height:25.2px"> 70. select e.empno,emp m where e.mgr = m.empno(+);

71.
select * from emp e,dept d where e.deptno = d.deptno and d.deptno = 30;
select * from emp e inner join dept d on e.deptno = d.deptno where d.deptno = 30;
select * from emp e join dept d on e.deptno = d.deptno where d.deptno = 30;
select * from emp e natural join dept d where deptno = 30;
select * from emp e join dept d using(deptno) where deptno = 30;

72.
select e.ename,d.loc from emp e right outer join dept d on e.deptno = d.deptno;
select e.ename,d.loc from emp e right join dept d on e.deptno = d.deptno;
select e.ename,dept d where e.deptno(+) = d.deptno;

73. select count(ename) from emp;

74. select min(sal) from emp;

75. select max(sal) from emp;

76. select sum(sal) from emp;

77. select avg(sal) from emp;

78. select sum(sal) from emp where deptno = 20;

79. select avg(sal) from emp where deptno = 20;

80. 求出每个部门的雇员数量
select deptno,count(deptno) from emp group by deptno;
select deptno,count(empno) from emp group by deptno;

81. 求出每个部门的平均工资
select deptno,avg(sal) from emp group by deptno;

82. 按部门分组,并显示部门的名称,及每个部门的员工数
select d.dname,count(e.empno) from emp e,dept d
where e.deptno = d.deptno
group by d.dname;

select d.deptno,temp.c
from (select deptno,count(e.empno) c from emp e group by e.deptno) temp,dept d
where temp.deptno = d.deptno;

83. 要求显示出平均工资大于 2000 的部门编号和平均工资
select deptno,avg(sal) from emp group by deptno having avg(sal) > 2000;

84. 显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于 5000,输出结果按月工资的合计升序排序.
select job,sum(sal) su from emp where job <> 'SALESMAN' group by job having sum(sal) > 5000 order by su;

select temp.job,sum(temp.sal) s
from (select job,sal from emp e where job <> 'SALESMAN') temp
group by temp.job
having sum(temp.sal) > 5000
order by s;

85. 求出平均工资最高的部门工资
select max(avg(sal)) from emp group by deptno;

86. 要求查询出比雇员编号为 7654 工资高的所有雇员信息
select * from emp where sal >(select sal from emp where empno = 7654);

87. 要求查询出工资比 7654 高,同时与 7788 从事相同工作的全部雇员信息
select * from emp
where sal >(select sal from emp where empno = 7654)
and job = (select job from emp where empno = 7788);

88. 要求查询出工资最低的雇员姓名,工资
select ename,job,sal from emp where sal = (select min(sal) from emp);

89. 要求查询出: 部门名称,部门的员工数,部门的平均工资,部门的最低收入雇员的姓名
select d.dname,temp.c,temp.a,e.ename
from dept d,
(select deptno,count(empno) c,avg(sal) a,min(sal) m from emp group by deptno) temp,
emp e
where d.deptno = temp.deptno and e.sal = temp.m;

90. 求出每个部门的最低工资的雇员的信息
select * from emp where sal in(select min(sal) from emp group by deptno);
select * from emp where sal =any(select min(sal) from emp group by deptno);
select * from
(select min(sal) m from emp group by deptno) temp,
emp e
where e.sal = temp.m;

91. 范例 90 中,比子查询条件中最低(小)的工资要大的雇员信息
select * from emp where sal >any(select min(sal) from emp group by deptno);
select * from emp where sal > (select min(min(sal)) from emp group by deptno);

92. 范例 90 中,比子查询条件中最高(大)的工资要小的雇员信息
select * from emp where sal <any(select min(sal) from emp group by deptno);
select * from emp where sal < (select max(min(sal)) from emp group by deptno);

93. 范例 90 中,比子查询条件中最高(大)的工资要大的雇员信息
select * from emp where sal >all(select min(sal) from emp group by deptno);
select * from emp where sal > (select max(min(sal)) from emp group by deptno);

94. 范例 90 中,比子查询条件中最低(小)的工资要小的雇员信息
select * from emp where sal <all(select min(sal) from emp group by deptno);
select * from emp where sal < (select min(min(sal)) from emp group by deptno);

95. 查找出 20 部门中没有奖金的雇员信息
select * from emp where (sal,-1)) in (select sal,-1) from emp where deptno = 20);
select * from emp where deptno = 20 and comm is null;

96. union 操作符返回两个查询选定的所有不重复的行
select deptno from emp union select deptno from dept;

97. union all 操作符合并两个查询选定的所有行,包括重复的行
select deptno from emp union all select deptno from dept;

98. intersect 操作符只返回两个查询都有的行
select deptno from emp intersect select deptno from dept;

99. minus 操作符只返回由第一个查询选定但是没有被第二个查询选定的行,也就是在第一个查询结果中排除在第二个查询结果中出现的行 select deptno from dept minus select deptno from emp;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符串转Oracle的insert into的小程序。
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远端的监听服务来找问题,在远端查看监听服务状态(具体看下面的解决方案会详细呈现),服务是否开启,另外查看监听端点概要是否存在host未指向到计算名的,如无直接进入监听配置文件listener.ora内添加指向即可。2、查看监听服务状态 lsnrctl status,右边为远端端点状态,未添加host指向到计算名;1、本地及远端安装好Oracle并配置好连接,Oracle服务和监听已启动;1、远程Oracle数据库:Oracle11g R2。或者进入下述服务手动重启。,再进行远程连接即可。_ora-12541:tns:无监听程序
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语句转oracle
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library_cx_oracle.databaseerror: dpi-1047: cannot locate a 64-bit oracle client libr
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Oracle数据库的核心要素,包括体系结构、存储结构以及各类参数。通过解析Oracle数据库的体系结构,读者可以深入了解其内部组成和工作原理。存储结构部分介绍了数据在Oracle中的存储方式,从表空间到数据文件的层层逻辑。最后,我们深入探讨了Oracle数据库中各类参数的作用和配置方法,帮助读者更好地理解和优化数据库性能。本文旨在帮助读者全面理解Oracle数据库的运作机制,为其在实践中的应用提供基础和指导。
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时)由于平时默认每天只收集4小时,时间有点短了,改成每天可收集8小时。oracle 18c中默认是打开的。查看当前自动收集统计信息的时间。_oracle自动收集统计信息
文章浏览阅读929次,点赞18次,收藏20次。只有assm(Automatic Shared Memory Management)模式可以使用大页,需要关闭amm(Memory Manager Process)HugePages_Free: 306 (空闲306页,已使用306-306=0页)防止oracle使用的内存交换,所以设置的大小与oracle配置的sga、pga相关。HugePages_Rsvd: 0 (操作系统承诺给oracle预留的页数)HugePages_Total: 306 (总共306页)_oracle11g 大页
文章浏览阅读801次。例如:10046:0,1,4,8,12。默认redo日志有三个,大小为50M,循环覆盖使用。redo log再覆盖之前,会被归档,形成归档日志。答:不同事件,不同级别。trace的不同级别?_oracle 日志
文章浏览阅读4.2k次,点赞84次,收藏77次。主要讲解MySQL中SQL的DDL语句,其中包括对数据库和表的一系列操作。_sql ddl 新增字段 mysql
文章浏览阅读1.1k次。ON DEMAND:仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;ON COMMIT:一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。Method =>'C',物化视图有三种刷新方式:COMPLETE、FAST和FORCE。物化视图会占用空间,一半可用于大量数据查询时,减缓主表的查询压力使用。例如创建一个物化视图,让对接单位查询。_oracle物化视图定时刷新
文章浏览阅读713次,点赞21次,收藏18次。1.背景介绍在当今的大数据时代,数据量越来越大,传统的关系型数据库已经无法满足业务需求。因此,NoSQL数据库技术迅速崛起,成为企业和开发者的首选。Oracle NoSQL Database是Oracle公司推出的一款分布式NoSQL数据库产品,具有高性能、高可用性和易于扩展等特点。在本文中,我们将深入了解Oracle NoSQL Database的集成与开发者工具,帮助您更好地掌握这款产品的...
文章浏览阅读2.5k次,点赞2次,收藏4次。今天遇见一个问题需要将字段中包含中文字符串的筛选出来。_oracle查询包含中文字符
文章浏览阅读802次。arcmap 在oracle删除表重新创建提示表名存在解决放啊
文章浏览阅读4.3k次,点赞2次,收藏4次。Oracle连接数据库提示 ORA-12638:身份证明检索失败_ora-12638
文章浏览阅读3.4k次,点赞6次,收藏25次。etc/profile是一个全局配置文件,所有用户登录都会使用该文件构建用户环境。与windows配置环境变量是一个道理。选择Linux系统,找到适合自己系统的安装包,我的是CentOS 8 x64。接下来需要登陆Oracle账户才能下载,无账户的可以自己注册一个。Linux中export 命令用于设置或显示环境变量。模式,利用上下键到文档最后,添加以下代码。出现如图所示版本号字样,则说明安装成功。点击下载,勾选1,点击2。记住完整路径用于后面配置。找到Java并点击进去。往下翻,找到Java8。_linux安装jdk1.8
文章浏览阅读2.4w次,点赞26次,收藏109次。JDK 是的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,其中JDK包含了 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。最主流的 JDK 是Oracle公司发布的 JDK,除了 Oracle JDK(商业化,更稳定)之外,还有很多公司和组织开发了属于自己的 JDK,比较有名的有IBM JDK(更适合 IBM) 和OpenJDK。_jdk安装教程
文章浏览阅读7.5w次。出现 “java.sql.SQLNonTransientConnectionException:Could not create connection to database server” 的错误通常是由于无法连接到数据库服务器引起的。_java.sql.sqlnontransientconnectionexception: could not create connection to
文章浏览阅读849次,点赞7次,收藏10次。在ClickHouse中创建用户、数据库并进行权限分配是一个重要的管理任务,它涉及到安全性和访问控制。下面是一个基本的指南来帮助你完成这些操作:1. 创建数据库首先,需要创建一个数据库。使用以下命令:CREATE DATABASE IF NOT EXISTS your_database_name;将 your_database_name 替换为你想要的数据库名。2. 创建用户接下来,创建一个新用户。使用以下命令:CREATE USER your_username IDENTIFIED WIT_在clickhouse中如何创建用户 赋权
文章浏览阅读1.2k次,点赞53次,收藏39次。本文是一篇关于Oracle数据库安装和使用的博文摘要。作者以轻松幽默的笔调介绍了自己在实验中掌握的Oracle数据库基本操作,包括使用组件查看命令、配置数据库监听器等。作者也分享了在实验中遇到的一些有趣问题,如SQL语句缺少分号导致的意外错误。此外,作者还强调了登录sys用户和启动实例加载数据库的注意事项,并鼓励读者面对挑战时保持乐观,不断提升自己的能力。整体风格风趣严谨,引人入胜。
文章浏览阅读820次,点赞17次,收藏16次。KingbaseES、xml、dbms_xmlgen、SETSKIPROWS、人大金仓、KingbaseES兼容Oracle包dbms_xmlgen的功能是通过SQL查询将关系表中数据转化为XML文档。转化方式一共有两种:(1)通过查询字符串直接转化。(2)通过上下文句柄转化。对于通过查询字符串直接转化的方式,无法跳过若干行进行查询,只能直接将表格中的所有数据转化为XML文档。