SQL数据库系统实验报告(含代码、截图)_第1页
SQL数据库系统实验报告(含代码、截图)_第2页
SQL数据库系统实验报告(含代码、截图)_第3页
SQL数据库系统实验报告(含代码、截图)_第4页
SQL数据库系统实验报告(含代码、截图)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统实验报告专 业 班 级 学生姓名及学号 课程教学班号 任 课 教 师 实验指导教师 实验地点 2012 2013 学年第 二 学期 实验一 使用向导创建和删除数据库一 实验目的1 熟悉SQL Server 中SQL Server Management Studio的环境2 了解SQL Server 数据库的逻辑结构和物理结构3 掌握使用向导创建和删除数据库的方法二 实验要求1. 熟练使用SSMS进行数据库的创建和删除操作。2. 完成实验报告。三实验内容设有一学籍管理系统,其数据库名为“EDUC”。初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5比例增长;日志文件初

2、始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:sql_data”(注意:此文件名必须已经建立的前提下才可以此操作)。日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:sql_data”。四实验步骤1使用SQL Server Management Studio(简称SSMS)创建数据库。(1)启动SSMS 在开始菜单中:所有程序SQL Server 2005 SQL Server Management Studio&

3、#160;单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。(2)建立数据库在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。2. 使用向导删除上面建立的数据库。用SSMS删除建立的数据库EDUC。3、数据库的分离将刚建好的数据库分离出来,即点击新建的EDUC任务分离,将删除连接和更新打一个钩,然后点击确定。如图所示:4、数据分离出来之后可以附加进去。即右击数据库附加点击添加按钮,找到数据库文件.mdf所存放的路径,然后点击确定,

4、即可以将我们刚所创建的文件添加回去。5 实验总结 通过本次实验,我熟悉了SQL Server 中SQL Server Management Studio的环境,了解了SQL Server 数据库的逻辑结构和物理结构,掌握使用向导创建和删除数据库的方法。加深了对数据库的认识和理解。实验二 使用SQL语句创建和删除数据库一. 实验目的:1. 了解SQL Server 2005数据库的逻辑结构和物理结构。2. 掌握使用SQL 语句创建、删除和修改数据库。二. 实验要求1. 熟练使用查询分析器进行数据库的创建、删除和修改操作。2. 完成实验报告。三. 实验内容使用SQL语句创建数据库userdb1。四

5、实验步骤1创建数据库userdb1的SQL语句,create database userdb1on(name=userdb1_data,filename='g:xygluserdb1.mdf' ,size=5,maxsize=10,filegrowth=1)log on( name=userdb1_log, filename='g:xygluserdb1.ldf ' , size=2 , maxsize=5 , filegrowth=1)执行上述语句建立数据库userdb12. 根据步骤1的sql语句,写出创建实验1中数据库EDUC的sql语句,并建立数据库ED

6、UC.初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。create database EDUCon(name=EDUC_data,filename=' E:sql_dataEDUC.mdf' ,size=10,maxsize=50,filegrowth=5%)log on( name=EDUC_log, filename=' E:sql_dataEDUC.ldf ' , size=2 , maxsize=5 , filegrowth=1)3. 用SQL语句删除步骤1建立的数据库

7、userdb1。drop database userdb1或者直接语句use master drop database userdb14、在查询分析器中还可以实现对数据库的修改操作,Alter DATABASE 数据库名ADD FILE<文件选项> 新增数据文件 |ADD LOG FILE<文件选项> 新增数据日志文件 | REMOVE FILE 逻辑文件名 删除指定文件|ADD FILEGROUP 文件组名 新增文件组|REMOVE FILEGROUP 文件组名 删除文件组|MODIFY FILE <文件选项> 修改文件属性|MODIFY NAME=新数据

