短实习--Oracle(练习)

下面涉及到的两个表: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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值