sql简单查询语句

create table dept(
deptno number primary key,
dname varchar(20),
loc varchar(20)
);
create table emp2(
empno number(4),
ename varchar(20),
job varchar2(20),
mgr varchar2(20),
hiredate date,
sal number(6,2),
comm number(4,2),
deptno number references dept(deptno)
);
alter session set nls_date_format='yyyy_mm_dd';
INSERT INTO 'DEPT' VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
insert into emp2 VALUES (7369, 'SMITH', 'CLERK', 7902, '17-12月-1980', 800, NULL, 20);
INSERT INTO `EMP2` VALUES (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, NULL, 20);
INSERT INTO EMP2 VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);
INSERT INTO EMP2 VALUES (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);
INSERT INTO EMP2 VALUES (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20);
INSERT INTO EMP2 VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);
INSERT INTO EMP2 VALUES (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30);
INSERT INTO EMP2 VALUES (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10);
INSERT INTO EMP2 VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, NULL, 20);
INSERT INTO EMP2 VALUES (7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10);
INSERT INTO EMP2 VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);
INSERT INTO EMP2 VALUES (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, NULL, 20);
INSERT INTO EMP2 VALUES (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30);
INSERT INTO EMP2 VALUES (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20);
INSERT INTO EMP2 VALUES (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10);
select empno,ename,job from emp2;
01.查询每个雇员的编号、姓名、职位。
select empno,ename,job from emp2;
02.查询每个雇员的职位,职位。
 select job from emp2;
