数据库习题1附答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建EMP_INFO表完成下列练习,表的结构说明如下

EMPNO 员工号

EMPNAME 员工姓名

JOB 工作

MGR 上级编号

HIREDATE 受雇日期

SAL 薪金

COMM 佣金

DEPTNO 部门编号

1.选择部门30中的所有员工.

select*from myemp where deptno=30;

2.列出所有办事员(CLERK)的姓名,编号和部门编号.

select ename,empno,deptno from myemp where job= 'CLERK';

3.找出佣金高于薪金的员工.

select*from myemp where comm>sal;

4.找出佣金高于薪金的60%的员工.

select*from myemp where comm>(sal*;

5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.

select*from myemp where(deptno=10and job='MANAGER')or(deptno=20and job='CLERK')

6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办

事员但其薪金大于或等于2000的所有员工的详细资料.

select*from myemp where(deptno=10and

job='MANAGER')or(deptno=20and

job='CLERK')or(job!='MANAGER'and job!='CLERK'and sal>=2000)

7.找出收取佣金的员工的不同工作.

select job from myemp where comm is not null;

8.找出不收取佣金或收取的佣金低于100的员工.

select ename from myemp where comm is null or comm<100;

9.找出各月倒数第3天受雇的所有员工.

select ename from myemp where

last_day(hiredate)-hiredate=2

10.找出早于12年前受雇的员工.

select*from myemp where

(to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy'))> =13;

11.以首字母大写的方式显示所有员工的姓名.

select initcap(ename)from myemp

12.显示正好为5个字符的员工的姓名.

select ename from myemp where length(ename)=5;

13.显示不带有"R"的员工的姓名.

select ename from myemp where ename not

like='%r%'

14.显示所有员工姓名的前三个字符.

select substr(ename,0,3)as s from myemp

15.显示所有员工的姓名,用a替换所有"A"

select replace(ename,'A','a')from myemp

16.显示满10年服务年限的员工的姓名和受雇日期.

select ename,hiredate from myemp where

(to_char(sysdate,'yyyy')

-to_char(hiredate,'yyyy'))>10

17.显示员工的详细资料,按姓名排序.

select*from myemp order by ename;

18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.

select ename,hiredate from myemp order by hiredate;

19.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.

select ename,job,sal from myemp order by job desc,sal desc

20.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最

早年份的员工排在最前面.

select

ename,to_char(hiredate,'yyyy'),to_char(hiredate,'mm ')from myemp order by

to_char(hiredate,'mm'),to_char(hiredate,'yyyy')

21.显示在一个月为30天的情况所有员工的日薪金,忽略余数.

select ename,trunc(sal/30,0)from myemp

22.找出在(任何年份的)2月受聘的所有员工。

select ename,trunc(sal/30,0)from myemp

23.对于每个员工,显示其加入公司的天数.

select ename,(sysdate-hiredate)from myemp;

24.显示姓名字段的任何位置包含"A"的所有员工的姓名.

select ename from myemp where ename like'%A%'

25.以年月日的方式显示所有员工的服务年限

select

ename,trunc((months_between(sysdate,hiredate))/12,0 )as年,

trunc(((months_between(sysdate,hiredate)-(trunc((mo nths_between(sysdate,hiredate))/12,0)*12))))as月,

round((months_between(sysdate,hiredate)-trunc(month s_between(sysdate,hiredate)))

*to_char(last_day(hiredate),'dd'),0)as日from myemp

现有2个表,一个t_appinfo即应用信息表,另一个t_download即用户下载记录表.

t_download表中的字段:

down_id

down_date

log_id

t_appinfo表中的字段

app_id

price_id

app_date

app_name

1.现要查询下载表里3月7日15点以后的下载记录前5条,按时间倒序排列.(下载记

相关文档
最新文档