8、库名 数据名更改(1)、 将文件名EDUC改为EDUC1ALTER DATABASE EDUCMODIFY NAME=EDUC1;(2)、增加一个日志文件,文件名为EDUC_LOG,初始大小为10mb,最大为20MB,增加为1MBALTER DATABASE EDUC1 ADD LOG FILE (NAME=EDUC_LOG, FILENAME='E:sql_dataEDUC_LOG.LDF', SIZE=10MB, MAXSIZE =20MB, FILEGROWTH=1MB5 实验总结 通过本次实验,我进一步了解了数据库的逻辑结构和物理结构。初步掌握使用SQL 语句创建、删除

9、和修改数据库。对相关语句的应用也更加得心应手。实验三 使用SQL语句创建和删除表一实验目的1了解表的结构特点。2了解SQL Server的基本数据类型。3学会使用T-SQL语句创建表。二实验要求1. 完成SQL语句创建、修改、删除基本表。2. 完成实验报告。三. 实验内容在数据库EDUC中,创建如下几个表: 表3.1 class表(班级信息表)字段名称类 型允许空值主 键说 明ClsNOChar(6)NOT NULL是班号ClsNameVarchar(16)NOT NULL班名DirectorVarchar(10)NULL辅导员SpecialtyVarchar(30)NULL专业表3.2 st

10、udent表(学生信息表)字段名称类 型允许空值主 键说 明SnoChar(8)NOT NULL是学号SnameVarchar(10)NOT NULL姓名SCsexChar(2)性别:男、女ClsNOChar(6)NULL班级的编号,(外键)参照表ClassSaddrVarchar(20)住址Sagenumeric(3, 0)年龄,大于10,但小于30岁HeightDecimal(4,2)身高表3.3 course表(课程信息表)字段名称类 型允许空值主 键说 明CnoChar(4)NOT NULL是主键CnameVarchar(16)NOT NULL课程的名称Cpnochar(4)NULL先

11、修课程的课程号(外键),参照cnoCcreditTinyint学分表3.4 sc表(学生选课成绩表)字段名称类 型允许空值主 键说 明SnoChar(8)NOT NULL是学号,参照Student,与Cno组成主键CNOChar(4)NOT NULL是课程号,参照CoursegradeNumeric(4,1)NULL成绩四实验步骤1. 打开查询窗口,输入创建基本表的sql语句,点击“执行”按钮,完成表的创建。创建class表如下:CREATE TABLE class(ClsNO CHAR(6) PRIMARY KEY NOT NULL, ClsName VARCHAR(16)NOT NULL,

12、 Director VARCHAR(10)NULL, Specialty VARCHAR(30)NULL);2. 用上述方法创建其他表。创建student表如下:CREATE TABLE student(Sno CHAR(8) PRIMARY KEY NOT NULL, Sname VARCHAR(10)NOT NULL, SCsex CHAR(2)check(scsex='男'or scsex='女'), CLsNO CHAR(6) NULL, Saddr VARCHAR(20), Sage NUMERIC(3,0)check(10<Sage and s

13、age<30), Height DECIMAL(4,2) FOREIGN KEY(CLsNO) REFERENCES class(CLsNO);创建course表如下:CREATE TABLE course(Cno CHAR(4) PRIMARY KEY NOT NULL, Cname VARCHAR(16)NOT NULL, Cpno CHAR(4) NULL, Ccredit TINYINT, foreign key(Cpno) references cno);创建SC表如下:CREATE TABLE sc(PRIMARY KEY(sno,cno), sno char(8) not

14、null, cno char(4) not null, foreign key (Sno) references student(sno) , foreign key (CNO) references course(cno), grade NUMERIC(4,1) NULL);3. 按照student的要求创建表student1,修改基本表student1向student1 表增加“入学时间”列s_entrance,其数据类型为日期型。ALTER TABLE student1 ADD S_ENTRANCE DATETIME;4. 按照student的要求创建表student2,并将年龄的数据类

15、型由字符型改为整数。Alter table student2 alter column sage int;(报错:因为sage上有check约束,删除check约束后再修改类型)Alter table student2drop CK_student2_Sage_689D8392;Alter table student2 alter column sage int;5. 将student2表中sage改回smallint型。Alter table student2 alter column sage smallint;6. 删除sage后再增加新列和新的完整性约束Alter table stud

16、ent2 drop column sage ;alter table student2 add sage char check(10<sage and 30>sage);7. 按照student的要求创建Student1,然后删除Ssex完整性约束。CREATE TABLE student2(Sno CHAR(8) PRIMARY KEY NOT NULL, Sname VARCHAR(10)NOT NULL, SCsex CHAR(2)check(scsex='男'or scsex='女'), CLsNO CHAR(6) NULL, Saddr V

17、ARCHAR(20), Sage NUMERIC(3,0)check(10<Sage and sage<30), Height DECIMAL(4,2) FOREIGN KEY(CLsNO) REFERENCES class(CLsNO);alter table student2drop CK_student2_SCsex_76EBA2E9;8 删除基本表student1。drop table student1;9. 将以上创建表的SQL语句以 .SQL文件的形式保存在磁盘上。10、将在sudent1中新加入的列名s_entrance修改为Sentranceexec sp

18、_rename 'student1.S_entrance','sentrance'alter table student1add s_entrance char;exec sp_rename 'student1.S_entrance','sentrance'11、将student2表名改为student1exec sp_rename 'student2','student1'exec sp_rename 'student2','student1&

19、#39;五实验总结通过这次实验,我了解了SQL Server的常用数据类型,学会创建数据库的表。掌握了SQL创建基本表的方法、SQL修改基本表的方法,以及SQL删除基本表的方法。实验四 数据更新操作一. 实验目的1 熟悉使用UPDATE/INSERT/DELETE语句进行表操作;2 能将这些更新操作应用于实际操作中去;二. 实验要求1 完成下面的实验内容,并提交实验报告;2 在实验报告中附上相应的代码;三. 实验内容(1)向表(Class)中插入数据ClsNOClsNameDirectorSpecialtyCS01计算机一班张宁计算机应用CS02计算机二班王宁计算机应用MT04数学四班陈晨数学

20、PH08物理八班葛格物理GL01地理一班张四应用地理插入数据之后使用命令:Select * from Class; 检查插入数据的正确性(2) 向表(Student)中插入数据SnoSnameSsexClsNOSaddrSageHeight20090101王军男CS01下关40#201.7620090102李杰男CS01江边路96#221.7220090306王彤女MT04中央路94#191.6519940107吴杪女PH08莲化小区74#181.60插入数据之后使用命令:Select * from Student; 检查插入数据的正确性(3)向表(Course )中插入数据CnoCnameC

21、pnoCredit0001高等数学Null60003计算机基础000130007物理00014插入数据之后使用命令:Select * from Course; 检查插入数据的正确性(4)向表(SC )中插入数据SNOCNOGrade2009010100019020090101000786200901020001872009010200037620090306000187200903060003931994010700078520090306000790(5) 对于student表,将所有班级号为CS01的,并且年龄小于20岁的学生的班级号改为CS02。(6) 对于student表,删掉所有年龄

22、不小于20岁,并且专业号为CS02的学生的记录。对于student表,插入一条新记录,它的具体信息为,学号:20071101、姓名:张三、性别:男、年龄:19、班级编号:CS01。(7) 对于student表,将年龄最小的学生的家庭地址去掉。(8) 对于student表,将平均年龄最小的一个班级编号改为GL01四、实验步骤:1.向class表插入数据如下:insertinto class(clsno,clsname,director,specialty)values('cs01','计算机一班','张宁','计算机应用');ins

23、ertinto class(clsno,clsname,director,specialty)values('cs02','计算机二班','王宁','计算机应用');insertinto class(clsno,clsname,director,specialty)values('mt04','数学四班','陈晨','数学');insertinto class(clsno,clsname,director,specialty)values('ph08'

24、,'物理八班','葛格','物理');insertinto class(clsno,clsname,director,specialty)values('gl01','地理一班','张四','应用地理');2.向Student表插入数据如下:insertinto student(sno,sname,scsex,clsno,saddr,sage,height)values('20090101','王军','男','cs01'

25、;,'下关40#','20','1.76');insertinto student(sno,sname,scsex,clsno,saddr,sage,height)values('20090102','李杰','男','cs01','江边路96#','22','1.72');insertinto student(sno,sname,scsex,clsno,saddr,sage,height)values('20090306

26、9;,'王彤','女','mt04','中央路94#','19','1.65');insertinto student(sno,sname,scsex,clsno,saddr,sage,height)values('19940107','吴杪','女','ph08','莲化小区74#','18','1.60');3. 向course表插入数据如下:insertinto course(cno

27、,cname,cpno,ccredit)values('0001','高等数学','null','6');insertinto course(cno,cname,cpno,ccredit)values('0003','计算机基础','0001','3');insertinto course(cno,cname,cpno,ccredit)values('0007','物理','0001','4');4.向表

28、SC 中插入数据insertinto sc(sno,cno,grade)values('20090101','0001','90');insertinto sc(sno,cno,grade)values('20090101','0007','86');insertinto sc(sno,cno,grade)values('20090102','0001','87');insertinto sc(sno,cno,grade)values('200

29、90102','0003','76');insertinto sc(sno,cno,grade)values('20090306','0001','87');insertinto sc(sno,cno,grade)values('20090306','0003','93');insertinto sc(sno,cno,grade)values('19940107','0007','85');insertinto

30、sc(sno,cno,grade)values('20090306','0007','90');5.对于student表,将所有班级号为CS01的,并且年龄不大于20岁的学生的班级号改为CS02update studentset clsno = 'cs02'where clsno = 'cs01' and sage<20;6. 对于student表,删掉所有年龄不小于20岁,并且专业号为CS02的学生的记录。如果建表的时候没写级联删除,就在删除前先添加级联删除语句deletefrom studentwhere

31、 clsno = 'cs02' and sage >= 20;对于student表,插入一条新记录,它的具体信息为,学号:20071101、姓名:张三、性别:男、年龄:19、班级编号:CS01。insertinto student(sno,sname,scsex,clsno,saddr,sage,height)values('20071101','张三','男','cs01',null,'19',null);7. 对于student表,将年龄最小的学生的家庭地址去掉。update studen

32、tset saddr = 'null'where sage in (select min(sage) from student)8.对于student表,将平均年龄最小的一个班级编号改为GL01update studentset clsno = 'gl01'where sage <= (select min(avg(sage) from student group by student.clsno);9、对于student表,将学号为19940107的学生的姓名该成“吴用”;update studentset sname = '吴用'whe

33、re sno = '19940107'10、 对于sc表,将学号为20090101且的成绩为86的学生的成绩改为96update scset grade = '96'where sno = '20090101' and grade = '86'5、 实验总结通过本次实验,我掌握了向EDUC数据库的各表中插入、修改和删除数据的方法。了解并掌握了使用INSERT、UPDATE及DELETE语句。实验五 创建和删除索引一. 实验目的1 了解索引的类型和应用。2 学会用SQL语句对表创建和删除索引二. 实验要求1. 了解索引类型并比较各类

34、索引的不同之处1. 完成索引的创建和删除,并提交实验报告。三. 实验内容 1. 用SQL语句分别建立以下索引(1) 在student表的Sname列上建立普通降序索引Stusname。(2) 在course表的aCname列上建立唯一索引Coucname。(3) 在sc表的Sno(升序), Cno(升序)和grade (降序)三列上建立一个普通索引SCno。2. 用SQL语句删除索引删除Student表的Stusname索引。五实验指导1. 用SQL语句分别建立以下索引(1)在student表的sname列上建立普通降序索引Stusname。create index stusname on s

35、tudent(sname desc);(2) 在course表的cname列上建立唯一索引Coucname。create unique index coucname on course(cname );(3) 在sc表的Sno(升序), Cno(升序)和grade (降序)三列上建立一个普通索引SCno。create index scno on sc(sno,cno,grade);2. 删除索引:删除Student表的Stusname索引。drop index stusname;5、 实验总结通过本次实验,我掌握了创建了数据库EDUC中基本表的方法,了解了创建和删除索引的方法。实验六 数据查询

36、一 实验目的1观察查询结果, 体会SELECT语句实际应用;2要求学生能够在查询分析器中使用SELECT语句进行简单查询。3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。1.二 实验要求1. 完成简单查询和连接查询操作,并验收实验结果提交实验报告三 实验内容所有的查询全部用Transact-SQL语句实现。此部分查询包括投影、选择条件表达、数据排序、使用临时表等。对EDUC数据库实现以下查询:1) 查询计算机应用专业的学生学号和姓名;2) 查询选修了课程的学生学号;3) 查询选修课程0001 且成绩在8090 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;4) 查询计

37、算机应用和数学专业的姓“张”的学生的信息。5) 查询“0001”课程的成绩高于张三的学生学号和成绩;6) 查询没有选修“0002”课程的学生姓名;四 实验步骤打开查询窗口,输入SQL查询语句,点击“执行”按钮,查看查询结果。1) 查询计算机应用专业的学生学号和姓名;select sno,snamefrom student,classwhere class.clsno = student.clsno and class.specialty = '计算机应用'2) 查询选修课程0001 且成绩在8090 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;select sno,g

