高级查询练习
复制
create table empployee_demo(
empno
number(
4)
not null primary
key,
ename varchar2(
10)
not null unique,
job varchar2(
9),
mgr
number(
4),
hiredate
date default sysdate,
sal
number(
7,
2)
check(sal>=
500 and sal<=
10000),
comm
number(
7,
2),
deptno
number(
2)
)
select deptno,
avg(sal) avgsal
from employee
where job =
'CLERK'
group by deptno
having avg(sal)>
1000
select sal
from employee
where job !=
'saleman'
group by job
having sum(sal) >
5000
order by sal;
select deptno,
sum(sal),
avg(sal)
from employee
group by deptno
CREATE table STUDENT2(
STUNO
CHAR(
4)
not null primary
KEY,
STUNAME VARCHAR2(
20),
GENDER
CHAR(
2),
JAVASCORE
INTEGER,
ORACLESCORE
INTEGER
);
INSERT INTO STUDENT2
VALUES(
'1000',
'JAMES',
'男',
88,
78);
INSERT INTO STUDENT2
VALUES(
'1001',
'JACK',
'男',
86,
79);
INSERT INTO STUDENT2
VALUES(
'1002',
'ANDY',
'女',
76,
78);
INSERT INTO STUDENT2
VALUES(
'1003',
'SAMMY',
'女',
77,
76);
select avg(javascore),
avg(oraclescore),gender
from student2
group by gender
复制
create table employee
as select *
from scott.emp;
create table department
as select *
from scott.dept;
create table salgrade
as select *
from scott.salgrade;
EMPNO NUMBER(4)
ENAME VARCHAR2(10) Y
JOB VARCHAR2(9) Y
MGR NUMBER(4) Y
HIREDATE DATE Y
SAL NUMBER(7,2) Y
COMM NUMBER(7,2) Y
DEPTNO NUMBER(2) Y
DEPTNO NUMBER(2)
DNAME VARCHAR2(14) Y
LOC VARCHAR2(13) Y
GRADE NUMBER Y
LOSAL NUMBER Y
HISAL NUMBER Y
select *
from employee e
left join department d
on e.deptno = d.deptno
where sal<
4000 and job !=
'CLERK' and loc =
'NEW YORK'
select *
from employee e
left join department d
on e.deptno = d.deptno
where sal
between 2000 in 4000 and loc =
'CHICAGO' and extract(
year from hiredate) =
1981
select ename,e.deptno,dname,loc
from employee e
left join department d
on e.deptno = d.deptno;
select ename,e.deptno,dname,loc
from employee e
left join department d
on e.deptno = d.deptno
where e.deptno =
10
select e.*,,d.dname,d.loc
from employee e
left join department d
on e.deptno = d.deptno
where sal <
3000 and (job =
'CLERK' or job =
'SALMAN')
and loc =
'CHICAGO'
select e.*,
decode(grade,
1,
'苦力',
2,
'临时工',
'其他')
from employee e,salgrade
where sal
between losal
and hisal
select e.name 员工,boss.name 上司
from employee e,employee boss
where e.mgr = boss.empno
转载于:https://www.cnblogs.com/chaoyang123/p/11549401.html
相关资源:韩顺平oracle学习笔记