资源描述
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用户中的函数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字段的值加上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)、建立一个存储过程用来接收一个学生编号,返回他的年龄、性别(显示男或女,空值为男)和他所在班级的人数并作为传出参数传出。(2)、建立一个存储过程用来接收一个班级编号,找出其中的两位最老的学生的姓名,并打印。若没有找到该班级编号信息,则打印”班级信息错误”,若找到班级编号,但该班级没有学生,则打印“该班级没有学生”。(3)用存储过程实现对stuInfo表的分页显示。12物资信息管理系统据库如下: 数据库名:物资信息管理Materials管理员表 User_Manager列名数据类型长度描述User_IDint用户ID(主键)User_Namevarchar50登陆用户名,唯一User_Passvarchar10登陆密码User_Datedatetime账户创建时间(默认为当前系统时间),添加检查约束使创建账户的时间不能晚于当前的时间领用科室表Department_Manager列名数据类型长度描述Department_IDint领用科室ID(主键)Department_NameVarchar20领用科室名称Department_Stateint 缺省1(1:正常,0:销户)Department_Datedatetime领用科室注册时间(默认当前系统时间),限制角色的创建时间不能晚于当前的时间领用记录表Consuming_Manager列名数据类型长度描述Co_IDint主键User_IDint外键-User_ManagerDepartment_IDint外键-Department_ManagerType_IdInt 缺省为1,(1:打印纸2:签字笔)Co_Quentityfloat领用数量,缺省0Co_Datedatetime领用时间(默认当前系统时间),限制时间不能晚于当前的时间物品库存表Store_Manager列名数据类型长度描述St_IDint自增IDType_IdInt 缺省为1,(1:打印纸2:签字笔)St_QuentityFloat物品库存数量(1).查询领用记录中,编号为1的记录对应的系统管理员的姓名,领用科室姓名,领用科室注册时间,领用日期,领用产品种类(为Type_Id为1,则将此处的显示为“打印纸”,否则显示为“签字笔”), 领用产品数量 提示:使用 case when (2).创建存储过程验证登陆系统管理员的用户与密码是否正确,若用户名不存在返回-1,若用户名存在但是密码错误返回0,若验证成功则返回用户的User_ID。(3)创建存储过程-完成添加一条领用记录。记录添加过程中必须完成对领用库存表的添加或更新操作,若数据插入中间出现问题,请使用事务回滚 写出测试数据 (4)创建触发器,删除领用科室表中的一条数据,必须先删除领用记录表中所有对应于该领用科室的所有数据,然后才能删除领用科室。 写出测试语句13表className中有如下分类:classIDclassName1 衣服2 裤子5 帽子10 鞋子表productInfo有如下记录:productIDproductNameparentIDclickNum1男士衣服 1 90 -衣服类别中这条记录的点击率最高2 女士衣服 1 803 男士裤子 2 704 女士裤子 2 90-裤子类别中这条记录点击率最高5 男士帽子 5 156 女士帽子 5 30-帽子类别中这条点击率最高7 男士鞋子 10 65-鞋子类别中这条点击率最高8 女士鞋子 10 529 女士鞋子1 10 54使用存储过程实现:要求分别把衣服,裤子,帽子,鞋子这些类别中点击率最高的一条记录找出来,然后再降序排列,结果应如下:productID productNameclickNum1 男士衣服 904 女士裤子 907 男士鞋子 65 6 女士帽子 3014程序员工资表:ProWage字段名称数据类型说明IDint自动编号,主键PNameChar(10)程序员姓名Wageint工资创建一个存储过程,对程序员的工资进行分析,月薪1500到10000不等,如果有百分之五十的人薪水不到2000元,给所有人加薪,每次加100,再进行分析,直到有一半以上的人大于2000元为止,存储过程执行完后,最终加了多少钱? 例如:如果有百分之五十的人薪水不到2000,给所有人加薪,每次加100元,直到有一半以上的人工资大于2000元,调用存储过程后的结果如图:请编写PL/SQL来实现如下功能:1)创建存储过程,查询是否有一半程序员的工资在2200、3000、3500、4000、5000或6000元之上,如果不到分别每次给每个程序员加薪100元,至之一半程序员的工资达到2200,3000,3500,4000,5000或6000元。2)创建存储过程,查询程序员平均工资在4500元,如果不到则每个程序员每次加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月以后的加薪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,否则,更新薪水为该范围内的最低值。
展开阅读全文