03.查询每个雇员的职位,使用DISTINCT消除掉显示的重复行记录。
select distinct job from emp2;
04.计算出每个雇员的基本年薪,同时查询出雇员的编号、姓名。
select empno,ename,(sal*12) +nvl(comm,0) from emp2;
05.每个雇员每个月公司会补贴饭食200元,交通补助300元,计算年薪(年薪=(工资+奖金)*12)。
select empno,ename,((sal+500)*12) +nvl(comm,0) from emp2;
06.查询基本工资高于2000的全部雇员信息。
select *from emp2 where sal>2000;
07.查询出smith的信息。
select *from emp2 where ename='SMITH';
08.查询出所有不是CLERK的详细信息。
select * from emp2 where job  not in('CLERK');
09.查询出所有销售人员(SALESMAN)的基本信息,并且要求销售人员的工资高于1300。
select * from emp2 where job='SALESMAN'and sal>1300;
10.查询出工资范围在1500~3000之间的全部雇员信息(包含1500和3000)。
select * from emp2 where sal>=1500 and sal<=3000;
11.查询出所有经理或者是销售人员的信息,并且要求这些人的基本工资高于1500。manager salesman
select * from emp2 where job in ('MANAGER','SALESMAN') and sal>1500;
12.要求查询出所有在1981年雇佣的雇员信息。
select * from emp2 where HIREDATE ='1981';
select * from emp2 where HIREDATE >='1981_01_01'and HIREDATE<='1982_01_01';
13.查询所有领取奖金的雇员信息(comm不为空)。
select * from emp2 where COMM is not null;
14.查询所有领取奖金高于100的雇员信息。
select * from emp2 where COMM >100;
15.查询出雇员编号是7369、7566、9999的雇员信息。
select * from emp2 where EMPNO in(7369,7566,9999);
16.查询出所有雇员姓名是以A开头的全部雇员信息。
select ENAME from emp2 where ENAME like 'A%';
17.查询出雇员姓名第二个字母是M的全部雇员信息。
select ENAME from emp2 where ENAME like '_M%';
18.查询出雇员姓名任意位置上包含字母A的全部雇员信息。
select ENAME from emp2 where ENAME like '%A%';
19.查询出所有雇员的信息,要求按照工资排序。
select * from emp2 order by sal;
20.要求查询所有雇员的信息,按照雇佣日期由先后排序。
select * from emp2 order by hiredate asc;
21.查询全部雇员信息,按照工资由高到低排序,如果工资相同,则按照雇佣日期由先后排序。
select * from emp2 order by sal desc,hiredate;
22.查询部门30中的所有员工。
select * from emp2 where deptno=30;
23.查询出所有办事员(CLERK)的姓名,编号和部门编号。
select ename,empno,deptno from emp2 where job ='CLERK';
24.查询出奖金高于薪金的员工。
select * from emp2 where nvl(comm,0)>sal;
25.查询出奖金高于薪金的60%的员工。
select * from emp2 where nvl(comm,0)>sal*0.6;
26.查询出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。
select * from emp2 where (job='MANAGER'and deptno=10)or(job='CLERK'and deptno =20);
27.查询出部门10中所有经理,部门20中所有办事员,既不是经理又不是办事员但其薪金大于或等于2000的所有员工的信息。
select * from emp2 where (job='MANAGER'and deptno=10)or(job='CLERK'and deptno =20)or(job not in ('MANAGER','CLERK') and sal>=2000);
28.查询出收取奖金的员工的不同工作
select job from emp2 where comm is not null group by job;
29.查询出不收取奖金或收取的奖金低于100的员工。
select ename from emp2 where nvl(comm,0)<100 or comm is null;
30.查询出不带有“R”的员工的姓名。
select ename from emp2 where ename not like '&R&';
31.查询出每个雇员的姓名、职位、领导姓名。
select a.ename,a.job,b.ename from emp2 a,emp2 b where a.empno=b.empno;
32.查询出所有员工的编号、姓名及其直接上级的编号、姓名,显示的结果按领导年工资的降序排列。
select a.empno,a.ename,b.empno,b.ename,b.sal from emp a join emp b on a.empno =b.mgr order by sal;
33.查询出在销售部(SALES)工作的员工姓名、基本工资、雇佣日期、部门名称。(不知道销售部编号)。
select a.ename,a.sal,b.dname,a.hiredate from emp a
join dept b on a.deptno =b.deptno where b.dname='SALES';
34.查询出所有员工的姓名、部门名称和工资。
select a.ename,a.sal,b.dname from emp2 a  join dept b on a.deptno=b.deptno;
35.查询出所有员工的年工资,所在部门名称,按年薪从低到高排序。
select dname,(sal*12) +nvl(comm,0) as nx from emp2 e,dept d where d.deptno=e.deptno order by nx ;
select e.ename,e.sal*12,d.dname from emp e ,dept d where e.deptno=d.deptno order by e.sal*12;
36.查询出某个员工的上级主管及所在部门名称,并要些主管中的薪水超过3000。
select distinct c.dname,b.dname.b.sal from emp a,dept c where a.mgr=n.empno and b.deptno=
37.查询出公司的最高和最低工资。
select max(sal),min(sal) from emp2;
38.查询出每个部门的人数、平均工资,只显示部门编号。
select deptno,count(empno),avg(sal) from emp2 group by deptno;
39.查询出每种职位的最高和最低工
select job,max(sal),min(sal) from emp2 group by job;
40.查询平均工资高于2000的职位信息,以及从事此职位的雇员人数、平均工资。
select count(job),avg(sal) deptno from emp2 group by job having avg(sal)>2000;
41查询出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。
select avg(e.sal),min(sal),max(sal),d.dname,d.deptno from emp2 e,dept d where e.deptno=d.deptno group  by deptno having count(deptno)>=1;
select avg(e.sal),min(sal),max(sal) from emp2 e,dept d where e.deptno=d.deptno group  by deptno having count(deptno)>=1;
42.查询出部门名称和这些部门的员工信息(数量、平均工资),同时列出那些没有员工的部门。

43.插入自己和左右同桌的信息
insert into emp2 values(1888,'lijia','clerk',6666,'2003_01_04',1000,100,20);
44.修改右边/左边同桌的信息(工资,奖金,雇佣日期)
update emp2 set sal=1111,comm=22,HIREDATE='1999_01_01' where ename='lijia';
45.删除自己的个人信息
alter table emp2 drop column lijia;
平均工资与工资总和
 select avg(sal),sum(sal) from emp2;
 技算有多少员工
 select count(*) from emp2;
 显示员工中的最高工资,最低工资
 select max(sal),min(sal) from emp2;
 显示最高工资员工中的工资,最低工资员工的姓名
select ename,sal from emp2 where sal=(select max(sal) from emp) or sal=(select min(sal) from emp);
 显示工资最高的员工的姓名与岗位
 select ename,job from emp2 where sal=(select max(sal) from emp2);
 显示工资高于平均工资的员工信息
 select * from emp where sal>(select avg(sal) from emp);
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值