PLSQL讲义
- 格式:pdf
- 大小:25.22 MB
- 文档页数:695


SQL、PL/SQL测试
在ORACLE数据库中创建学生成绩管理系统,先创建以下两张表:
表名 tbstudent 作用 存储学生信息
主键 Sno
列名 数据类型 长度 是否允许为空
Sname Varchar2 10 否 学生姓名
Sno Varchar2 10 否 学号
SBirthday Date 是 学生生日
SSex Char 2 是 性别
表名 Tbscore 作用 存储学生各科考试成绩
联合主键 Sno,Subject
列名 数据类型 长度 是否允许为空 字段说明
Sno Varchar2 10 否 学号
Subject Varchar2 10 否 考试科目
Score Number 是 考试成绩
为上述两张表录入如下记录:
表tbstudent:
Sno Sname SBirthday SSex
Y20101 张一某 1982-12-15 男
Y20102 王强 1983-9-21 男
Y20103 赵敏 1984-5-8 女
Y20104 李斯 1982-3-9 男
表Tbscore:
Sno Subject Score
Y20101 XML 88
Y20102 XML 66
Y20103 XML 55
Y20104 XML 78
Y20101 ORACLE 64
Y20102 ORACLE 58
Y20103 ORACLE 44
A、 编写SQL语句查询男同学的XML平均成绩,要求列出姓名和成绩两列;
B、 编写SQL语句查询出参加考试的各科成绩都及格的学员学号、平均成绩;
C、 用一条SQL语句,查询出科目、该科目成绩60分以上的学生个数;
D、 由于ORACLE的测试题目过难,导致大部分员考试成绩偏低,现要求你编写一个存储过程实现给指定科目的成绩提分,通过调用该过程plus(‘ORACLE’)实现给ORACLE科目提分。具体提分算法如下:给98分以下的每个人都加3分,若全班通过率达不到70%,则再给98分以下的每个人加3分,直到全班通过率达到70%为止。
第二部分
PL/SQL程序设计基础
陈卫星
- 1 -1
目 录
第一章PL/SQL 程序设计简介......................................................................................4
§1.2
SQL与PL/SQL.......................................................................................................................4
§1.2.1 什么是
PL/SQL?...............................................................................................................4
§1.2.1 PL/SQL的好处
.................................................................................................................4
§1.2.2 PL/SQL 可用的
SQL语句
.................................................................................................5
§1.3
运行PL/SQL程序...................................................................................................................5
第二章 PL/SQL块结构和组成元素.................................................................................6
plsql使用技巧详解
1.记住登陆密码
为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;设置方法:PL/SQL Developer 7.1.2 ->tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Store with password” 即可,重新登录在输入一次密码则记住了;
2.登录后默认自动选中My Objects
默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。
设置方法:
Tools菜单 --> Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可。
Tools菜单--Brower Folders,中把你经常点的几个目录(比如:Tables Views Seq Functions Procedures)移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短。
3.类SQL PLUS窗口
File->New ->Command Window 这个类似于oracle的客户端工具sql plus,但用比它好用多了;
4.关键字自动大写
Tools->Preferences->Editor,将Keyword case选择Uppercase。这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写。这样阅读代码比较容易,且保持良好得编码风格,同理,在Tools->Preferences->Code Assistant里可以设置数据库对象的大写、小写,首字母大写等。
5.查看执行计划
选中需要分析的SQL语句,然后点击工具栏的Explain plan按钮(即执行计划),或者直接按F5;这个主要用于分析SQL语句执行效率,分析表的结构,便于为sql调优提供直观依据。
PL/SQL试题
姓名:________
一. 选择题(18’)
1. Oracle数据库中为新创建的表分配的初始空间通常有多大()
A. 一个块
B. 一个区
C. 一个段
D.一个表空间
2. 关于存储过程参数,正确说法的是()
A. 存储过程的输出参数可以是标量类型,也可以是表类型
B. 存数过程输入参数可以不输入信息而调用调用过程
C. 可以指定字符参数的字符长度,(函数的()或者过程的(number/varchar2))
D. 以上说法都不对
3. 下列说法正确的是()
A. 只要在存储过程中有增删改语句,一定要加自治事务
B. 在函数内可以修改表数据
C. 函数不能递归调用
D.以上说法都不对
4. 关于触发器,下列说法正确的是()
A. 可以在表上创建INSTEAD OF 触发器
B. 与聚集触发器不能使用“:old”和“:new”
C. 行级触发器不能用于审计
D.触发器可以显示调用
5. 下列哪些是oracle的伪列()(多选)
A. ROWID
B. ROW_NUMBER()
C. LEVEL
D. ROWNUM
6. 当表的重复行数据很多时,应该创建的索引类型应该是()
A. B树
B. Reverse
C. Bitmap
D. 函数索引
二. 填空题(10’)
1. 事务的特性有___ __、__ ___、___ ___、___ __ 。(4’)
2. 定义游标的过程包括:声明游标中将要使用的变量、声明游标、_____、
_____、和关闭游标(2’)
3. 子程序包括______和_______。(2’)
4. %type关键字作用是_________.(2’)
三. 编程题
1. 某公司要根据雇员的职位来加薪,公司决定按如下列加薪结构处理:(22’)
Designation