收藏 分享(赏)

数据库习题1附答案.doc

上传人:hyngb9260 文档编号:5154066 上传时间:2019-02-10 格式:DOC 页数:5 大小:46.50KB
下载 相关 举报
数据库习题1附答案.doc_第1页
第1页 / 共5页
数据库习题1附答案.doc_第2页
第2页 / 共5页
数据库习题1附答案.doc_第3页
第3页 / 共5页
数据库习题1附答案.doc_第4页
第4页 / 共5页
数据库习题1附答案.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、创建 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 commsal;4.找出佣金高于薪金的 60%的

2、员工 .select * from myemp where comm(sal*0.6);5.找出部门 10 中所有经理(MANAGER)和部门 20 中所有办事员(CLERK)的详细资料.select * from myemp where (deptno=10 and job=MANAGER)or(deptno =20 and job=CLERK)6.找出部门 10 中所有经理(MANAGER),部门 20 中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于 2000 的所有员工的详细资料.select * from myemp where (deptno=10 and jo

3、b=MANAGER)or (deptno =20 and job=CLERK)or(job!=MANAGER and job!=CLERKand sal=2000 )7.找出收取佣金的员工的不同工作.select job from myemp where comm is not null;8.找出不收取佣金或收取的佣金低于 100 的员工.select ename from myemp where comm is null or comm=13;11.以首字母大写的方式显示所有员工的姓名.select initcap(ename) from myemp12.显示正好为 5 个字符的员工的姓名.

4、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 myemp15.显示所有员工的姓名,用 a 替换所有“A“select replace(ename,A,a) from myemp 16.显示满 10 年服务年限的员工的姓名和受雇日期.select ename,hiredate from myemp where (

5、to_char(sysdate,yyyy) -to_char(hiredate,yyyy)1017.显示员工的详细资料,按姓名排序.select * from myemp order by ename ; 18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.select ename,hiredate from myemp order byhiredate ;19.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.select ename,job,sal from myemp order by job desc ,sal desc20.显示所有员工的姓

6、名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.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 myem

7、p 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(months_between(sysdate,hiredate)/

8、12,0)*12)as 月,round(months_between(sysdate,hiredate)-trunc(months_between(sysdate,hiredate)* to_char(last_day(hiredate),dd),0)as 日 from myemp现有 2 个表,一个 t_appinfo 即应用信息表,另一个 t_download 即用户下载记录表.t_download 表中的字段:down_iddown_datelog_idt_appinfo 表中的字段app_idprice_idapp_dateapp_name1.现要查询下载表里 3 月 7 日 15 点

9、以后的下载记录前 5 条,按时间倒序排列.(下载记录表里有 down_date 这个字段,时间格式是 2012-3-7 00:00:00).2.查询昨天被下载的所有应用的价格和上传时间. (应用表里有 price_id 和 app_date 这 2个字段)3.查询下载记录表里所有下载量大于 10 次的用户(下载表里有 log_id 表示用户)4.查询应用表里所有名字中含有 中字的应用.(应用表里有 app_name 这个字段表示名字)5.查询应用表中 app_id 字段第五位和第八位的数字(app_id 是一串数字)三、根据表和提供的数据进行操作。1.删除重复记录(当表中无主键时) creat

10、e table TESTTB( bm varchar(4), mc varchar2(20) ) insert into TESTTB values(1,aaaa); insert into TESTTB values(1,aaaa); insert into TESTTB values(2,bbbb); insert into TESTTB values(2,bbbb); 2.bookEnrol 是用来登记的,不管你是借还是还,都要添加一条记录。请写一个 SQL 语句,获取到现在状态为已借出的所有图书的相关信息,ID 为 3 的 java 书,由于已归还,所以不要查出来。题目:要求查询结果应

11、为:(被借出的书和被借出的日期)create table book( id int , name varchar2(30), PRIMARY KEY (id) ) insert into book values(1,English); insert into book values(2,Math); insert into book values(3,JAVA); create table bookEnrol( id int, bookId int, dependDate date, state int, FOREIGN KEY (bookId) REFERENCES book(id) ON

12、DELETE CASCADE ) insert into bookEnrol values(1,1,to_date(2009-01-02,yyyy-mm-dd),1); insert into bookEnrol values(2,1,to_date(2009-01-12,yyyy-mm-dd),2); insert into bookEnrol values(3,2,to_date(2009-01-14,yyyy-mm-dd),1); insert into bookEnrol values(4,1,to_date(2009-01-17,yyyy-mm-dd),1); insert into bookEnrol values(5,2,to_date(2009-02-14,yyyy-mm-dd),2); insert into bookEnrol values(6,2,to_date(2009-02-15,yyyy-mm-dd),1); insert into bookEnrol values(7,3,to_date(2009-02-18,yyyy-mm-dd),1); insert into bookEnrol values(8,3,to_date(2009-02-19,yyyy-mm-dd),2);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 数据库

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报