




已阅读5页,还剩135页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统实验目 录实验1 数据库的创建与管理3实验2 表的创建与管理17实验3 数据操作25实验4 完整性约束33实验5 索引43实验6 视图47实验7 数据查询52实验8 存储过程62实验9 触发器70实验10 T-SQL程序设计78实验11自定义数据类型和函数82实验12 SQL Server 安全管理93实验13 SQL Server事务设计99实验14 数据库备份与恢复106实验15 数据的导入、导出121实验16 数据的访问132实验1 数据库的创建与管理一、实验目的1掌握使用创建数据库。2掌握使用分离数据库。3掌握使用数据库文件备份。4掌握使用附加数据库。5掌握使用删除数据库。二、实验内容1.使用向导、企业管理器和Transact-SQL语句创建数据库,并查看数据库属性。1.1 使用向导创建数据库:数据库名称为mybase1;并查看数据库属性。1.2 使用企业管理器Enterprise Manager创建数据库:数据库名称为mybase2;并查看数据库属性;修改数据库参数:把数据库mybase2文件增长参数设置为2MB,文件最大大小参数设置为10MB。1.3 使用Transact-SQL指定参数创建数据库;查看数据库属性。2.使用企业管理器和系统存储过程分离和附加数据库。2.1 使用企业管理器分离数据库。2.2 使用系统存储过程分离数据库。2.3 使用企业管理器附加数据库。2.4 使用系统存储过程附加数据库3.使用企业管理器和系统存储过程删除数据库。3.1使用企业管理器删除数据库。3.2使用系统存储过程删除数据库。三、实验步骤练习1 用企业管理器创建数据库。 (1)创建数据库twstudent。 (2)右击数据库,从弹出的快捷菜单中选择“新建数据库”命令。 (3)输入数据库名称twstudent。 (4)打开“数据文件”选项卡,增加一个文件twstudent1,初始大小为5MB。 (5)打开“事务日志”选项卡,增加一个日志文件twstudentl log,初始大小为5MB。 (6)单击“确定”按钮,开始创建数据库。 练习2 用Transact-SQL语句创建数据库。打开查询分析器,创建数据库twsmdentl。数据库的参数如表2-1所示。表2-1 数据库参数参数参数值数据库名称twstudentl数据库逻辑文件名studentl_dat操作系统数据文件名D:twtestbase1studentl_dat.mdf数据文件初始大小10MB数据文件最大值50MB数据文件增长量原来的20%日志逻辑文件名Student1_log操作系统日志文件名D:twtestbase1studentl_log.ldf日志文件初始大小5MB日志文件最大值25MB日志文件增长量5MB (1)设置数据库选项使用企业管理器修改数据库选项。右击数据库,从弹出的快捷菜单中选择“属性”命令,打开“twstudent1属性”对话框,打开“选项”选项卡,选中“只读”复选框。这样数据库就变为只读数据库。然后打开查询分析器使用TSQL语句更改数据库选项。EXEC SP_DBOPTION twstudent1, read only,TRUE (2)收缩数据库使用企业管理器收缩数据库。右击数据库,从弹出的快捷菜单中选择“所有任务”一“收缩数据库”命令,输入收缩量。使用Transact-SQL语句压缩数据库。 (3)更改数据库打开查询分析器更改数据库student,参数如表22所示。表2-2 更改后的参数参数参数值数据库twstudent增加的文件组名twstudentFGl 增加的文件1的逻辑名twstudentdat3 文件1在磁盘中的目录D:twtestbase1twstudentdat3.ndf 文件1初始大小5MB 文件1最大值50MB 文件1增长量5MB 增加的文件2的逻辑名twstudentdat4 文件2磁盘中的目录D:twtestbase1twstudentdat4.ndf 文件2初始大小5MB 文件2最大值50MB文件2增长量5MB 新增日志逻辑文件名twstudentlog2 日志文件在磁盘中的目录D:twtestbase1twstudentlog2.ldf 日志文件初始大小5MB 日志文件最大值1OOMB 日志文件增长量5MB练习3 将实验中所创建的数据库分离,拷贝到U盘或可移动磁盘中,完成数据库的可携性备份,供下次实验时进行附加数据库。四、实验结果1SQL server 2000提供了三种方法来建立自己的数据库,实验结果表明其简单明了、操作方便。初学者也能方便快捷地创建好符合自己要求的数据库。2SQL server 2000提供的分离和附加数据库功能使得数据库的移动变得简单。也有利于做实验时保存自己的实验资料。实验2 数据表的创建与管理一、实验目的1掌握SQL Server数据表的结构特点;2掌握SQL Server的基本数据类型;3掌握创建与删除表的两种方法;4掌握修改表结构的方法。二、实验内容1. 利用企业管理器和Transact-SQL语句两种方法创建表;1.1 在实验一建立的数据库mybase2中,利用企业管理器创建student表。1.2 利用Transact-SQL语句方法创建teacher表。2利用企业管理器和Transact-SQL语句两种方法修改表结构。2.1利用企业管理器修改表结构:在Teacher表中,将Sname列的数据长度改为12(原来为10),且追加学籍列: 列名: NATIVE 数据类型:CHAR 长度:40 允许空否: 可以为空2.2 利用Transact-SQL语句修改表结构:在Student表中增加一列,列名为NATIVE,数据类型为NCHAR,长度为40。3. 利用企业管理器和Transact-SQL语句两种方法删除表。3.1利用企业管理器删除Student表。3.2利用Transact-SQL语句删除Teacher表。三、实验步骤练习1 在twsudent数据库中利用查询分析器创建课程信息表Course,要求如表3-1所示。表3-1 Course表信息主键列名数据类型宽度小数位空否备注PKConChar3N课程代码CnameChar20Y课程名称CpnoChar3Y先行课号CreditDecimal31Y学分利用Transact-SQL语句创建选课成绩表Sc和操作员表Operator结构表如表3-2、表3-3所示。表3-2 Sc表信息主键列名数据类型宽度小数位空否备注PKSonChar5N课程代码ConChar3N课程名称CradeDecimal51Y学分表3-3 Operator表信息主键列名数据类型宽度小数位空否备注PKOperator_idChar4N操作员编号Operator_nameChar12Y操作员姓名PasswordChar10Y密码PermissionChar20Y权限练习2 表的管理(1)用企业管理器创建教工表teacher,要求如表3-4所示。表3-4 teacher表信息列名数据类型是否允许为空约束IDENTITY属性教工号Int否主键无姓名Varchar是无无家庭住址Char(30)是无无电话Int是无无性别Char(2)否默认为男无系别Varchar(16)否必须是计算机软件、计算机体系结构、计算机网络之一无(2)在查询分析器中用命令DROPTABLE teacher 删除该表。(3)根据条件查询分析器中输入以下语句:CREATE TABLE teacher(教工号 INT PRIMARY KEY IDENTITY(1,1)姓名 VARCHAR(18)NULL,家庭住址 CHAR(30)NULL,电话 INT NULL,职称职 CHAR(14) DEFAULT 讲师,所在专业VARCHAR(16)CONSTRAINT chnamelCHECK(所在专业 IN (计算机体系结构,计算机网络,计算机软件)(4)单击“查询分析”按钮(或按Ctrl+F5键),看看执行结果。练习3 查看SQLserver 2000中系统自带数据库pubs的信息,熟悉各表之间的相互关系。四、实验结果1数据库表(Table)是数据库内最重要的对象,在SQL server 2000中,创建表很方便快捷的,对于初学者来说,选择在企业管理器中新建表是最容易上手的,对于对SQL语言熟悉的人来说,Transant-SQl方法也是很好的选择。2对于新创建的表,我们一定要在设计阶段将表结构设计好,尽量不要出现创建好表结构且输入部分记录后再来修改表结构。实验3 数据操作一、实验目的1掌握各种录入数据至数据库表的方法;2掌握修改数据库表中数据的方法;3掌握删除数据库表中数据的方法;4掌握复制数据库表的方法。二、实验内容1. 利用企业管理器和Transact-SQL语句两种方法对数据库表进行插入、删除及修改操作;1.1利用企业管理器对数Teacher表进行插入、删除及修改操作。1.2利用Transact-SQL语句对Teacher表进行插入、删除及修改操作。2. 把一个Excel数据表导入数据表中;3. 用SQL复制数据表并生成一新表三、实验步骤练习1 创建用户自定义的数据类型。 (1)打开查询分析器,用sa登录。 (2)在数据库列表中单击twstudent数据库。 (3)在查询分析器中输入语句:EXEC SP ADDTYPEname,CHAR(18),NOT NULL 执行这条语句,然后到企业管理器中查看该数据类型。 (4)在查询分析器中输入语句: EXEC SP_DROPTYPE name 执行该语句,系统将把(3)创建的数据类型删除掉。练习 2 在企业管理器中按照图4.14所示为twstudent中各表添加记录。图4.14 student表信息练习3 在企业管理器中按照表4-1为teacher表添加记录。表4-1 teacher表信息教工号姓名家庭住址电话职称所在教研室2111朱辉生连云港市5817693副教授计算机软件2112单建魁连云港市5817692讲师计算机网络2113赵启升连云港市5817693工程师计算机网络2114胡云连云港市5817692助教计算机软件211葛庆兵连云港市5817694助教计算机系结构(1)进入查询分析器,使用Transact-SQL语句向表中添加year字段,该列为int型,并且不能小于0,如不输入默认值为25,语句如下: AlTER TABlE teacher ADD year int CONSTRAINT chname2 CHECK(year0) CONSTRAINT DEFAULTIDEPAUlT 25 (2)在查询分析器中删除teacher表中的year字段,在删除该字段之前应该先删除在其上定义的约束chname2,语句如下: ALTER TABlE teacher DROP CONSTRAINT Chname2 ALTER TABLE teacher DROP CONSTRAINT defaultl AlTER TABlE teacher DROP COLUMN年龄练习4 修改teacher表内容 (1) 使用Transact-SQL语句向teachr表中插入数据,语句如下:INSERT INTO teacher (教工号,姓名,家庭住址,电话,职称,所在专业) values (2116, 伍俊明,连云港市,5585097,副教授,计算机网络) INSERT INTO teacher (教工号,姓名,家庭住址,电话,职称,所在专业) values (2117,张永,连云港市,817609讲师,计算机体系结构) (2)使用T-SQL更改teacher表,伍俊明的电话改为5585096。 UPDATE teacher SET电话=5585096, WHERE姓名=伍俊明 (3)教工张永辞职,删除张永的记录,语句如下:DELETE FROM teacher WHERE姓名=张永四、实验结果1向数据库中录入数据是一个繁琐的过程,SQL server 2000提供的数据导入导出为数据的共享提供了方便。2在录入数据的过程中,应该采取适当的方法来保证录入数据的正确性。3删除数据要谨慎。实验4 完整性约束一、实验目的1认识完整性约束对数据库的重要性;2掌握实体完整性的创建、修改、维护;3掌握域完整性的创建、修改、维护;4掌握参照完整性的创建、修改、维护;5掌握用户定义的完整性的创建、修改、维护。二、实验内容1. 利用企业管理器和SQL创建PRIMARY KEY 约束、UNIQUE约束、IDENTITY 属性列;利用企业管理器和SQL为列创建DEFAULT约束、CHECK约束。1.1利用企业管理器创建PRIMARY KEY 约束、UNIQUE约束、IDENTITY 属性列,利用企业管理器为列创建DEFAULT约束、CHECK约束。1.2利用SQL创建PRIMARY KEY 约束、UNIQUE约束、IDENTITY 属性列,利用企业管理器为列创建DEFAULT约束、CHECK约束。2. 创建主表和子表关联关系,通过外键实现引用完整性约束,修改、删除引用完整性约束;3. 利用企业管理器和SQL创建、绑定、解除规则。3.1 利用企业管理器创建、绑定、解除规则:创建一个将性别的取值限定在“男”和“女”之间的规则sex_rule,然后将规则sex_rule绑定到Student的列Ssex上,最后解除规则sex_rule。3.2 利用SQL创建、绑定、解除规则:创建一个取值在1000和4000之间的规则comm_rule,然后绑定到Teacher表的comm列上,最后解除规则comm_rule。三、实验步骤1. 利用企业管理器和SQL创建PRIMARY KEY 约束、UNIQUE约束、IDENTITY 属性列;利用企业管理器和SQL为列创建DEFAULT约束、CHECK约束。1.1利用企业管理器创建PRIMARY KEY 约束、UNIQUE约束、IDENTITY 属性列,利用企业管理器为列创建DEFAULT约束、CHECK约束。(1)打开企业管理器,创建表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。(2)右击Sno列,在弹出的快捷菜单中选择“设置主键”,将Sno列设为PRIMARY KEY约束。(3)右击Sname列,在弹出的快捷菜单中选择“索引/键”,在打开的对话框中,将Sname属性列设为UNIQU约束。(4)增加IDENTIFY属性列SID:增加列SID,在表设计器对话框中将“标识”一栏设为“是”。且将标识种子和标识递增量都设为1。(5)选择Ssex列,在下面的“默认值”一栏中填写男,则为Ssex属性设置了DEFAULT约束。(6)右击任意列,在弹出的快捷菜单中选择“CHECK约束”,在弹出的对话框中新建一个约束,在约束表达式中输入(Sage 14 and Sage 0 and Ccredit=0 and Grade=1000 AND comm4000执行后可以查询到新创建了一个规则comm_rule。(2)在查询分析器中输入如入语句:EXEC sp_bindrule comm_rule, Tm执行后就将comm_rule规则绑定到了Teacher表的comm列上。(3)输入如下语句:INSERT INTO Teacher Values (01362,王明,男,30,讲师,1200,800,计算机)执行后发现报错,将记录中的comm值改为1200后,插入记录成功,说明规则创建和绑定成功。 列comm的值在范围1000,4000之外时列comm的值在范围1000,4000之内时(4)在查询分析器中输入如下语句:EXEC sp_unbindrule Tm执行后即解除了规则的绑定。开1)xntte四、实验结果1为表定义完整性约束是一个比较复杂的过程,在定义表的过程中,要注意外键的数据类型定义,应该和被参照表中主键的数据类型一至。2完整性约束尽量做到全面细致,保护数据库中数据的正确性和相容性。实验5 索 引一、实验目的1掌握使用企业管理器创建、修改、删除索引;2掌握使用SQL创建、修改、删除索引;3掌握索引的管理和维护。二、实验内容1. 利用企业管理器管理聚簇索引和非聚簇索引。2. 利用SQL创建聚簇索引和非聚簇索引。3. 利用企业管理器和SQL删除索引。三、实验步骤1. 利用企业管理器管理聚簇索引和非聚簇索引。(1)打开企业管理器,右击mybase2.dbo.Student表,在弹出的菜单中选择“设计表”,然后右击任意列,选择“索引/键”,在弹出的属性对话框中,首先看到存在一个索引,是由primary key定义而产生的,在这里将原来的升序顺序改为降序。(2)单击“新建”按钮,在弹出的对话框中建立一个非聚簇索引,索引名“IX_Student_1”,按列Sdept升序索引。(3)右击mybase2.dbo.Course表,在弹出的菜单中选择 “设计表”,然后右击任意列,选择“索引/键”,在弹出的属性对话框中,将“创建为CLUSTERED”前的勾取消,这样就将定义PRIMARY KEY时默认的聚簇索引改为了非聚簇索引。2. 利用SQL创建聚簇索引和非聚簇索引。(1)在查询分析器中输入如下语句:CREATE clustered INDEX course_clu1 ON Course(Cno);执行后即建立起了一个聚簇索引。(2)在查询分析器中输入如下语句:CREATE INDEX SC_ID1 ON mybase2.dbo.SC(Sno,Cno)执行后在SC表上建立起了一个非聚簇索引SC_ID1,此索引先按Sno升序排列,再按Cno升序排列。3. 利用企业管理器和SQL删除索引。(1)打开企业管理器,右击mybase2.dbo.Course表,在弹出的菜单中选择 “设计表”,然后右击任意列,选择“索引/键”,在弹出的属性对话框中,将“选定的索引”定位为UQ_Course_33D4B598,然后单击“删除”按钮。即将索引UQ_Course_33D4B59删除了。(2)在查询分析器中输入如下语句:DROP INDEX Course.course_clu1;执行后查询到Course表上的course_clu1索引已被删除。;四、实验结果1在SQL server 2000中,无论是使用企业管理器还是TRANSACT_SQL,都能很方便地创建、删除和管理索引。2通过索引可以快速访问表中的记录,大大提高数据库的查询性能,在实际使用中,要根据实际情况来确定什么列需要创建索引。实验6 视图一、实验目的1掌握创建视图的SQL语句的用法;2掌握使用企业管管理器创建视图的方法;3掌握使用创建视图向导创建视图的方法;4掌握查看视图的系统存储过程的用法;5掌握修改、删除视图的方法。二、实验内容1利用企业管理器创建视图,对视图进行查看、修改和删除操作。2利用SQL语句创建视图,对视图进行修改和删除操作。三、实验步骤1利用企业管理器创建视图,对视图进行查看、修改和删除操作。(1)打开企业管理器,在树形结构中展开mybase2数据库,右击“视图”,从弹出的快捷菜单中选择“新建视图”。(2)在新视图对话框中,右击最上面的关系图窗格,从弹出的快捷菜单中选择添加表,将Student 、SC和Course三个表添加进去。然后选择视图中需要的列。保存时将视图的名取为grade。(3)右击视图grade,从弹出的快捷菜单中选择“打开视图|返回所有行”,可以见到视图中的数据如下图。(4)修改视图:右击grade视图,选择“设计视图”,在关系图窗格中,将Course表中Cno列的勾取消掉。(5)再次查看视图中的数据,如下图所示,已没有Cno列。(6)删除视图:右击grade视图,从弹出的快捷菜单中选择“删除”,在弹出的“除去对象”对话框中选择grade,然后单击“全部除去”,查询可知视图grade已删除。2利用SQL语句创建视图,对视图进行修改和删除操作。(1)在查询分析器中输入如下语句:CREATE VIEW grade ASSELECT S.Sno, S.Sname, C.Cno,C.Cname, SC.GradeFROM Student S,Course C,SC WHERE S.Sno =SC.Sno and SC.Cno = C.Cno执行后查询到已创建好视图grade。(2)在查询分析器中输入如下语句:ALTER VIEW grade AS SELECT S.Sno, S.Sname, C.Cname, SC.GradeFROM Student S,Course C,SC WHERE S.Sno =SC.Sno and SC.Cno = C.Cno执行后,视图grade已修改。(3)在查询分析器中输入如下语句:DROP VIEW grade;Go执行后,视图grade被删除。四、实验结果1在SQL server 2000中,无论是使用企业管理器还是TRANSACT_SQL,都能很方便地创建、删除和管理视图。2视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表,它能简化用户的操作,使用户能以多种角度看待同一数据,能够对机密数据提供安全保护。要注意的是,在很多情况下,通过修改视图是可以修改数据库的数据的,所以在管理的过程中要小心谨慎地设置好一些参数。实验7 数据查询一、实验目的1掌握查询分析器的使用方法;2掌握SELECT语句的基本语法和查询条件的表示方法;3掌握数据汇总、分组和排序的使用方法;4掌握单表查询的应用;5掌握多表连接查询的应用;6掌握嵌套查询的应用。二、实验内容1在查询分析器中使用SELECT语句进行单表查询。1.1 指定若干列(或全部)的查询:查询全体学生的学号、姓名与出生年份;查询全体学生的详细记录。1.2 按条件查询及模糊查询:查询计算机系的全体学生的名单;查询姓周的学生的学号、姓名和性别。1.3 使用聚集函数的查询:查询选修了课程的学生人数;查询选修001号课程的最高分和最低分。1.4 对查询结果排序和分组:查询选修了002号课程的学生的学号和成绩,查询结果按分数的降序排列;查询各个课程号及相应的选课人数。2在查询分析器中使用SELECT语句进行连接查询。2.1 等值连接查询:查询所有选课学生的学号,姓名,选课名称及成绩。2.2 自身连接查询:查询每一门课的间接先修课,列出课程号,课程名和间接先修课的课程号。2.3 外连接:查询所有选课学生的学号,姓名,选课名称及成绩(没有选课的同学的选课信息显示为空)。3在查询分析器中使用SELECT语句进行嵌套查询。3.1 带有比较运算符的嵌套查询:查询其他系中比计算机系所有学生年龄都大的学生姓名及年龄。3.2 带有EXISTS谓词的查询:查询没有选修001号课程的学生姓名;查询选修了全部课程的学生姓名。4在查询分析器中使用SELECT语句进行集合查询:查询机电系的学生及年龄小于19岁的学生。三、实验步骤1在查询分析器中使用SELECT语句进行单表查询。1.1 指定若干列(或全部)的查询:查询全体学生的学号、姓名与出生年份;查询全体学生的详细记录。(1)查询全体学生的学号、姓名与出生年份:启动查询分析器,在查询窗口输入如下SQL语句并执行。USE mybase2GOSELECT Sno,Sname,2009-Sage Birthday FROM StudentGO(2)查询全体学生的详细记录:查询窗口中输入如下语句并执行。SELECT * FROM StudentGO1.2 按条件查询及模糊查询:查询计算机系的全体学生的名单;查询姓周的学生的学号、姓名和性别。在查询窗口输入如下SQL语句并执行。(1)查询计算机系的全体学生的名单:在查询窗口输入如下SQL语句并执行。SELECT Sname FROM Student WHERE Sdept=计算机GO(2)查询姓周的学生的学号、姓名和性别。在查询窗口输入如下SQL语句并执行。SELECT Sno 学号,Sname 姓名,Ssex 性别 FROM StudentWHERE Sname LIKE 周%GO1.3 使用聚集函数的查询:查询选修了课程的学生人数;查询选修001号课程的最高分和最低分。(1)查询选修了课程的学生人数。在查询窗口输入如下SQL语句并执行。SELECT COUNT(DISTINCT Sno) 选了课的人数 FROM SCGO(2)查询选修001号课程的最高分和最低分。在查询窗口输入如下SQL语句并执行。SELECT MAX(Grade) 最高分,MIN(Grade) 最低分FROM SCWHERE Cno=001GO1.4 对查询结果排序和分组:查询选修了002号课程的学生的学号和成绩,查询结果按分数的降序排列;查询各个课程号及相应的选课人数。(1)查询选修了002号课程的学生的学号和成绩,查询结果按分数的降序排列。在查询窗口输入如下SQL语句并执行。SELECT Sno AS 学号,Grade AS 分数 FROM SCWHERE Cno=002ORDER BY Grade DESCGO(2)查询各个课程号及相应的选课人数。在查询窗口输入如下SQL语句并执行。SELECT Cno AS 课程号,COUNT(Sno) AS 选课人数 FROM SCGROUP BY Cno GO2在查询分析器中使用SELECT语句进行连接查询。2.1 等值连接查询:查询所有选课学生的学号,姓名,选课名称及成绩。(1)查询所有选课学生的学号,姓名,选课名称及成绩。在查询窗口输入如下SQL语句并执行。SELECT S.Sno,Sname,Cname,GradeFROM Student s,SC,Course CWHERE S.Sno=SC.Sno AND C.Cno=SC.CnoGO2.2 自身连接查询:查询每一门课的间接先修课,列出课程号,课程名和间接先修课的课程号。(1)查询每一门课的间接先修课,列出课程号,课程名和间接先修课的课程号。在查询窗口输入如下SQL语句并执行。SELECT CF.Cno,CF.Cname 课程,CS.Cpno 间接先修课程号FROM Course CF,Course CSWHERE CF.Cpno=CS.CnoGO2.3 外连接:查询所有选课学生的学号,姓名,选课名称及成绩(没有选课的同学的选课信息显示为空)。(1)左外连接:查询所有选课学生的学号,姓名,选课名称及成绩(没有选课的同学的选课信息显示为空)。在查询窗口输入如下SQL语句并执行。SELECT S.Sno,Sname,Cname,GradeFROM Student S LEFT OUTER JOIN SC ON S.Sno=SC.SnoLEFT OUTER JOIN Course C ON C.Cno=SC.CnoGO3在查询分析器中使用SELECT语句进行嵌套查询。3.1 带有比较运算符的嵌套查询:查询其他系中比计算机系所有学生年龄都大的学生姓名及年龄。(1)查询其他系中比计算机系所有学生年龄都大的学生姓名及年龄。在查询窗口输入如下SQL语句并执行。SELECT Sname,SageFROM StudentWHERE Sdept计算机 AND SageALL (SELECT DISTINCT Sage FROM Student WHERE Sdept=计算机 ) GO3.2 带有EXISTS谓词的查询:查询没有选修001号课程的学生姓名;查询选修了全部课程的学生姓名。(1)查询没有选修001号课程的学生姓名。在查询窗口输入如下SQL语句并执行。SELECT SnameFROM StudentWHERE NOT EXISTS (SELECT * FROM SC WHERE Cno=001 AND Student.Sno=SC.Sno)GO(2)查询选修了全部课程的学生姓名。SELECT SnameFROM StudentWHERE NOT EXISTS (SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno)GO4在查询分析器中使用SELECT语句进行集合查询:查询机电系的学生及年龄小于19岁的学生。(1)查询机电系的学生及年龄小于19岁的学生。在查询窗口输入如下SQL语句并执行。SELECT *FROM StudentWHERE Sdept=机电UNIONSELECT *FROM StudentWHERE Sage19GO四、实验结果1SQL标准语言提供了具有丰富功能的SELECT语句进行数据的查询,为用户使用库中数据提供了方便。2熟练地掌握SELECT语句的使用方法,为充分利用数据库中的数据打好基础。实验8 存储过程一、实验目的1掌握存储过程的概念和功能;2掌握创建存储过程的方法和步骤;3掌握存储过程的修改、调用和删除的方法。二、实验内容1用企业管理器创建并执行一存储过程SP_raises:存储过程通过教师号来修改教师的岗位津贴(comm),如果岗位津贴小于4000,则将此教师的岗位津贴增加200,否则不变。默认教师号是“01361”。2调用存储过程SP_raises,给教师号为”01362”的教师记录的comm值增加200元(如果comm大于4000则不加)。3修改存储过程SP_raises,将增加值从200改为400。4删除存储过程SP_raises。5用SQL创建并执行一存储过程SP_AddCredit:根据Course表中Ccredit(学分)列的值来修改学分,如果学分小于或等于2,则学分加1,否则加0.5。 6执行存储过程SP_AddCredit,给Course表中Cno值为001和005的记录修改Ccredit值。三、实验步骤1用企业管理器创建并执行一存储过程SP_raises:存储过程通过教师号来修改教师的岗位津贴(comm),如果岗位津贴小于4000,则将此教师的岗位津贴增加200,否则不变。默认教师号是“01361”。(1)打开企业管理器,在树形结构中展开mybase2数据库,右击“存储过程”,在弹出的快捷菜单中选择“新建存储过程”,在打开的存储过程属性对话框加输入如下定义语句:CREATE PROCEDURE SP_raises Teacher_no char(10) =01361AS declare Teacher_comm smallint ; select Teacher_comm=comm from mybase2.dbo.Teacher where Tno=Teacher_no; set Teacher_comm=Teacher_comm+200; if Teacher_comm4200 update mybase2.dbo.Teacher set comm=Teacher_comm where Tno=Teacher_no;GO定义完成后,执行“检查语法”,通过后保存退出。2调用存储过程SP_raises,给教师号为”01362”的教师的comm增加200元(如果comm大于4000则不加)。(1)在查询分析器中先查询教师号为”01362”的教师的comm值。(2)在查询分析器中输入如下语句并执行:EXEC Sp_raises 01362;(3)在查询分析器中查询执行存储过程后的结果,从结果可以看出,Tno值为01362的教师记录的Comm值已从1200元增加到了1400元。3修改存储过程SP_raises,将增加值从200改为400。(1)右击存储过程SP_raises,从弹出的快捷菜单中选择“属性”,在打开的存储过程属性对话框中,将原来的200改为400,单击确定退出。(2)在查询分析执行并查看结果。EXEC SP_raises 01362;SELECT Tno,Comm from Teacher WHERE Tno=01362;4删除存储过程SP_raises。在企业管理器中右击存储过程SP_raises,从弹出的快捷菜单中选择“删除”。5用SQL创建并执行一存储过程SP_AddCredit:根据Course表中Ccredit(学分)列的值来修改学分,如果学分小于或等于2,则学分加1,否则加0.5。 (1)在查询分析器中执行如下语句,建立存储过程SP_AddCredit。CREATE PROCEDURE SP_AddCreditCourse_no char(4) =001AS declare course_credit decimal(4,2) ; select course_credit=Ccredit from mybase2.dbo.Course where Cno=Course_no; if Course_credit=2 set Course_credit=Course_credit+1; else set Course_credit=Course_credit+0.5; update mybase2.dbo.Course set Ccredit=Course_credit where Cno=Course_no;GO6执行存储过程SP_AddCredit,给Course表中Cno值为001和005的记录修改Ccredit值。(1)查询Course表中数据。(2)调用存储过程SP_AddCredit。EXEC SP_AddCredit 001GOEXEC SP_AddCredit 005GO(3)查看执行存储赛程后的结果。SELECT * from Course;四、实验结果1存储过程允许模块化程序设计,第一次执行时编译好后,其它
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年审计师考试审计职业道德与法律责任试卷
- 2025年期货从业资格考试衍生品市场与交易试卷
- 公司股权转让详细协议签署事项
- 清丰县期中卷子数学试卷
- 全国一卷江西数学试卷
- 内蒙古三模数学试卷
- 南通开放大学数学试卷
- 青羊区八年级下数学试卷
- 惠州市惠东县平山街道招聘村党组织书记储备人选考试真题2024
- 福建浦开集团有限公司招聘考试真题2024
- 达州电力集团笔试真题
- AAMIST79-2017卫生保健设施蒸汽灭菌和无菌保证综合指南
- 《BOM材料清单教程》课件
- 《安全管理体系》课件
- 树立正确的人生价值观课件
- 防腐保温工程监理实施细则
- 法律事务所信息安全管理制度
- DB33T1373-2024农村电影放映服务规范
- 肿瘤患者的康复与护理
- 学生矫治教育申请书
- 防范工贸行业典型事故三十条措施解读
评论
0/150
提交评论