38、rade*0.75from scwhere cno = '0001' and (grade between 80 and 90);3) 查询计算机应用和数学专业的姓“张”的学生的信息。select *from student,classwhere student.clsno = class.clsno and student.sname like '张%'and (class.specialty = '计算机应用' or class.specialty = '数学') ;4) 查询“0001”课程的成绩高于张三的学生学号和成绩;s

39、elect sno,gradefrom scwhere o = '0001' and sc.grade >(select gradefrom sc,studentwhere student.sname = '张三' and student.sno = sc.sno and o = '0001');5) 查询没有选修“0002”课程的学生姓名;select distinct snamefrom student,scwhere student.sno = sc.sno and o <> '0002'5、 实验总结 通

40、过本次实验,我掌握了成功建立了基本表的方法。了解了SELECT语句的用法。熟悉了查询分析器的工作原理。实验七 使用聚集函数的SELECT语句一 实验目的1. 熟练掌握数据查询中的分组、统计、计算和组合的操作方法。2. 进一步掌握SQL Server 查询分析器的使用,加深对SQL语言的嵌套查询语句的理解。二 实验要求c1.在实验之前做好准备。2.完成实验,并验收实验结果提交实验报告。三 实验内容在数据库EDUC中用SQL语句实现如下查询:1)求学生的总人数。2)求选修了课程的学生人数。3)求课程的课程号和选修该课程的人数。4)求选修课程超过2 门课的学生学号。四. 实验步骤1) 求学生的总人数

