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语句创建一个视图,这个视图用来显示ID>1000的记录。
5、创建一个SYS用户中的函数fn1,函数的作用为:将指定ID号的记录中的SALARY字段的值乘以1.05。
6、建立一个存储过程,删除表中ID在特定范围内的记录(如:id>20,id<100)。并在SQL*PLUS WORKSHEET中执行这个存储过程。
4、用SQL语句创建一个视图,这个视图用来显示ID>1000的记录。
5、创建一个SYS用户中的函数fn1,函数的作用为:将指定ID号的记录中的SALARY字段的值乘以1.05。
6、建立一个存储过程,删除表中ID在特定范围内的记录(如:id>20,id<100)。并在SQL*PLUS WORKSHEET中执行这个存储过程。
7、用SQL语句创建一个视图,这个视图用来显示id>1000的记录。
8、假设已经创建好序列system.xl,写出一个匿名的PL/SQL程序块,完成一次向数据表中插入3000条记录,其中除ID字段取值不同外,其他字段取相同值。
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)、建立一个存储过程用来接收一个学生编号,返回他的年龄、性别(显示男或女,空值为男)和他所在班级的人数并作为传出参数传出。
security金融(2)、建立一个存储过程用来接收一个班级编号,出其中的两位最老的学生的姓名,并打印。若没有到该班级编号信息,则打印”班级信息错误”,若到班级编号,但该班级没有学生,则打印“该班级没有学生”。
(3)用存储过程实现对stuInfo表的分页显示。
12.物资信息管理系统据库如下:
数据库名:物资信息管理Materials
管理员表 User_Manager
列名 | 数据类型 | 长度 | 描述 |
User_ID | int | 用户ID(主键) | |
User_Namejava经典上机编程题 | varchar | 50 | 登陆用户名,唯一 |
User_Pass | varchar | 10 | 登陆密码 |
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 | int | 主键 | |
User_ID | int | 外键-User_Manager | |
Department_ID | int | 外键-Department_Manager | |
Type_Id | Int | 缺省为1,(1:打印纸2:签字笔) | |
Co_Quentity | float | 领用数量,缺省0 | |
Co_Date | datetime | 领用时间(默认当前系统时间),限制时间不能晚于当前的时间 | |
物品库存表Store_Manager
列名 | 数据类型 | 长度 | 描述 |
St_ID | int | 自增ID | |
Type_Id | Int | 缺省为1,(1:打印纸2:签字笔) | |
St_Quentity | Float | 物品库存数量 | |
(1).查询领用记录中,编号为1的记录对应的系统管理员的姓名,领用科室姓名,领用科室注册时间,领用日期,领用产品种类(为Type_Id为1,则将此处的显示为“打印纸”,否则显示为“签字笔”), 领用产品数量
提示:使用 case –when
(2).创建存储过程验证登陆系统管理员的用户与密码是否正确,若用户名不存在返回-1,若用户名存在但是密码错误返回0,若验证成功则返回用户的User_ID。
(3)创建存储过程-完成添加一条领用记录。记录添加过程中必须完成对领用库存表的添加或更新操作,若数据插入中间出现问题,请使用事务回滚
写出测试数据
(4)创建触发器,删除领用科室表中的一条数据,必须先删除领用记录表中所有对应于该领用科室的所有数据,然后才能删除领用科室。
写出测试语句
13.表className中有如下分类:
classID className
1 衣服
2 裤子
5 帽子
10 鞋子
表productInfo有如下记录:
productID productName parentID clickNum
1 男士衣服 1 90
--衣服类别中这条记录的点击率最高
2 女士衣服 1 80
3 男士裤子 2 70
4 女士裤子 2 90
--裤子类别中这条记录点击率最高
5 男士帽子 5 15
6 女士帽子 5 30
--帽子类别中这条点击率最高
墨茶真实长相7 男士鞋子 10 65
--鞋子类别中这条点击率最高
8 女士鞋子 10 52
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,再进行分析,直到有一半以上的人大于2000元为止,存储过程执行完后,最终加了多少钱?
例如:如果有百分之五十的人薪水不到2000,给所有人加薪,每次加100元,直到有一半以上的人工资大于2000元,调用存储过程后的结果如图:
请编写PL/SQL来实现如下功能:
1)创建存储过程,查询是否有一半程序员的工资在2200、3000、3500、4000、5000或6000元之上,如果不到分别每次给每个程序员加薪100元,至之一半程序员的工资达到2200,3000,3500,4000,5000或6000元。
2)创建存储过程,查询程序员平均工资在4500元,如果不到则每个程序员每次加200元,至到所有程序员平均工资达到4500元。
linux怎么用命令打开软件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月以前的加薪10%
81年6月以后的加薪5%
19.用存储过程实现:根据员工在各自部门中的工资高低排出在部门中的名次(允许并列).
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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论