ORACLE企业面试编程题.doc

上传人:11****ws 文档编号:3262149 上传时间:2019-05-27 格式:DOC 页数:7 大小:54.50KB
下载 相关 举报
ORACLE企业面试编程题.doc_第1页
第1页 / 共7页
ORACLE企业面试编程题.doc_第2页
第2页 / 共7页
ORACLE企业面试编程题.doc_第3页
第3页 / 共7页
ORACLE企业面试编程题.doc_第4页
第4页 / 共7页
ORACLE企业面试编程题.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、1、用 SQL 语句创建上表(create table 方案名称.表名称 (字段 1 数据类型 1, ) )2、写出一个匿名的 SQL 程序块,完成以下任务:向表中插入 3000 条记录,在 SALARY 字段中有 500 条记录的值为 1000,500 条记录的值为 1200,1000 条记录 的值为 1500,1000 条记录的值为 1800 ID 字段的值来自序列 XL 其他字段的值任意。3、创建一个存储过程,应用上式所创建的函数,修改 id 在 800 到 1200 的记录的 salary值。4、用 SQL 语句创建一个视图,这个视图用来显示 ID1000 的记录。5、创建一个 SYS

2、 用户中的函数 fn1,函数的作用为:将指定 ID 号的记录中的 SALARY 字段的值乘以 1.05。6、建立一个存储过程,删除表中 ID 在特定范围内的记录(如:id20,id1000 的记录。8、假设已经创建好序列 system.xl,写出一个匿名的 PL/SQL 程序块,完成一次向数据表中插入 3000 条记录,其中除 ID 字段取值不同外,其他字段取相同值。9、创建一个 system 方案中的函数 fn1,函数的作用为:将指定 ID 号的记录中的 salary字段值乘以 1.05。10、写出一个存储过程,这个存储过程的作用是修改特定 ID 编号的记录,将该记录的SALARY 字段的值

3、加上 500。 11现有学生表 stuInfo,班级表 classInfo,表结构如下:stuInfo 表:sid 学号 int 主键 自增sname 姓名 Varchar(30) 非空sex 性别 char(2) 只能插入 0 或 1 或空(“0” 代表男,“1”代表女)birthday 生日 dateTime 默认为系统时间age 入学年龄 int 可为空smoney 缴费 int 可为空cid 班级编号 int 非空 外键classInfo 表:班级编号 cid int 主键 自增班级名称 cname varchar(30) 非空(1)、建立一个存储过程用来接收一个学生编号,返回他的年龄

4、、性别(显示男或女,空值为男)和他所在班级的人数并作为传出参数传出。(2)、建立一个存储过程用来接收一个班级编号,找出其中的两位最老的学生的姓名,并打印。若没有找到该班级编号信息,则打印”班级信息错误”,若找到班级编号,但该班级没有学生,则打印“该班级没有学生”。(3)用存储过程实现对 stuInfo 表的分页显示。12物资信息管理系统据库如下: 数据库名:物资信息管理 Materials管理员表 User_Manager列名 数据类型 长度 描述User_ID int 用户 ID(主键)User_Name varchar 50 登陆用户名,唯一User_Pass varchar 10 登陆密

5、码User_Date datetime 账户创建时间(默认为当前系统时间),添加检查约束使创建账户的时间不能晚于当前的时间领用科室表 Department_Manager列名 数据类型 长度 描述Department_ID int 领用科室 ID(主键)Department_Name Varchar 20 领用科室名称Department_State int 缺省 1(1:正常,0:销户)Department_Date datetime 领用科室注册时间(默认当前系统时间) ,限制角色的创建时间不能晚于当前的时间领用记录表 Consuming_Manager列名 数据类型 长度 描述Co_ID

6、 int 主键User_ID int 外键-User_ManagerDepartment_ID int 外键-Department_ManagerType_Id Int 缺省为 1, (1:打印纸 2:签字笔)Co_Quentity float 领用数量,缺省 0Co_Date datetime 领用时间(默认当前系统时间) ,限制时间不能晚于当前的时间物品库存表 Store_Manager列名 数据类型 长度 描述St_ID int 自增 IDType_Id Int 缺省为 1, (1:打印纸 2:签字笔)St_Quentity Float 物品库存数量(1).查询领用记录中,编号为 1的记

7、录对应的系统管理员的姓名,领用科室姓名,领用科室注册时间,领用日期,领用产品种类(为 Type_Id为 1,则将此处的显示为“打印纸” ,否则显示为“签字笔” ) , 领用产品数量提示:使用 case when (2).创建存储过程验证登陆系统管理员的用户与密码是否正确,若用户名不存在返回-1,若用户名存在但是密码错误返回 0,若验证成功则返回用户的 User_ID。(3)创建存储过程-完成添加一条领用记录。记录添加过程中必须完成对领用库存表的添加或更新操作,若数据插入中间出现问题,请使用事务回滚写出测试数据(4)创建触发器,删除领用科室表中的一条数据,必须先删除领用记录表中所有对应于该领用科

8、室的所有数据,然后才能删除领用科室。写出测试语句13表 className 中有如下分类: classID className 1 衣服 2 裤子 5 帽子 10 鞋子 表 productInfo 有如下记录: productID productName parentID clickNum 1 男士衣服 1 90 -衣服类别中这条记录的点击率最高 2 女士衣服 1 803 男士裤子 2 704 女士裤子 2 90-裤子类别中这条记录点击率最高 5 男士帽子 5 156 女士帽子 5 30-帽子类别中这条点击率最高 7 男士鞋子 10 65-鞋子类别中这条点击率最高 8 女士鞋子 10 52 9

9、 女士鞋子 1 10 54 使用存储过程实现:要求分别把衣服,裤子,帽子,鞋子这些类别中点击率最高的一条记录找出来,然后再降序排列,结果应如下:productID productName clickNum 1 男士衣服 90 4 女士裤子 90 7 男士鞋子 65 6 女士帽子 30 14程序员工资表:ProWage字段名称 数据类型 说明ID int 自动编号,主键PName Char(10) 程序员姓名Wage int 工资创建一个存储过程,对程序员的工资进行分析,月薪 1500 到 10000 不等,如果有百分之五十的人薪水不到 2000 元,给所有人加薪,每次加 100,再进行分析,直

10、到有一半以上的人大于 2000 元为止,存储过程执行完后,最终加了多少钱? 例如:如果有百分之五十的人薪水不到 2000,给所有人加薪,每次加 100 元,直到有一半以上的人工资大于 2000 元,调用存储过程后的结果如图:请编写 PL/SQL 来实现如下功能:1)创建存储过程,查询是否有一半程序员的工资在 2200、3000、3500、4000、5000 或6000 元之上,如果不到分别每次给每个程序员加薪 100 元,至之一半程序员的工资达到2200,3000,3500,4000,5000 或 6000 元。2)创建存储过程,查询程序员平均工资在 4500 元,如果不到则每个程序员每次加

