《PLSQL编程实验报告(共5页).doc》由会员分享,可在线阅读,更多相关《PLSQL编程实验报告(共5页).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上PL/SQL编程实验报告班 级:10网工三班 学生姓名:谢昊天 学号:实验目的和要求:(1) 掌握PL/SQL块结构、PL/SQL的基本语法、PL/SQL的控制结构。(2) 掌握PL/SQL块中使用复合数据类型和游标的方法。(3) 掌握PL/SQL异常处理技术。(4) 掌握存储过程、存储函数、触发器高级数据库对象的基本作用。(5) 掌握存储过程、存储函数、触发器的建立、修改、查看、删除操作。实验内容:(1) 记录执行命令和操作过程中遇到的问题及解决方法,注意从原理上解释原因。(2) 记录利用SQL*Plus或iSQL*Plus编写、执行PL/SQL程序的命令。(3)
2、记录执行命令和操作过程中遇到的问题及解决方法,注意从原理上解释原因。(4) 记录利用企业管理器管理存储过程、存储函数、触发器的方法。(5) 记录利用SQL*Plus和iSQL*Plus管理存储过程、存储函数、触发器的命令。实验步骤与调试过程:1、打开DOS命令窗口,在其中输入sqlplus system/system命令进入oracle数据库系统。2、在SQLPLUS下输入create table business(bno char(10) primary key,bname char(50) not null,btype char(4),baddress char(20),btel char
3、(13);,创建一个business表,3、用同样的方法新建hospital、card、staff、consume、insurance等表,使用“desc 报表名”查看表结构。4、新建表staff_sq1,包含两列sno、sname,5、在SQLPLUS下输入alter table staff_sq1 rename to staff_sq10;,修改以表名。6、创建基于医院名的索引,输入create index hospital_name_index on HOSPITAL(HNAME DESC);。7、对于多个列的索引,create index hospital_name_index on
4、HOSPITAL(sname,ssex desc,sbirthday)。8、删除已建的索引,输入drop index hospital_name_index。9、视图是基于基础表的数据库的另一种数据库对象,不包含数据。输入命令create view ygbx_card_view as select card.*,business.bname,staff.sname from card,business,staff where o=o and staff.bno=business.bno即可。10:在命令行中输入命令desc user_view,查看视图的定义。11、输入insert into
5、business_view values(B,格林制药,企业,鸭绿江街98号,);实验结果:1、创建了实验中的多个表。利用lSQL*Plus或iSQL*Plus编写、执行PL/SQL程序的命令。2、执行命令和操作过程中遇到的问题及解决方法,利用企业管理器管理存储过程、存储函数、触发器的方法。3、利用SQL*Plus和iSQL*Plus管理存储过程、存储函数、触发器的命令。4、实现了用alter table old_table_name rename to new_table_name表名进行修改。5、通过create index index_name on table_name(column_
6、name1 asc|desc,column_name2 asc|desc.)创建基于多列的索引。6、成功创建视图。7、create public synonym synonym_new_name for old_name创建自己需要的同义词。8、 create sequence sequence_name命令创建需要的序列。疑难小结:通过本次试验,我对PL/SQL编程思想有了进一步的了解,通过动手实现PL/SQL编程,更加深刻的理解了PL/SQL编程的特点。在实验中了掌握PL/SQL块结构、PL/SQL的基本语法、PL/SQL的控制结构。掌握PL/SQL块中使用复合数据类型和游标的方法。学习到
7、了PL/SQL异常处理技术。了解了存储过程、存储函数、触发器高级数据库对象的基本作用。掌握存储过程、存储函数、触发器的建立、修改、查看、删除操作。实现了用alter table old_table_name rename to new_table_name表名进行修改。学会了通过create index index_name on table_name(column_name1 asc|desc,column_name2 asc|desc.)创建基于多列的索引。知道了需要用create public synonym synonym_new_name for old_name创建自己需要的同义词
8、。并且在实验过程中,回顾书本上的理论知识,巩固了我的知识。主要算法和程序清单create table business(bno char(10) primary key,bname char(50) not null,btype char(10),baddress char(20),btel char(13);hospital:create table hospital ( cno char(15) primary key, ctype char(8) check(ctype=企业 or ctype=事业 or ctype=灵活就业), cmoney number(7,2) unique );
9、create table card(cno char(15) primary key,ctype char(8), cmoney number(7,2) not null);create table staff(sno char(15) primary key,sname char(20) not null,ssex char(2) check(ssex=男or ssex=女),sbirthday date,saddress char(20),stel char(15) unique,cno char(15), bno char(10),constraint fk_card_cno forei
10、gn key(cno) references card(cno),constraint fk_business_bno foreign key(bno) references business(bno);create table see(sno char(5) primary key,hno char(5) not null,sdate date);create table consume(cno char(5),hno char(5),sdate date not null,manme char(20),mnum int not null,csmoney number(7,2) not nu
11、ll,constraint pk_consume_sno_hno_sdate primary key (cno,hno,sdate), constraint fk_consume_card_cno foreign key (cno) references card(cno), constraint fk_consume_hospital_hno foreign key (hno) references hospital(hno);create table insurance( idate date, cno char(15), imoney number(5,2) not null, bno
12、char(10), constraint pk_insurance_idate_cno primary key (idate,cno), constraint fk_insurance_cno foreign key (cno) references card(cno), constraint fk_insurance_bno foreign key (bno) references business(bno);desc business 查看表结构创建表staff_sq1:create table staff_sq1( sno int,sname nvarchar(20);alter tab
13、le staff_sq1 rename to staffsq10;添加字段:alter table staff_sq10 add column age int;alter table staff_sq10 add column salary number(5,2);alter table staff_sq10 add column salary number_add number(3,1);添加约束:alter table staff_sq10 add constration un_sname unique;删除字段:alter table staff_sq10 drop column age
14、;修改字段:alter table staff_sq10 alter age nvarchar(30);创建索引:create index hospital_name_index on HOSPITAL(HNAME DESC);create index staff_info_index on staff(sname,ssex desc,sbirthday);删除索引:drop index hospital_name_index;drop index staff_info_index;创建视图:create view ygbx_card_view as select card.*,busines
15、s.bname,staff.sname from card,business,staff where o=o and staff.bno=business.bno查看视图:desc user_view向视图插入数据:insert into business_view values(B,格林制药,企业,鸭绿江街98号,);查看:select * from business;删除视图:drop view business_view;创建同义词:create public synonym ybk for car删除同义词:drop public synonym ybk创建序列:create sequence ygbx_seq1 start with 60 increment by 1 minvalue 60 maxvalue 2800 cycle;reate sequence ygbx_seq2 start with 1 increment by 10 minvalue 1 nomaxvalue cycle;修改序列:alter sequence ygbx_seq1 start with 100 increment by 5 minvalue 100 maxvalue 82000 cycle删除序列:drop sequence ygbx_seq1专心-专注-专业
限制150内