41、.select count(*)from student;2) 求选修了课程的学生人数。select count(distinct sno)from sc;3)求课程的课程号和选修该课程的人数。select cno,count(sno)from scgroup by cno;4) 求选修课程超过2 门课的学生学号select snofrom scgroup by snohaving count(*)>2;5、 实验总结通过本次实验,我了解了SELECT语句的GROUP BY和ORDER BY子句的作用。掌握了统计函数和分组统计函数的使用方法。熟悉了查询分析器的运行环境。 实验八 视图的定

42、义与使用一 实验目的1. 熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;2. 熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系;3. 学习灵活熟练的进行视图的操作,认识视图的作用。二实验要求1. 在实验开始之前做好准备工作。2. 实验之后提交实验报告,思考视图和基本表的区别三实验内容1.定义视图在EDUC数据库中,已Student、Course 和SC表为基础完成一下视图定义:1) 将Student, Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_SC_G;2) 定义一个反映学生出生年份的视图V_YEAR;3)

43、将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G;4) 将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G;5) 在原来的V_SC_G中增加一个属性列班级号2.使用视图1) 查询以上所建的视图结果。2) 查询平均成绩为90分及以上的学生学号、姓名和成绩;3) 查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩;4) 查询1994年出生的学生学号和姓名。5) 查询班级号为CS01选修了0001号课程的学生学号,姓名和成绩四 实验步骤1.定义视图1)将Student, Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_SC_G.create

