oracle试题及答案

更新时间:2024-01-15 17:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 用sqlplus连接数据库时,为什么会出Oracle not available错误? Oracle server(即通常所说的数据库)是否启动,ORACLE_SID是否正确设置。

2. 找出员工的姓中(last_name)第三个字母是a的员工名字 select last_name from s_emp where last_name like '_ _a%';

3. 找出员工名字中含有a和e的

select first_name from s_emp where first_name like '%a%' and first_name like '%e%'; 比较:

select first_name from s_emp where first_name like '%a%e%';

此种方式查询出来的数据,只是先出现“a”然后出现“e”的数据表记录。总的记录条数可能少于第一种方式的。

4. 找出所有有提成的员工,列出名字、工资、提出,显示结果按工资从小到大,提成从小到大.

select first_name,salary,commission_pct from s_emp where commission_pct is not null order by salary desc,commission_pct;

5. 42部门有哪些职位

select distinct title from s_emp where dept_id=42;

6. 哪些部门不是Sales部

select id,name,region_id from s_dept where name <> 'Sales'; 注意大小写!

7. 显示工资不在1000到1550之间的员工信息:名字、工资,按工资从大到小排序。

select first_name,salary from s_emp where salary not between 1000 and 1550 order by salary desc;

需要使用到not between and 函数,不能使用 salary > 1550 and salary <1000

8. 显示职位为Stock Clerk和Sales Representative,年薪在14400和17400之间的员工的信息:名字、职位、年薪。

select first_name,title,salary*12 ann_sal from s_emp where title in ('Stock Clerk','Sales Representative') and salary between 1200 and 1450;

注意把年薪的范围换算成了每月的工资salary,而不是salary*12。以提高查询效率。

9. 解释select id,commission_pct from s_emp where commission_pct is null和select id,commission_pct from s_emp where commission_pct = null的输出结果。

is null判断是否为空,= null判断某个值是否等于null,null=null和null<>null都为null。

第一条语句有输出结果,就是没有提成的ID号。 第二条语句没有输出。

10.select语句的输出结果为 select * from s_dept; select * from s_emp; select * from s_region; select * from s_customer; ……

当前用户有多少张表,结果集有多少条记录。

select 'select * from '||table_name||';' from user_tables;

11.判断select first_name,dept_id from s_emp where salary > '1450'是否抱错,为什么?

隐式数据类型转换

? (CORE-E-002)综合练习 ?

定义

CORE-F-006——CORE-F-008的综合练习:

1. 改变NLS_LANG的值,让select to_char(salary*12,’L99,999.99’) from s_emp 输出结果的货币单位是¥和$

setenv NLS_LANG 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK' setenv NLS_LANG 'AMERICAN_AMERICA.US7ASCII'

L99,999.99和L00,000.00的区别:99,999.99只显示有效位数;00,000.00的方式默认显示位数大于有效位数,以0填充。

2. 列出每个员工的名字,工资、涨薪后工资(涨幅为8%),元为单位进行四舍五入

select first_name,salary,round(salary*1.08) from s_emp;

3. 找出谁是最高领导,将名字按大写形式显示

select upper(first_name) from s_emp where manager_id is null;

4. Ben的领导是谁(Ben向谁报告)。

select e1.first_name from s_emp e1,s_emp e2 where e2.manager_id = e1.id and e2.first_name = 'Ben'; 用子查询也可以实现,如下:

select first_name from s_emp e1,s_emp e2 where id = (select manager_id from s_emp where first_name = 'Ben');

5. Ben领导谁。(谁向Ben报告)。

select e1.first_name from s_emp e1,s_emp e2 where e1.manager_id = e2.id and e2.first_name = 'Ben';

6. 哪些员工的工资高于他直接上司的工资,列出员工的名字和工资,上司的名

字和工资

7. 哪些员工和Biri(last_name)同部门

8. 哪些员工跟Smith(last_name)做一样职位

9. 哪些员工跟Biri(last_name)不在同一个部门

10.哪些员工跟Smith(last_name)做不一样的职位

11.显示有提成的员工的信息:名字、提成、所在部门名称、所在地区的名称

12.显示Operations部门有哪些职位

13.整个公司中,最高工资和最低工资相差多少

14.提成大于0的人数

15.显示整个公司的最高工资、最低工资、工资总和、平均工资,保留到整数位。

16.整个公司有多少个领导

17.列出在同一部门入职日期晚但工资高于其他同事的员工:名字、工资、入职日期

(CORE-E-003)综合练习 ?

定义

CORE-F-009——CORE-F-011的综合练习:

1. 各个部门平均、最大、最小工资、人数,按照部门号升序排列

2. 各个部门中工资大于1500的员工人数

3. 各个部门平均工资和人数,按照部门名字升序排列

4. 列出每个部门中有同样工资的员工的统计信息,列出他们的部门号,工资,

人数

5. 该部门中工资高于1000的员工数量超过2人,列出符合条件的部门:显示

部门名字、地区名称

6. 哪些员工的工资,高于整个公司的平均工资,列出员工的名字和工资(降序)

7. 哪些员工的工资,介于32和33部门(33高些)平均工资之间

8. 所在部门平均工资高于1500的员工名字

9. 列出各个部门中工资最高的员工的信息:名字、部门号、工资

10.最高的部门平均工资值的是多少

