小弟要考试了,大家来帮我做做呀!感激不尽!

[复制链接]
查看11 | 回复4 | 2014-9-12 22:37:43 | 显示全部楼层 |阅读模式
基于下面的两个范例数据表,书写SQL语句。
EMP(empno,ename,job,mgr,hiredate,sal,comm.,deptno);
DEPT(deptno,dname,loc);
1、按照雇员编号升序显示所有雇员的信息;
2、查询没有奖金的所有雇员名称及其部门信息;
3、查询姓名以M开头的所有雇员的姓名、生日及部门;
4、查询1978年出生的所有雇员信息;
5、查询所有部门的雇员人数;
6、查询雇员人数超过5个的部门名称。
7、查询所有雇员的名称及其最终工资。
8、查询没有雇员的部门名称
9、显示每个雇员的名称及拟调整后工资,调整工资原则:原工资高于2000的加100,原工资低于2000的加200;
10、插入一个雇员信息到EMP表;(雇员信息自拟);
11、修改编号为7369的雇员信息,将其生日改为1975年10月3日;
12、删除30号部门及其下的所有雇员;
回复

使用道具 举报

千问 | 2014-9-12 22:37:43 | 显示全部楼层
这些是很基础的SQL啊!呵呵
4、查询1978年出生的所有雇员信息;这个我觉得查不出来,你给的表没有生日字段!
回复

使用道具 举报

千问 | 2014-9-12 22:37:43 | 显示全部楼层
老兄帮我做一下吧!小弟跪谢了!
回复

使用道具 举报

千问 | 2014-9-12 22:37:43 | 显示全部楼层
我已经工作了,这是单位组织的培训,才三天,所以还不会做,行行好,帮我做做吧
回复

使用道具 举报

千问 | 2014-9-12 22:37:43 | 显示全部楼层
EMP(empno,ename,job,mgr,hiredate,sal,comm.,deptno);
DEPT(deptno,dname,loc);
1、按照雇员编号升序显示所有雇员的信息;
select * from emp order by empno asc
2、查询没有奖金的所有雇员名称及其部门信息;
select e.ename,d.* from emp e,dept d where e.deptno=d.deptno and
nvl(comm,0) =0
3、查询姓名以M开头的所有雇员的姓名、生日及部门;
select e.ename,e.birthday,d.dname --假设生日字段为birthday
from emp e,dept d where e.deptno=d.deptno
and e.ename like 'M%'
4、查询1978年出生的所有雇员信息;--假设生日字段为birthday
select * from emp where birthday between to_date('1978','yyyy') and to_date('1979','yyyy')
5、查询所有部门的雇员人数;
select deptno,count(*)
from emp
group by deptno
6、查询雇员人数超过5个的部门名称。
select d.dname
from emp e,dept d
where e.deptno=d.deptno
group by d.dname
having count(*)>5
7、查询所有雇员的名称及其最终工资。
select ename,sal*(1+nvl(comm,0)) total_sal
from emp
8、查询没有雇员的部门名称
select d.dname
from dept d,emp e
where d.deptno(+)=e.deptno
and d.deptno is null
9、显示每个雇员的名称及拟调整后工资,调整工资原则:原工资高于2000的加100,原工资低于2000的加200;
select ename,sal+(case when sal>2000 then 100 when sal select to_date('1978','yyyy') from dual;
TO_DATE('1978','YYYY')
----------------------
1978-12-1
哦, 起始时间变成了1978-12-1, 看来1978-11-30的都不是78年生的了, 注意现在的时间是12月
最开始回答的答案只有在1月份使用的时候才能无意中得到正确的结果
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行