搜索
您的当前位置:首页正文

Java程序编程题

来源:意榕旅游网
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中执行这个存储过程。

7、用SQL语句创建一个视图,这个视图用来显示id>1000的记录。

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_ID User_Name User_Pass User_Date 数据类型 int varchar varchar datetime 长度 50 10 描述 用户ID(主键) 登陆用户名,唯一 登陆密码 账户创建时间(默认为当前系统时间),添加检查约束使创建账户的时间不能晚于当前的时间 描述 领用科室ID(主键) 领用科室名称 缺省1(1:正常,0:销户) 领用科室注册时间(默认当前系统时间),限制角色的创建时间不能晚于当前的时间 长度 主键 外键-User_Manager 外键-Department_Manager 缺省为1,(1:打印纸2:签字笔) 领用数量,缺省0 领用时间(默认当前系统时间),限制时间不能晚于当前的时间 描述 领用科室表Department_Manager

列名 Department_ID Department_Name Department_State Department_Date int Varchar int datetime 数据类型 20 长度 领用记录表Consuming_Manager 列名 Co_ID User_ID Department_ID Type_Id Co_Quentity Co_Date int int int Int float datetime 数据类型

物品库存表Store_Manager 列名 St_ID Type_Id St_Quentity int Int Float 数据类型 长度 自增ID 缺省为1,(1:打印纸2:签字笔) 物品库存数量 描述 (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 PName Wage 数据类型 int Char(10) 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元。

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 Analyst 3501-4500 Others 4501 and above.

如果薪水在此范围内,则显示消息\"Salary is OK\",否则,更新薪水为该范围内的最低值。 27.有一张表(table),里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):

大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。 显示格式:

语文 数学 英语 及格 优秀 不及格 28.随机取出10条数据

29.不借助第三方工具,怎样查看sql的执行计划

30.如何定位重要(消耗资源多)的SQL(使用CPU多的用户session) 31、 如何跟踪某个session的SQL(利用TRACE 跟踪)

32、存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql 33、表nba记录了nba(team VARCHAR2(10),y NUMBER(4))夺冠球队的名称及年份: TEAM Y

-------------------- ------------------------------ 活塞 1990 公牛 1991 公牛 1992 公牛 1993

火箭 1994 火箭 1995 公牛 1996 公牛 1997 公牛 1998 马刺

1999

湖人 2000 湖人 2001 湖人 2002 马刺 2003 活塞 2004 马刺 2005 热火 2006 马刺 2007 凯尔特人 2008 湖人 2009 湖人 2010

请写出一条SQL语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少,结果如下:

TEAM B E

-------------------- ---------- -------------------------------- 公牛 1991 1993 火箭 1994 1995 公牛 1996 1998 湖人 2000 2002 湖人 2009 2010

34、查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下: DEPT...................................4 EMP...................................14 BONUS.................................0 SALGRADE.............................5

35、某cc表数据如下: c1 c2

-------------- 1 西 1 安 1 的 2 天 2 气 3 好 …… 转换为 1 西安的 2 天气 3 好

要求:不能改变表结构及数据内容,仅在最后通过SELECT显示出这个查询结果

36、请用一条sql语句查询出scott.emp表中每个部门工资前三位的数据,显示结果如下:

DEPTNO SAL1 SAL2 SAL3

------ ---------- ---------- ------------------------------------- 10 5000 2450 1300 20 3000 2975 1100 30 2850 1600 1500 37、 求1-100之间的素数(PL&SQL编程)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top