oracle试题及答案

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

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_7ASCII'

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.哪些员工的工资高于他直接上司的工资,列出员工的名字和工资,上司的名

相关文档
最新文档