数据库面试题之PL/SQL面试题

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 225 收藏 0 点赞 0 评论 0

第一题:

表结构说明:
create table employee(
id number(10) not null, -- 员工工号 
salary number(10,2) default 0 not null, -- 薪水
name varchar2(24) not null -- 姓名
);

1.创建序列seq_employee,该序列每次取的时候它会自动增加,从1开始计数,不设最大值,并且一直累加,不循环。
2.写一个PL/SQL块,插入表user.employee中100条数据。插入该表中字段id用序列seq_employee实现,薪水和姓名字段可以任意填写。
3.写一个语句块,在语句块中定义一个显式游标,按id升序排列,打印表employee中前十条数据。
4.创建存储过程p_employee,输入员工薪水范围,返回员工工号、姓名、薪水结果集,结果集按员工薪水升序排列。
5.创建函数f_employee实现更新员工薪水的功能,将薪水低于2000且姓wang的员工薪水加5%,其他不变,更新成功则返回0,否则返回1。
6.写一个匿名语句块,用于执行函数f_employee,并打印执行该函数的结果。
7.创建存储过程p_create_emp,用于判断表employee是否存在,如果存在则删除该表。
8.写一个匿名语句块,用于执行存储过程p_create_emp。

第二题:

Wages 表
-------------------------------------------
Emp_id       | 基本工资| 工龄工资|
-------------------------------------------
1                | 1.00        | 1.00       |
-------------------------------------------
2                | 1.00        | 2.00       |
-------------------------------------------
3                | 1.00        | 3.00       |
-------------------------------------------
4                | 1.00        | 4.00       |
-------------------------------------------

得到如下结果:


Emp_id       | 基本工资| 工龄工资       | 合计       | 名次
------------------------------------------------------------------
1            | 1.00    | 1.00           |2.00        | x
------------------------------------------------------------------
2            | 1.00    | 2.00           |3.00        | y
------------------------------------------------------------------
3            | 1.00    | 3.00           |4.00        | ..
------------------------------------------------------------------
4            | 1.00    | 4.00           |5.00        | ..
------------------------------------------------------------------



第三题:

3、有如下信息:
起始地 目的地 距离(公里)
A B 1000
A C 1100
A D 900
A E 400
B D 300
D F 600
E A 400
F G 1000
C B 600

请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)以及公里数。

评论列表
文章目录