下面涉及到的两个表:EMP DEPT
1.建表:
create table student(
sid number not null primary key,
sname varchar2(30) not null,
sage number,
address varchar2(100),
tel number
);
2.插入信息
insert into student(sid,sname,sage,address,tel) values(1,'张三',20,'天津'.12563698874)
insert into student(sid,sname,tel) values(2,'李四',12334)
3.查询信息
select * from student
4.添加列
alter table student modify(address varchar2(50)) //单位只能从小转到大
5.删除列
alter table student drop (sname)
6.删除表
drop table student
7.重命名表
rename student to student1
8.修改emp表的empno值为7369为7100
//DML语言:数据操作语言 insert update delete
select * from emp
update emp set empno=7100 where empno=7369
9.查询职位为salesman的员工编号、经理编号、工作地点
select empno,mgr,loc,job from emp e,dept d where job='smlesman'
and e.deptno=d.deptno
10,查询部门编号不在10部门的员工姓名、部门编号
select ename,e.deptno,loc from emp e,dept d where e.deptno<>10
11.连接操作符
select ename || job emply from emp
12.削除重复行
select distinct deptno from emp
13.给工资加300再翻倍
select ename,empno,sal,2*(sal+300) from emp
14.查询工资在1000到1500之间的员工姓名,部门编号及工资
select ename,deptno,sal from emp where sal>=1000 and sal<=1500
15.查询员工编号在7369,7521和7698的员工编号,姓名,资金
select empno,ename,comm from emp where empno in(7369,7521,7698)
16.查询名字中包含s的员工姓名,编号,工作
select ename,empno,job from emp where ename like '%s%'
17.查询员工姓名以W开头的员工姓名
select ename from emp where ename like 'w%'
18.查询员工姓名倒数第二个字符为T的员工姓名
select ename from emp where ename like '%T_'
19.查询奖金为空的员工姓名,奖金
select ename,comm from emp where comm is null
20.查询工作不在clerk、manager、analyst的员工姓名、工作和部门编号
select ename,job,deptno,from emp where job not in('clerk','manager','analys')
21.查询工作等于salesman或者president和工资大于1500的员工编号,姓名,工作
select empno,ename,job from emp where job='salesman' or job='president' and sal>1500
22.select 语句的六个执行顺序:select from where having group by order by
23.查询所有雇员姓名,部门编号,部门名称,包括没有员工的部门也要显示出来
select ename,e.deptno,dname from emp e,dept d where e.deptno(+)=d.deptno
24.查询每个员工的姓名和直接上级姓名
select e.ename 员工姓名, m.ename 经理姓名 from emp e,emp m where e.mgr=m.empno
25.(交叉连接)查询员工姓名,编号,工作地点
select ename,empno,loc from emp cross join dept
26.查询部门编号为20的员工姓名,部门名称以及工资
select ename,dname,loc from emp join dept on emp.deptno=dept.deptno where emp.deptno=20
27.使用左连接,查询每个员工的姓名,经理姓名,没有经理的King也要显示出来
select e.ename,m.ename from emp e left outer join emp m on e,mgr =m.empno
28.使用右连接,查询每个员工的姓名,经理姓名,没有经理的King也要显示出来
select e.ename,m.ename from emp e right outer join emp m on e.mgr=m.empno
29.查询部门20的员工,每个月的工资总和及平均工资
select avg(sal),sum(sal) from emp where deptno=20
30.查询工作在chocago的员工人数,最高工资和最低工资
select count (empno) ,max (sal),min(sal) from emp,deptno where loc='chicago' and emp.deptno=dept.deptno
31.查询员工表中一共有几种岗位类型
select count(distinct job) from emp
32.查询每个部门每个岗位的工资总和
select sum (sal) from emp group by deptno,job
33.查询是经理的员工姓名和工资
select sum(sal) from emp where empno in(
select distinct mgr from emp
)
34.查询部门编号不为10,且工资比10部门所有员工工资高的员工编号,姓名,职位,工资
Select empno,ename,job,sal from emp where sal>all(
select sal from emp where deptno=10
)and deptno<>10
35.查询出和1981年入职的任意一个员工的部门和职位完全相同员工姓名、部门、职位、入职日期、不包括1981年入职员工
select ename,deptno,job,hiredate from emp where (deptno,job) in (
select deptno,job from emp where hiredate(81)
)
36.查询比自己职位平均工资高的员工姓名、职位、部门名称、值为平均工资
select ename,e.job,d.dname,a.avgsal from emp e,dept d,(
select job,avg(sal) avgsal from group by job
)a e.job=a.job and e.sal>a.avgsal