44、view v_sc_g(sno,sname,cno,cname,grade)asselect sc.sno,sname,o,cname,gradefrom student,course,scwhere student.sno = sc.sno and o = o;2) 定义一个反映学生出生年份的视图V_YEAR. create view v_year(sname,year) as select sname,2013-sage from student;3) 将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G. create view v_avg_s_g(sno,cnono,avgg

45、rade) as select sno,count(cno),avg(grade) from sc group by sno;4) 将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G。 create view v_avg_c_g(cno,cnono,avggrade) as select o,count(o),avg(grade) from sc,course where o = o group by o;5)在原来的V_SC_G中增加一个属性列班级号2.使用视图1)查询以上所建的视图结果。2) 查询平均成绩为90分及以上的学生学号、姓名和成绩; select v_sc_g.sno,s

46、name,grade from v_sc_g where sno in (select v_avg_s_g.sno from v_avg_s_g where v_sc_g.sno = v_avg_s_g.sno and v_avg_s_g.avggrade>90);3) 查询科目成绩大于其科目平均成绩的学生学号、课程号、成绩和平均成绩; select sc.sno ,o,sc.grade,savggrade from v_avg_c_g,sc,v_avg_s_g where o = v_avg_c_o and sc.grade > v_avg_c_g.avggrade and sc

