2018.5.9 Oracle数据库查询命令
0.查询所有数据(最简单,但是时间很久)
select * from emp;
Result:
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 3000.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
1.查询系统时间 (这个表是用户的数据库里面没有建立所以要用虚表 dual )
select sysdate from dual;
Result:
SYSDATE
-----------
2018/5/9 20
2.去除重复的查询数据
select distinct(deptno) from emp;
Result:
DEPTNO
------
30
20
10
3.查询数据库起别名显示
select ename "姓名" ,sal*12 "年薪" from emp;
Result
姓名 年薪
---------- ----------
SMITH 9600
ALLEN 19200
WARD 15000
JONES 35700
MARTIN 15000
BLAKE 34200
CLARK 29400
SCOTT 36000
KING 60000
TURNER 18000
ADAMS 13200
JAMES 11400
FORD 36000
MILLER 15600
4.进行运算
select 3*4+1*2 from dual;
Result:
3*4+1*2
----------
14
5.NVL函数可以处理有空值的字段
6.查询部门编号为10的员工信息 (需要加上where条件过滤)
select * from emp where DEPTNO=10;
Result:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7782 CLARK MANAGER 7839 1981/6/9 2450.00 10
7839 KING PRESIDENT 1981/11/17 5000.00 10
7934 MILLER CLERK 7782 1982/1/23 1300.00 10
7.查询编号不为10的部门的员工信息
select ename,sal,deptno from emp where deptno <>10;
Result
ENAME SAL DEPTNO
---------- --------- ------
SMITH 800.00 20
ALLEN 1600.00 30
WARD 1250.00 30
JONES 2975.00 20
MARTIN 1250.00 30
BLAKE 2850.00 30
SCOTT 3000.00 20
TURNER 1500.00 30
ADAMS 1100.00 20
JAMES 950.00 30
FORD 3000.00 20
8.范围查询显示结果
select ename,sal from emp where sal between 800 and 1500;
Result:
ENAME SAL
---------- ---------
SMITH 800.00
WARD 1250.00
MARTIN 1250.00
TURNER 1500.00
ADAMS 1100.00
JAMES 950.00
MILLER 1300.00
或者 select ename,sal from emp where sal in(800,1500,2000);
Result
ENAME SAL
---------- ---------
SMITH 800.00
TURNER 1500.00
9.模糊查询
select * from emp where ename like '%ALL%';
Result:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30
10.查询第二个是A开头的字母的员工信息
select * from emp where ename like '%_A%';
Result
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30
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
7876 ADAMS CLERK 7788 1987/5/23 1100.00 20
7900 JAMES CLERK 7698 1981/12/3 950.00 30
11.查询薪水在800-2000之间的员工信息 并且按照部门的降序排序输出
select * from emp where sal between 800 and 2000 order by deptno desc;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30
7900 JAMES CLERK 7698 1981/12/3 950.00 30
7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30
7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30
7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30
7876 ADAMS CLERK 7788 1987/5/23 1100.00 20
7369 SMITH CLERK 7902 1980/12/17 800.00 20
7934 MILLER CLERK 7782 1982/1/23 1300.00 10
练习题
--查询部门名称为ACCOUNTING和RESEARCH的员工信息
select deptno from dept where dname in('ACCOUNTING', 'RESEARCH');
select * from emp where deptno in(select deptno from dept where dname in('ACCOUNTING', 'RESEARCH'));
--查询不是经理的员工的信息
--查询工资比10号部门都要低的员工信息
select min(sal) from emp where deptno=10;
--显示和KING同部门,工资低于FORD的雇员有哪些
select deptno from emp where ename='KING';
select sal from emp where ename='FORD';
select * from emp where deptno=(select deptno from emp where ename='KING') and sal<(select sal from emp where ename='FORD');
--找出部门30中所有的经理(MANAGER)和部门20中所有办事员(CLERK)
select ename,job from emp where deptno=30 and job='MANAGER';
select ename,job from emp where deptno=20 and job='CLERK';
select ename,job from emp where (deptno=30 and job='MANAGER') or (deptno=20 and job='CLERK');
--查询员工“SMITH”所在部门的员工,但不包含“FORD”的员工姓名、入职时间及部门编号
select deptno from emp where ename='SMITH';
select * from emp where deptno=(select deptno from emp where ename='SMITH') and ename not in('FORD');
--查询大于员工平均工资的所有员工,显示编号、姓名、工资,并按照升序排序
select avg(sal) from emp;
select empno,ename,sal from emp where sal>(select avg(sal) from emp) order by sal;
--查询员工姓名中包含“U”的员工所在部门编号下的所有员工的编号、姓名。
select empno,ename from emp where deptno=(select deptno from emp where ename like '%U%');
--查询经理“KING”下的所有员工的姓名、工资
select empno from emp where ename='KING';--7399
select ename,sal from emp where MGR=(select empno from emp where ename='KING');
--查询属于“ACCOUNTING”部门下所有的员工的部门编号、员工姓名及工作
select deptno from dept where dname='ACCOUNTING';
select deptno,ename,job from emp where deptno=(select deptno from dept where dname='ACCOUNTING');
--查询员工中包含“U”员工所在部门下的员工工资大于平均工资的员工,显示员工编号、姓名、及工资
select deptno from emp where ename like '%U%'; --30
select avg(sal) from emp; --2073.11
select * from emp where sal>(select avg(sal) from emp) and deptno=(select deptno from emp where ename like '%U%');
2018.5.9 Oracle数据库查询命令的更多相关文章
- oracle数据库查询日期sql语句(范例)、向已经建好的表格中添加一列属性并向该列添加数值、删除某一列的数据(一整列)
先列上我的数据库表格: c_date(Date格式) date_type(String格式) 2011-01-01 0 2012-03-07 ...
- python操作oracle数据库-查询
python操作oracle数据库-查询 参照文档 http://www.oracle.com/technetwork/cn/articles/dsl/mastering-oracle-python- ...
- C#连接Oracle数据库查询数据
C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; u ...
- 005.Oracle数据库 , 查询多字段连接合并,并添加文本内容
/*Oracle数据库查询日期在两者之间*/ SELECT PKID , OCCUR_DATE, PKID || ' 曾经沧海难为水 ' ||TO_CHAR( OCCUR_DATE, ' yyyy/m ...
- 004.Oracle数据库 , 查询多字段连接合并
/*Oracle数据库查询日期在两者之间*/ SELECT PKID , OCCUR_DATE, PKID || TO_CHAR( OCCUR_DATE, ' yyyy/mm/dd hh24:mi:s ...
- 001.Oracle数据库 , 查询日期在两者之间
/*Oracle数据库查询日期在两者之间*/ SELECT OCCUR_DATE FROM LM_FAULT WHERE ( ( OCCUR_DATE >= to_date( '2017-05- ...
- Oracle数据库——常用命令(用户管理、数据库导入导出)
--==cmd控制台==-- --==日常用户管理SQL==-- --连接到SQLPLUS >sqlplus /nolog --以dba身份连接 sql>conn / as sysdba ...
- ORACLE数据库 常用命令和Sql常用语句
ORACLE 账号相关 如何获取表及权限 1.COPY表空间backup scottexp登录管理员账号system2.创建用户 create user han identified(认证) by m ...
- Oracle数据库常用命令整理
转至:https://blog.csdn.net/creativemobile/article/details/8982164 1监听 (1)启动监听 lsnrctl start (2)停止监听 l ...
随机推荐
- POJ - 2349 ZOJ - 1914 Arctic Network 贪心+Kru
Arctic Network The Department of National Defence (DND) wishes to connect several northern outposts ...
- IE浏览器弹出窗口
//弹出一个对话框 参数的顺序: url, iWidth, iHeight, vArguments function openDialog() { var url, len = arguments.l ...
- 2014-11-1 NOIP模拟赛2
一.题目概览 中文题目名称 连连看 取数 游戏 迎接仪式 英文题目名称 card cycle game welcome 可执行文件名 card cycle game welcome 输入文件名 car ...
- 使用Etherscan API通过区块号获取块及叔块奖励
本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读. 区块(Blocks) 区块相关的 API,接口的参数说明请参考Etherscan API ...
- 分布式集群环境下,如何实现session共享一(应用场景)
在web应用中,由于http的请求响应式,无状态.要记录用户相关的状态信息,比如电商网站的购物车,比如用户是否登录等,都需要使用session.我们知道session是由servlet容器创建和管理, ...
- Jmeter (二十六)逻辑控制器 之 Module Controller and Include Controller
Module Controller ---模块控制器 测试计划设置“独立运行没每个线程组” 线程组2中使用Module Controller执行线程组1中的Sampler: 紧接着,将线程组1disa ...
- JMeter(2) 集成jmeter+ant+jenkins
一.ant安装 $su root $vi /etc/bashrc 插入两行(i+enter插入) export ANT_HOME=/usr/local/apache-ant-1.9.3 export ...
- CC06:像素翻转
题目 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返 ...
- Codeforces 163E(ac自动机、树状数组)
要点 显然ac自动机的板子就可以暴力一下答案了 为了优化时间复杂度,考虑套路fail树的dfs序.发现本题需要当前这个尾点加上所有祖先点的个数,考虑使用树状数组差分一下,在父点+1,在子树后-1,每次 ...
- WAMP3.1.10/Apache 设置站点根目录
网上的资料很多都不起作用了,都是说修改 WAMP\bin\apache\apache2.4.27\conf\httpd.conf 文件,但是修改了之后完全没有效果!! 最后,稀里糊涂的把 WAMP\b ...