11、200 元,至到所有程序员平均工资达到 4500 元。15某 cc 表数据如下:c1 c2-1 西1 安1 的2 天2 气3 好转换为1 西安的2 天气3 好要求:不能改变表结构及数据内容,仅在最后通过 SELECT 显示出这个查询结果16. 用存储过程实现:对所有员工,如果该员工职位是 MANAGER,并且在 DALLAS 工作那么就给他薪金加 15;如果该员工职位是 CLERK,并且在 NEW YORK 工作那么就给他薪金扣除5;其他情况不作处理17编写一个 PL/SQL 程序块,对直接上级是BLAKE的所有员工,按照参加工作的时间加薪:81 年 6 月以前的加薪 1081 年 6 月以后

12、的加薪 519用存储过程实现:根据员工在各自部门中的工资高低排出在部门中的名次(允许并列). 20编写一个触发器实现如下功能:对修改职工薪金的操作进行合法性检查:a) 修改后的薪金要大于修改前的薪金b) 工资增量不能超过原工资的 10% c) 目前没有单位的职工不能涨工资21编写一个 PL/SQL 程序块,对名字以“A“或“S“开始的所有雇员按他们的基本薪水的 10%加薪。22编写一 PL/SQL,对所有的“销售员“(SALESMAN)增加佣金 500. 23编写一 PL/SQL,以提升两个资格最老的“职员“为“高级职员“。(工作时间越长,优先级越高)24编写一 PL/SQL,对所有雇员按他们基本薪水的 10%加薪,如果所增加的薪水大于5000,则取消加薪。25编写一个给特殊雇员加薪 10%的过程,这之后,检查如果已经雇佣该雇员超过 60 个月,则给他额外加薪 3000. 26编写一个函数以检查所指定雇员的薪水是否有效范围内。不同职位的薪水范围为:Designation Raise Clerk 1500-2500 Salesman 2501-3500 Analyst 3501-4500 Others 4501 and above. 如果薪水在此范围内,则显示消息“Salary is OK“,否则,更新薪水为该范围内的最低值。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。