Oracle数据库中常用的99种查询语句
2。选择编号、姓名,工作从EMP;
三.选择empno,ename的名字,从EMP工作;
4。从EMP中选择作业;
5。从EMP中选择不同的作业;
6。选择不同的编号、工作从EMP;
说明:由于员工编号没有重复,证明此时所有的列都不重复,所以不能重复列。
7。询问员工编号、姓名、工作,但显示格式:号码是:员工的7369,名字是:史米斯,工作是:清除
选择号码是:| empno| | |员工,名称为:| | ename | |的工作是:| |工作从EMP;
8。找出每个雇员的名字和年薪
选择ename,萨尔* 12收入从EMP;
9。所有雇员的工资超过1500的信息
从EMP 1500中选择*;
10。询问员工每月可获得奖金的信息。
SELECT * FROM EMP,奖金不为空;
11。无奖金查询员工信息
SELECT * FROM EMP在公司是空的;
12。以1500以上基本工资和奖金查询员工信息。
SELECT * FROM EMP在萨尔> 1500和奖金不为空;
13。查询员工信息,基本工资超过1500或奖金。
SELECT * FROM EMP在萨尔> 1500或通信不为空;
14。询问不超过基本工资的1500或不能领取奖金的员工信息。
SELECT * FROM emp不(Sal > 1500和奖金不为空);
15。查询基本工资超过1500,但不到员工信息的3000。
从EMP 1500和萨尔< 3000中选择*;
16。查询基本雇员信息,等于1500,但小于3000。
从EMP中选择萨尔和萨尔< 3000 > = 1500;
从1500和3000之间的电磁脉冲中选择*;
17。查询1981年1月1日至1981年12月31日受雇于1981名雇员的所有雇员资料。
SELECT * FROM EMP在姓名和雇佣'1-1 - 81'and '31-12月81之间的;
18。询问史米斯员工信息的名称。
SELECT * FROM EMP在ename = 'smith;
19。询问7369, 7499, 7521名雇员的具体信息。
SELECT * FROM EMP在EMPNO = 7369 = 7499 = 7521或编号编号;
SELECT * FROM EMP empno在哪里(7369, 7499, 7521);
20。询问7369, 7499, 7521岁以下员工的具体信息。
SELECT * FROM EMP在EMPNO不(7369, 7499, 7521);
21。询问员工姓名,史米斯,艾伦,King雇员信息
SELECT * FROM EMP在ENAME在('smith ','allen '国王');
22。在包含m的所有雇员名称中查询第二个字母的雇员信息
SELECT * FROM EMP在ENAME像'_m %;
23。查询员工姓名中包含M字母的员工信息
SELECT * FROM EMP在ENAME像%米%;
24。询问1981雇用的雇员的情况
SELECT * FROM EMP在姓名和雇佣像% 81%;
25。查询工资包含5个员工信息
从电磁脉冲中选择*,萨尔喜欢% 5%;
26。查询员工编号,而不是员工信息的7369
SELECT * FROM EMP在EMPNO!= 7369;
SELECT * FROM EMP在EMPNO <> 7369;
27。要求把工资由低到高。
选择FRM EMP为萨尔;
从电磁脉冲顺序选择*;
28。根据工资要求,从高到低依次排列。
SELECT * FROM EMP的萨尔DESC顺序;
29、需要查询20部门所有员工的信息。这些信息是根据工资从高到低排序的。如果工资相等,则按从上午到晚上的就业日期进行排序。
SELECT * FROM emp表20阶,用Sal降序,姓名和雇佣ASC;
30。把小写字母变成大写字母。
选择上(你好)从双;
31。将大写字母转换为小写字母。
选择较低('Hello World)从双;
32。询问史米斯员工信息的名称。
SELECT * FROM EMP在ename =上('smith);
33。使用initcap()函数大写单词的第一个字母
选择initcap('Hello World)从双;
34。将雇员列表中雇员的名称更改为字母表的开头
选择initcap(ename)从EMP;
35。将字符串和世界串联起来。
选择concat(你好',‘')从双;
36。操作字符串的常用字符处理函数
选择substr(你好,1, 3)截取字符串的长度(你好)的字符串,替换(你好,'我','X')字符串代替双;
选择substr(你好,0, 3)截取字符串的长度(你好)的字符串,替换(你好,'我','X')字符串代替双;
37。显示所有员工姓名和名字的前三个字符
选择ename,substr(ename,长度(ename)- 2)从EMP;
选择ename,substr(ename,3, 3)从EMP;
38。使用数值函数执行四-和-五输入操作。
从双圆中选择圆(789.536);
39。请将789.536个值保留在两个十进制数中。
从双圆中选择圆(789.536,2);
40。需要在四舍入五中取789.536值中的整数的十位。
从双圆中选择圆(789.536,- 2);
41。使用trunc()函数不保留任何十进制数,和小数点不执行四-和-五-入门操作
选择trunc(789.536)从双;
42。小数点的位数也可以指定由TRUNC()
选择trunc(789.536,2)从双;
43。动作负数表示法
选择trunc(789.536,2)从双;
44。使用mod()函数执行剩余操作
从mod中选择mod(10, 3);
45。显示10个部门雇员进入公司的周数(当前日期-雇用日= 7天=星期)。
选择编号、姓名,圆((SYSDATE -姓名和雇佣) / 7)从EMP在表10;
46。日期函数
months_between():对于一个给定的日期范围的月数
add_months():添加指定数量的在指定日期月发现日期
next_day():指定的未来日期日期
last_day():对给定的日期一个月的最后一天的日期
四十七
选择编号、姓名,months_between(系统日期,姓名和雇佣)从EMP;
选择编号、姓名,圆(months_between(系统日期,姓名和雇佣))从EMP;
48。选择系统日期,add_months(SYSDATE,4)从双;
49。选择next_day(SYSDATE,星期一)从双;
50。选择last_day(SYSDATE)从双;
51。转换功能
to_char():转换成一个字符串
to_number():转换为数字
to_date():转换日期
52。询问员工人数、姓名、受雇日期
选择empno,
Ename,
to_char(姓名和雇佣,'yyyy ')年,
to_char(姓名和雇佣,'mm ')个月,
to_char(姓名和雇佣,'dd ')天
从EMP;
选择编号、姓名,to_char(姓名和雇佣,'yyyy-mm-dd)从EMP;
选择编号、姓名,to_char(姓名和雇佣,'fmyyyy-mm-dd)从EMP;
53。询问所有员工的人数、姓名和薪水。
选择编号、姓名,萨尔从EMP;
选择编号、姓名,to_char(Sal,99999)从EMP;
选择编号、姓名,to_char(Sal,'l99999)从EMP;
选择编号、姓名,to_char(Sal,99999美元)从EMP;
54。选择to_number('123 ')+ to_number('123)从双;
55。将字符串转换为日期类型
选择to_date('2009-01-01 ','yyyy-mm-dd)从双;
56。每位员工的年薪(需加奖金)
选择编号、姓名,Sal通讯(SAL +通讯)×12从EMP;
选择编号、姓名,Sal,通信,NVL(通讯,0),(SAL + NVL(通讯,0))×12收入;
57。解码()如果…elsif功能类似于…else语句
选择解码(1, 1),内容是1,2,内容为2,3,'内容为3 ')从双;
58。询问雇员的编号、姓名、受雇日期和工作,并要求以下信息由雇员的工作代替:
选择编号员工编号,
一个员工的名字,
就业姓名和雇佣日期,
解码(作业),
店员,推销员,
推销员,推销员,
经理,经理,
'分析师','分析师',
总统,总统
)
从EMP;
59。笛卡尔积(交叉连接)
从EMP,部门选择*;
从EMP交叉连接部选择*;
60。内部连接
SELECT * FROM EMP E,D,e.deptno = d.deptno系;
SELECT * FROM EMP E内连接部D e.deptno = d.deptno;
SELECT * FROM EMP E加入系D e.deptno = d.deptno;
61。天然的联系
从EMP自然连接部选择*;
SELECT * FROM EMP E加入部门使用(deptno);
62。询问雇员的号码、姓名、部门号码、姓名、地址。
选择e.empno,e.ename,d.deptno,及其所在,从EMP d.loc系D,E。
63。询问员工的姓名、工作和雇员直接主管的姓名。
查询每个部门,e.job,从m.ename EMP E,M,e.mgr = m.empno EMP;
64。询问雇员的姓名、工作、雇员直接主管的姓名和部门的名称。
查询每个部门,e.job,m.ename及其所在,从EMP,电磁脉冲,部门D.
65,我们需要找出姓名,工资,部门名称,在公司的级别工资(salgrade)每一个员工,他们的领袖的名字,并在公司的工资等级。
查询每个部门,e.sal,及其所在,s.grade,m.ename,m.sal,ms.grade
从EMP E系D,salgrade,EMP m,salgrade MS
在e.deptno = d.deptno
和e.sal s.losal和s.hisal之间
和e.mgr = m.empno
和m.sal ms.losal和ms.hisal之间;
查询每个部门,
E.sal,
D.dname,
(s.grade解码,1,第五级,2级,第四,3,第三级,4,二,5,一级),
M.ename,
M.sal,
(ms.grade解码,1,第五级,2级,第四,3,第三级,4,二,5,一级)
从EMP E系D,salgrade,EMP m,salgrade MS
在e.deptno = d.deptno和s.losal和s.hisal和e.mgr = m.empno之间e.sal
和m.sal ms.losal和ms.hisal之间;
66。选择编号、姓名,d.deptno、名称、LOC从EMP E,D,系。
选择编号、姓名,d.deptno、名称、LOC从EMP E内连接部
67。左外连接
选择编号、姓名,d.deptno、名称、LOC从EMP E系d(+);
选择编号、姓名,d.deptno、名称、LOC从EMP E左外连接。
选择编号、姓名,d.deptno、名称、LOC从EMP E左连接部(+);
68。参加
选择编号、姓名,d.deptno、名称、LOC从EMP E系d(+)= =;
选择编号、姓名,d.deptno、名称、LOC从EMP E右外部联接。
选择编号、姓名,d.deptno、名称、LOC从EMP E右连接部
69。选择e.empno,e.ename,m.empno,从EMP E m.ename,EMP M,e.mgr =;
70。选择e.empno,e.ename,m.empno,从EMP E m.ename,EMP M,e.mgr = =(+);
七十一
SELECT * FROM EMP E,D,系e.deptno = d.deptno和d.deptno = 30;
SELECT * FROM EMP E内连接部上d.deptno e.deptno = = 30;
SELECT * FROM EMP E加入系D e.deptno = d.deptno哪里d.deptno = 30;
SELECT * FROM EMP E自然连接部D在表30;
SELECT * FROM EMP E加入部门使用(deptno)在表30;
七十二
查询每个部门,d.deptno,及其所在,从EMP对d.loc加入系外
查询每个部门,d.deptno,及其所在,从EMP对d.loc加入部门D.
查询每个部门,d.deptno,及其所在,从EMP E d.loc,系在e.deptno D(+)= =;
73。select count(ename)从EMP;
74。从电磁脉冲中选择最小值;
75。从EMP中选择max(萨尔);
76。从电磁脉冲中选择和(萨尔);
77。从EMP中选择AVG(萨尔);
78。选择的总和(SAL)从EMP在表20;
79。选择AVG(SAL)从EMP在表20;
80。各部门员工人数
选择多种计数(deptno)的雇员工资;
选择多种计数(EMPNO)的雇员工资;
81。各部门的平均工资
选择DEPTNO,AVG(SAL)的雇员工资;
82。按部门分组,并列出部门名称和各部门员工人数。
选择及其所在,计数(e.empno)从EMP E系D
在e.deptno = d.deptno
组及其所在;
选择d.deptno,及其所在,温度C
从(SELECT DEPTNO,计数(e.empno)C从EMP E组e.deptno)
在temp.deptno = d.deptno;
83。平均工资超过2000的部门数目和平均工资。
选择DEPTNO,AVG(SAL)的雇员平均工资(SAL)> 2000;
84、指非销售人员和同一工作人员的月销售工资之和,从事同一工作的员工月工资大于5000,按月工资总额排序。
选择工作,和(SAL)苏从EMP job'salesman'group工作地方的总和> > 5000(SAL)以苏;
选择temp.job,总和(温度。Sal)的
从(选择工作,萨尔从EMP E where'salesman'temp工作)
集团通过temp.job
有和(温度)>5000
按s顺序;
85。平均工资最高的部门工资
选择最大(AVG(SAL))的雇员工资;
86。询问所有雇员人数高于雇员人数7654的信息
SELECT * FROM EMP萨尔>(选择萨尔从EMP在EMPNO = 7654);
87。要求比7654更高的薪水,和7788的同一职位的雇员。
从EMP中选择*
在萨尔>(选择萨尔从EMP在EMPNO = 7654)
工作=(选择工作从EMP在EMPNO = 7788);
88。询问最低工资的员工的姓名、工作和工资。
选择不工作,萨尔从EMP萨尔=(选择min(SAL)从);
89。询问部门名称、部门雇员人数、该部门的平均工资以及该部门最低收入雇员的姓名。
选择及其所在,温度,温度,e.ename
来自D部,
(选择多种计数(EMPNO)C,AVG(SAL),min(SAL)m),
EMP E
在d.deptno = temp.deptno和e.sal =温度。M;
选择d.deptno,temp.dname,温度,温度,e.ename,e.sal
从
(选择及其所在,计数(e.empno)C,AVG(e.sal),min(e.sal)m
从E,D部
在e.deptno = d.deptno
组及其所在)温度,
EMP E,
系D
在M = e.sal温度。
和temp.dname =及其所在;
90。各部门最低工资员工信息
从萨尔所在的EMP中选择*(从EMP组中选择MIN);
从电磁脉冲中选择*,其中任意一个(从EMP组中选择min);
SELECT * FROM
(选择min(SAL)的工资从EMP M组)温度,
EMP E
在e.sal M =温度;
91。例90,最低的(小)的员工工资大于子查询条件。
从EMP中选择*,从EMP组中选择min(萨尔);
从EMP中选择萨尔(从EMP组中选择最小(最小));
92。例90,最高(大)在查询条件的员工信息较小。
从电磁脉冲中选择*,从EMP组中选择min(萨尔);
从EMP中选择萨尔,从EMP组中选择max(min(萨尔));
93。例90,最高(大)在查询条件的工资信息
从电磁脉冲中选择*,在所有EMP中选择min(萨尔);
从EMP中选择萨尔(从EMP组中选择max(min));
94。例90,最低的(小)在查询条件的员工信息较小。
从电磁脉冲中选择*,在所有脉冲区中选择min(萨尔);
从EMP萨尔中选择*(从EMP组中选择最小(最小));
95。在20部门找没有奖金的员工信息
SELECT * FROM EMP在(Sal,NVL(通讯,1))在(选择萨尔,NVL(NVL)= 20);
SELECT * FROM EMP在表20和通信是无效的;
96。联合运算符返回由两个查询选择的所有非重复行。
选择从EMP UNION SELECT DEPTNO上从部;
97。所有操作都符合由两个查询选择的所有行,包括重复行
选择上从EMP联盟所有部门的选择上;
98。交叉运算符只返回两个查询的行。
选择上从EMP相交的部门选择表;
99。减号运算符只返回第一个查询选择的行,但不由第二个查询选择,也就是说,第二个查询中排除的行将导致第一个查询结果。
选择上从部负选择从EMP表;