11.哪个部门的平均工资是最高的,列出部门号、平均工资。

12.哪些部门的人数比32号部门的人数多

name='Tony');

所以delete lm_student可以成功。

5. 在学生选课表上添加两个字段学生名字和课程名称并填上值。 Alter table lm_sc

Add (sname varchar2(20), Cname varchar2(20));

Update lm_sc sc set sname=(

Select name from lm_student s where s.id = sc.sid), cname=

Select name from lm_course c where c.id = sc.cid);

6. 若有两门课程的成绩低于60分将其删除。 Delete from lm_student where id in (

Select sid from lm_sc where grade < 60 group by sid having count(*) > 1)

Delete from lm_student s where id = (select sid from stu_sc sc where s.id = sc.cid group by s.id having count(*) > 1);

7. 哪个学生选了所有的课程。

Select id,name from lm_student s where not exists( Select * from lm_course c where not exists(

Select * from lm_sc where sid = s.id and cid = c.id));

Select id,max(name) from lm_students s ,lm_sc sc where s.id = sc.sid group by s.id having count(cid) = (select count(*) from lm_course);

(CORE-E-006)综合练习

? 定义

CORE-E-006的综合练习:

1. 补充前一天的sql脚本,在学生表、课程表、学生选课表上添加索引。学生表的姓名字段、出生日期字段,课程表上的学分字段,学生选课表的成绩字段。

2. 哪些地区没有员工。

3. 42部门员工的纳税情况,税率如下: 0.00 ——1999.99

0.00

2000.00——3999.99 4000.00——5999.99 6000.00——7999.99 8000.00——9999.99

0.09 0.20 0.30 0.40

0.42

10000.00——11999.99

12000.00——139999.99 0.44 140000.00 or greater

0.45

4. 从emp表和dept表中完成如下查询:各个部门不同职位的工资总和?输出如下:

JOB DEPT_10 DEPT_20 DEPT_30 --------- ---------- ---------- ----------

CLERK 1 2 1 SALESMAN 4 PRESIDENT 1

MANAGER 1 1 1 ANALYST

2

5. 有一个权限表XT_QXMX:(权限序号,权限名称)

QXXH QXMC 1 发文填写 2 发文审批 3 收文填写

4 收文审批

权限-人员对应表XT_QXRY,如果某人有某个权限,则在此表有条记录(序号,权限序号,用户名称) XH QXXH YHMC 1 2 张三 2 3 张三

(张三有两个权限,发文审批和收文填写)

写一个查询:列出张三有哪些权限,同时列出所有的权限.查询结果如下: QXXH QXMC 是否有此权限 1 发文填写 false 2 发文审批 true 3 收文填写 true 4 收文审批 false 6. 数据如下:

日期 事务所 标章NO.(varchar2) 12/12 北京 1 12/12 北京 2 12/12 北京 3 12/13 河北 51 12/13 河北 52 12/13 河北 53 12/13 河北 60 12/13 河北 70

输出结果如下: 只要日期和事务所一样,标章号连续就把记录合并 日期 事务所 标章NO.(varchar2) 12/12 北京 1-3 12/13 河北 51-53 12/13 河北 60 12/13 河北 70

(CORE-E-007)项目实战 ?

定义

CORE-E-007的项目实战:

实验室管理系统需要说明

该系统提供如下功能模块:管理员管理、资费管理、用户管理、帐务查询、

账单查询、用户自服务。有两类人群使用该系统:管理员和用户,管理员可以使用管理员管理、资费管理、用户管理、帐务查询、账单查询功能模块,用户可以使用用户自服务模块。管理员包含的信息有:管理员编码、管理员姓名、登录名、登录密码、联系电话、E-Mail、注册日期、注销日期。管理员有多人,每人可以使用多个功能模块。每个功能模块可以被多名管理员使用。

有用户管理权限的管理员可以管理用户,用户(即为帐务帐号)包含如下信

息:主键编码、用户姓名(真实姓名)、用户账务帐号(用户登录名)、用户账务帐号密码(用户登录密码)、账务帐号状态(0:开通;1:暂停;2:删除)、联系电话、email、开通日期、暂停日期、付款方式(0:现金;1:银行转帐;2:邮局汇款;3:其他)、职业、省份、性别、公司名称、地址、邮编。一个用户可以在多台Solaris机器上开通帐户(即为业务帐号),实现远程登录。根据使用的时间,进行收费服务。资费政策为开通服务需要缴纳月租费10元,其它标准如下:

资费标准 2.45元/20小时 4.95元/40小时 9.95元/100小时 19元/200小时 业务帐号包含的信息为:主键编码、用户业务帐号(OS系统帐号)、用户业务帐号密码(操作系统密码)、服务器编码(机器IP地址)、业务帐号状态(0:正常;

0.01元/分钟 超出部分使用费 1:暂停;2:删除)、资费编码、开通日期、暂停日期。

1. 根据以上说明画出E-R图并设计出表结构,并设计索引。 2. 用DDL语句实现表结构、索引,其中主键用sequence实现、 3. 完成数据编辑。 4. 每个管理员有哪些权限? 5. 哪些管理员有所有权限? 6. 没有某项权限的管理员有哪些? 7. 用户选择了哪些业务?

8. 用户选择的业务的资费情况如何?

本文来源:https://www.bwwdw.com/article/m6io.html

Top