47、.sno=v_avg_s_g.sno;4)查询1994年出生的学生学号和姓名。 select sno,student.sname from student,v_year where student.sname = v_year.sname and year = '1994' 5)查询班级号为CS01选修了0001号课程的学生学号,姓名和成绩 select student.sno,v_sc_g.sname,v_sc_g.grade from v_sc_g,studentwhere student.sno = v_sc_g.sno and v_sc_o = '0001

48、9; and student.clsno = 'cs01'5、 实验总结 通过本次实验,我掌握了对数据表中视图的查询操作和SQL命令的使用;熟悉了对数据表中视图的更新操作和SQL命令的使用,体会到了视图的作用。实验九 触发器的创建与使用一、实验目的本实验的目的是使学生进一步掌握SQL Server触发器的创建及使用方法,加深SQL触发器的理解。通过对数据的更新操作体会其触发器的作用。二、实验要求1. 在实验之前做好准备2. 试验之后提交实验报告,并验收实验结果三、实验内容1. 在班级表class中增加班级人数(c_total)字段Alter table class 2. 创建I

49、NSERT触发器t_inst_stu3. 创建DELETE触发器t_dele_stu:在学生表(student)中删除一名学生,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动减1。4. 创建UPDATE触发器t_update_stu。5. 体会触发器的作用。四、实验步骤1. 在班级表class中增加班级人数(c_total)字段,默认值是0;并手动统计人数作为该字段的值; alter table classadd c_total int default 0;update classset c_total = '3'where class.cls

50、no = 'cs01'update classset c_total = '1'where class.clsno = 'gl01'update classset c_total = '1'where class.clsno = 'mt04' 2. 创建INSERT触发器t_inst_stu:在学生表(student)中每新增一名学生,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动加1。 create trigger update_stu after insert on stude

51、nt for each row begin if(:new.clsno is not null)then update class set c_total = c_total + 1 where :new.clsno = class.clsno; end if; end;insertinto student(sno,sname,scsex,clsno,saddr,sage,height)values('20071102','李四','男','cs01',null,'17',null);3. 创建DELETE触发器t

52、_dele_stu:在学生表(student)中删除一名学生,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动减1。create trigger t_dele_stu after delete on student for each row begin if(:old.clsno is not null)then update class set c_total = c_total - 1 where :old.clsno = class.clsno; end if; end;4. 创建UPDATE触发器t_update_stu:当某学生所在班号发生变化时(即调

53、到另一班级后),将其原先所在班级的人数(c_total)减1,将新调入的班级班级的人数(c_total)加1。create trigger t_update_stuafter update on studentfor each row begin if(:old.clsno <> :new.clsno)then update class set c_total=c_total-1 where :old.clsno = class.clsno; update class set c_total=c_total+1 where :new.clsno = class.clsno; end

54、 if; end;5、 实验总结 通过本次实验,我了解了触发器的相关原理,掌握触发器的定义,理解了触发器的使用方法及其特点。 实验十 存储过程的创建与使用一、实验目的本实验的目的是使学生进一步掌握SQL Server存储过程的创建及使用方法,加深对SQL存储过程的理解。通过对存储过程的调用体会其作用。二、实验要求1. 在实验之前做好准备2. 试验之后提交实验报告,并验收实验结果三、实验内容1、创建一个不带参数的存储过程p_stu_info1,实现对满足要求的学生基本信息的查询。2、创建一个带有参数的存储过程p_stu_info2,实现对满足要求的学生基本信息的查询。3、创建一个存储过程p_stu_info3,根据输入的学号,查询某学生的基本信息。4、创建一个存储过程p_stu_grade,根据输入的学号,返回其选课及其成绩。5.使用SQL语句分别执行p_stu_info1、p_stu_info2、p_stu_info3和p_stu_grade,并将结果显示出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论