当前位置:首页 >> 工学 >>

数据库系统原理实验报告册(带答案)


河南工程学院 计算机科学与工程系

数据库系统原理 实验报告册

学 课 专 班 学 姓

期: 程: 业: 级: 号: 名:

指导教师: 指导教师:

目 录
实验一 SQL Server 2000 安装、数据库创建及管理............................................... 1 一、实验学时......................................................................................................... 1 二、实验目的......................................................................................................... 1 三、实验内容......................................................................................................... 1 四、实验要求....................................................................................................... 13 五、代码清单....................................................................................................... 13 六、实验中出现的问题及解决的方法............................................................... 15 七、思考讨论题或体会或对改进实验的建议................................................... 16 实验二 表和表数据的操作........................................................................................ 17 一、实验学时....................................................................................................... 17 二、实验目的....................................................................................................... 17 三、实验内容....................................................................................................... 17 四、实验要求....................................................................................................... 22 五、代码清单....................................................................................................... 22 六、实验中出现的问题及解决的方法............................................................... 24 七、思考讨论题或体会或对改进实验的建议................................................... 25 实验三 索引和视图.................................................................................................... 26 一、实验学时....................................................................................................... 26 二、实验目的....................................................................................................... 26 三、实验内容....................................................................................................... 26 四、实验要求....................................................................................................... 31 五、代码清单....................................................................................................... 31 六、实验中出现的问题及解决的方法............................................................... 33 七、思考讨论题或体会或对改进实验的建议................................................... 34 实验四 T-SQL 程序设计............................................................................................. 35 一、实验学时....................................................................................................... 35
I

二、实验目的....................................................................................................... 35 三、实验内容....................................................................................................... 35 四、实验要求....................................................................................................... 39 五、代码清单....................................................................................................... 39 六、实验中出现的问题及解决的方法............................................................... 41 七、思考讨论题或体会或对改进实验的建议................................................... 42 实验五 数据库安全性................................................................................................ 43 一、实验学时....................................................................................................... 43 二、实验目的....................................................................................................... 43 三、实验内容....................................................................................................... 43 四、实验要求....................................................................................................... 46 五、代码清单....................................................................................................... 47 六、实验中出现的问题及解决的方法............................................................... 49 七、思考讨论题或体会或对改进实验的建议................................................... 49 实验六 数据库完整性................................................................................................ 51 一、实验学时....................................................................................................... 51 二、实验目的....................................................................................................... 51 三、实验内容....................................................................................................... 51 四、实验要求....................................................................................................... 54 五、代码清单....................................................................................................... 54 六、实验中出现的问题及解决的方法............................................................... 56 七、思考讨论题或体会或对改进实验的建议................................................... 57

II

实验一 SQL Server 2000 安装、数据库创建及管理
一、实验学时:2 学时 二、实验目的
(1)了解安装 SQL Server2000 的硬件和软件环境。 (2)掌握 SQL Server 2000 的安装方法。 (3)掌握 SQL Server 2000 服务器工具的使用方法。 (4)灵活运用 SQL Server 数据库的创建方法。 (5)掌握数据库与物理文件的结构关系,理解数据文件分组的作用。 (6)掌握 SQL Server 中使用企业管理器和查询分析器创建数据库备份和恢 复的方法。

三、实验内容
(一)熟悉 SQL Server 2000 环境 1.安装 SQL Server 2000 的硬件要求、软件环境 (1)硬件要求 ①CPU:Intel Pentium 或与兼容,主频 166MHz 以上,DEC Alpha 及其兼容系 统也可以。 ②内存 (RAM) 企业版、 : 标准版、 开发版至少 64MB 内存, 个人版在 Windows 2000 上至少 64MB,在其他操作系统上至少 32MB。其他版本最少需要 32MB 内 存,建议使用更多的内存。 ③硬盘空间: SQL Server 数据库组件:95MB~270MB,一般为 250MB。 Analysis Services:至少 50MB,一般为 130MB。 English Query:80MB。 (2)软件要求
表 1-1 安装 SQL Server 2000 的操作系统要求

版本或组件 企业版 标准版 个人版

操作系统要求 Windows NT SERVER 4.0、 Windows 2000 Server、 Windows 2000 Advanced Server、Windows 2000 Data Center Server Windows NT SERVER 4.0、 Windows 2000 Server、 Windows 2000 Advanced Server、Windows 2000 Data Center Server Windows 98、Windows Me、Windows 2000 Professional、 Windows NT SERVER 4.0、Windows 2000 Server 和所有更 高级的 Windows 操作系统。
1

开发板

Windows 98、Windows Me、Windows NT SERVER 4.0、 Windows 2000 Professional、 Windows 2000 Server 和所有 更高级的 Windows 操作系统。

说明: ☆在 Microsoft Windows NT Server 4.0 上,必须安装 Service Pack5 (SP5)或更 高版本。这是 SQL Server 2000 所有版本的最低要求。SQL SERVER 2000 中文版不 支持英文版的 NT 4.0 企业版。 ☆SQL SERVER 2000 在 Windows NT 4.0 终端服务器上不受支持。在不带网卡 的 Windows 98 计算机上安装 SQL SERVER 2000 个人版, 需要 Windows 98 第二版。 ☆SQL SERVER 2000 的某些功能要求在 Microsoft Windows 2000 SERVER 以上 的版本才能运行。 因此大家安装 Windows SERVER 2000 (建议为 Advanced 版本) 。 2.SQL Server 2000 的安装 SQL Server 2000 的安装过程与其它 Microsoft Windows 系列产品类似。用户 可根据向导提示,选择需要的选项一步一步地完成。安装步骤如下: 以标准版的安装为例。开始安装时,插入 SQL SERVER 光盘,系统会自动运 行 Autorun.exe 文件,并显示初始安装界面。如果没有显示初始安装界面,你需 要运行安装光盘上的 Setup.exe 程序来启动安装。安装主界面如图 1-1 所示。

图 1-1 安装 SQL Server 2000 组件界面

选择安装 SQL Server 2000 组件,出现组件安装界面,如图 1-2 所示。

图 1-2 安装 SQL Server 2000 组件选项界面
2

选择安装数据库服务器,进入 SQL Server 2000 的安装向导,如图 1-3 所示。

图 1-3 安装向导界面

点击“下一步”,到计算机名称对话框,如图 1-4 所示。 用户可以选择把数据库安装在本地计算机或网络上的远程计算机。 对本地计 算机和远程计算机,可用的选项是相同的。但进行远程安装时,本地计算机和远 程计算机必须运行 WINNT/2000 并且必须使用远程计算机的帐号登录到该计算 机。

图 1-4 计算机名称界面

“本地计算机”是默认选项,本地计算机的名称就显示在上面,点击“下一 步”,出现安装选择对话框,如图 1-5 所示。

图 1-5 安装选择界面

3

默认选择 “创建新的 SQL Server 实例, 或安装客户端工具” 点击 , “下一步” , 出现用户信息对话框,如图 1-6 所示。

图 1-6 用户信息界面

输入姓名和公司名称,点击“下一步”,出现软件许可协议,如图 1-7 所示。

图 1-7 软件许可证协议界面

点“是”按钮,出现安装定义对话框,如图 1-8 所示。

图 1-8 安装定义界面

选择“服务器和客户端工具”,点击下一步,出现实例名对话框,如图 1-9 所示。

4

图 1-9 实例名称界面

选择默认实例或输入一个实例名。SQL SERVER 支持多实例,不同的实例有 自己的一套数据库对象,相互间不共享。系统提供了“默认”复选框,点击下一 步,出现安装类型选择框,如图 1-10 所示。

图 1-10 安装类型界面

典型安装使用了默认安装选项,包括 SQL SERVER、客户管理工具和在线文 档。最小安装只安装了能够允许运行和使用 SQL SERVER 的必须和最小配置。自 定义安装可以增加、改变或删减不同的安装组件。选择典型,点击“下一步”, 出现服务帐户对话框,如图 1-11 所示。

图 1-11 服务帐户界面

分配一个 WINDOWS 用户帐号给 SQL SERVER 和 SQL SERVER Agent。 使用域帐 号可以允许系统通过网络与不同的服务器进行交互。在 XP 中安装,请选择“使 用本地系统帐户”这一项。接受系统的缺省值,点击“下一步”,出现身份验证 模式窗口,如图 1-12 所示。
5

图 1-12 身份验证界面

接受系统的缺省值,点击“下一步”,出现开始拷贝文件窗口,如图 1-13 所示。

图 1-13 开始文件复制界面

点击“下一步”,开始将文件拷贝到选择的目录中,如图 1-14 所示。

图 1-14 文件复制界面

文件拷贝完成后,出现安装结束界面,如图 1-15 所示。

6

图 1-15 安装完毕界面

点击“完成”按钮,完成 SQL Server 2000 的安装。 3.SQL Server 2000 服务的启动和停止 启动和停止 SQL Server 服务器实例,有下列方法: ① 在操作系统启动时自动启动每个服务。 开始 设置 控制面板 管理工具 服务,系统打开 Windows XP 服 务窗口,如图所示。

图 1-16 系统服务界面

选择名称为“MSSQLSERVER”的服务,单击“操作”菜单 选“启动”菜 单项。 ② 用 SQL Server 服务管理器启动或停止服务。 开始 所有程序 Microsoft SQL Server 服务管理器, 则进入服务管理器 界面,如图所示。

7

图 1-17 服务管理器界面

③ 在 Windows NT 或 Windows 2000 及以后各 Windows 系统中, 使用 net start 和 net stop 命令启动或停止 SQL Server 服务器服务,如图所示。

图 1-18 命令提示符界面

④ 用 SQL Server 企业管理器启动或停止服务。 第 1 步 选择开始 所有程序 Microsoft SQL Server 企业管理器,进入 企业管理器界面,右边为系统安装时建立的默认 SQL Server 组的图标。 第 2 步 双击 SQL Server 组图标,右边显示的是系统安装时建立的默认服务 器实例的图标,图中的服务器实例处于停止状态。

图 1-19 启动企业管理器后的界面

图 1-20 未启动服务器服务时的企业管理器

第 3 步 双击该图标,系统将启动 SQL Server 服务器的服务,并建立企业管
8

理器与该实例的连接,如图所示。

图 1-21 展开服务器后的界面

图 1-22 服务管理器属性界面

⑤ 使用 SHUTDOWN 语句停止服务。 在查询分析器中使用 SHUTDOWN 语句命令停止服务。 4.熟悉 SQL Server 2000 中的企业管理器、查询分析器等工具的启动与使用。 SQL Server 2000 主菜单如图 1-23 所示:

图 1-23 SQL Server 2000 主菜单

(二)数据库的创建及管理 1.用企业管理器创建数据库 创建一个名称为学生课程 Stu_Course 数据库。数据文件的逻辑文件名为 “Stu_Course_data” 磁盘文件名为 , “Stu_Course_data.mdf” 初始大小设为 1MB, , 文件增长增量设为 10%,文件增长方式设为自动增长,文件的增长上限设为 10MB ; 事 务 日 志 文 件 的 逻 辑 文 件 名 为 “ Stu_Course_log ” 磁 盘 文 件 名 为 , “Stu_Course_log.ldf” ,初始大小为 1MB,文件增长增量设为 1MB,文件的增长 限制设为 5MB。 具体创建步骤记录如下: 2.用 T-SQL 语言创建数据库 (1)创建数据库 Stu_Course1 的具体参数如下: 参数名称 参考参数 数据库名称 Stu_Course1 数据逻辑文件名称 Stu_Course1_data 数据物理文件名称 Stu_Course1_data.mdf 数据文件初始大小 1MB 数据文件大小最大值 10MB 10% 数据文件增长增量
9

日志逻辑文件名称 Stu_Course1_log 日志物理文件名称 Stu_Course1_log.ldf 日志文件初始大小 1MB 日志文件大小最大值 5MB 日志文件增长增量 1MB 在查询分析器中输入如下所示的创建数据库的 T-SQL 语句:
CREATE DATABASE Stu_Course1 ON ( NAME = 'Stu_Course1_data', FILENAME = 'c:\program files\microsoft sql server\mssql\data\Stu_Course1_data.mdf', SIZE = 1MB, MAXSIZE = 10MB, FILEGROWTH = 10% ) LOG ON ( NAME = 'Stu_Course1_log', FILENAME = 'c:\program files\microsoft sql server\mssql\data\Stu_Course1_log.ldf', SIZE = 1MB, MAXSIZE = 5MB, FILEGROWTH = 1MB )

(2)查看、验证创建的数据库 方法 1:执行 sp_helpdb 系统存储过程查看 Stu_Course 数据库的信息。 命令:
sp_helpdb Stu_Course

方法 2:在企业管理器中查看。 具体操作方法:

3.修改数据库的属性 创建完一个数据库后,可以用企业管理和 T-SQL 语句查看数据库,修改数据 库属性,改变数据库大小。 (1)用企业管理器修改数据库属性 将数据库 Stu_Course1 数据文件的初始大小改为 3MB,最大值改为 30MB, 数据增长改为 5%,日志文件的初始大小改为 2MB,最大值改为 10MB,数据增 长改为 10%。 操作步骤记录如下:

(2)用 T-SQL 语句修改数据库的属性 用 T-SQL 语言可以全面管理数据库。
10

1)修改 Stu_Course1_log 日志文件的最大值。 将 Stu_Course1 日志文件的最大值由 10MB 更改为 20MB,T-SQL 语句:
alter database Stu_Course1 modify file ( name='Stu_Course1_log', maxsize=20MB )

2)修改 Stu_Course1_log 日志文件的初始值。 将 Stu_Course1 日志文件的初始值由 2MB 更改为 10MB,T-SQL 语句:
alter database Stu_Course1 modify file ( name='Stu_Course1_log', size=10MB )

3)将数据库 Stu_Course1 数据文件的初始大小改为 30MB,最大值改为 300MB,数据增长改为 10%。 用 T-SQL 语句:
alter database Stu_Course1 modify file ( name='Stu_Course1_data', size=30MB, maxsize=300MB, filegrowth=10% )

4.数据库的更名及删除 (1)使用企业管理器进行 Stu_Course1 数据库的更名及删除 1)将 Stu_Course1 数据库更名为 Stu_Course2。 (提示:使用分离数据及附加 数据,再加入时更名即可) 。 操作步骤:

2)数据库删除。 操作步骤:

(2)使用 T-SQL 语句进行数据库的更名及删除 1)将数据库 Stu_Course 更名为 Stu_Course2。 T-SQL 命令为(提示:存储过程 sp_renamedb 或用 alter database 命令) :
sp_renamedb Stu_Course,Stu_Course2 或 alter database Stu_Course

11

modify name = Stu_Course2

2)删除数据库 Stu_Course2。
drop database Stu_Course2

(三)数据库的备份和恢复 数据库的 1.在企业管理器中创建一个备份设备。 ① 在企业管理器中扩展服务器,在管理文件夹中找到备份文件夹。用鼠标 右键单击该文件夹,在弹出的菜单中选择“新建备份设备”项,则出现“备份设 备属性”对话框,如图所示。在名称文本框中输入设备名(本例为 aa) 。单击“确 定”按钮,备份设备就创建成功了。

图 1-24 “备份设备属性”对话框

② 在备份文件夹的窗口中出现了新创建的设备。选中该设备,用鼠标右键 单击,在弹出的菜单中选择“属性”项,则出现“备份设备属性”对话框。 2.利用向导为 Stu_Course 数据库生成一个完全备份。 ① 在企业管理器中扩展服务器,在数据库文件夹中选中要备份的数据库文 件夹(Stu_Course 数据库) 。选择菜单[工具]|[向导],则出现向导选择对话框。在 向导选择对话框中,单击管理左边的“+”号,使之展开。选择“备份向导”项, 单击“确定”按键。 ② 进入创建备份向导后,首先出现的是欢迎使用创建数据库备份向导对话 框,其中简单介绍了该向导的功能。单击“下一步”后,就会出现“选择要备份 数据库”对话框。选择好要备份数据库后,单击“下一步” ,就会出现“键入备 份的名称和描述”对话框。键入备份名称为“学生课程备份” ,单击“下一步” , 就会出现“选择备份类型”对话框。这里我们选择“数据库备份” ,单击“下一 步” ,就会出现“备份验证和调度”对话框。这里我们选择默认状态,单击“下 一步” ,就会出现“正在完成备份数据库向导”对话框。单击“完成”按钮,完 成备份数据库向导,生成数据库备份 Stu_Course.bak 文件。 ③ 用其他方法生成备份。 (完成 Stu_Course 数据库备份后,请将 Stu_Course.bak 保存起来以备后用) 3.在企业管理器中恢复 Stu_Course 数据库。 ① 打开 Stu_Course 数据库, 删除其中一个表 (如 SC 表)即当前的 Stu_Course , 数据库中没有 SC 表。 ② 恢复 Stu_Course 数据库。步骤如下:在企业管理器中扩展服务器,在数
12

据库文件夹中选中要恢复的数据库文件夹(Stu_Course 数据库) 。用鼠标右键单 击,在弹出的菜单中选择“所有任务”项,在随之出现的级联菜单中选择“还原 数据库”项,则出现还原数据库对话框。在此例中按“确定”按钮即可完成恢复 工作。 ③ 再打开 Stu_Course 数据库, 看一看当前的 Stu_Course 数据库中有没有 SC 表。 ④ 用其他方法进行恢复。 4.使用 T-SQL 语句对 Stu_Course 数据库进行备份与恢复。 (1)使用 T-SQL 语句对 Stu_Course 数据库进行备份 用 T-SQL 语句:
BACKUP DATABASE Stu_Course TO DISK='c:\Stu_Course.bak'

(2)使用 T-SQL 语句对 Stu_Course 数据库进行恢复 用 T-SQL 语句:
RESTORE DATABASE Stu_Course FROM DISK='c:\Stu_Course.bak'

四、实验要求
(1)硬件设备:奔腾 II 或奔腾 II 以上计算机,局域网。 (2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、SQL SERVER 2000 中文版企业版或标准版。 (3)实验课前预习,课后及时完成实验内容。 (4)实验过程及记录按题目格式要求填写在代码清单中。

五、代码清单

13

14

六、实验中出现的问题及解决的方法

15

七、思考讨论题或体会或对改进实验的建议

16

实验二 表和表数据的操作
一、实验学时:2 学时 二、实验目的
(1)掌握表的创建方法。 (2)掌握修改表结构的方法。 (3)掌握添加、修改、删除表数据的方法。

三、实验内容
1.在数据库 Stu_Course 中创建表 (1)使用企业管理器创建 Student 表 Student 表结构及其约束为:
表 2-1 Student 表结构和约束

列名 数据类型 Sno char Sname char Ssex char Sage smallint Sdept char 操作步骤如下:

宽度 9 20 2 20

允许空值 否 是 是 是 是

缺省值

主键 是

说明 学号 姓名 性别 年龄 所在系

CREATE TABLE Student ( Sno char(9) NOT NULL PRIMARY KEY, Sname char(20) NULL, Ssex char(2) NULL, Sage smallint NULL, Sdept char(20) NULL )

(2)使用 T-SQL 语句创建表 1)创建 Course 表 Course 表结构及其约束为:
表 2-2 Course 表结构和约束

列名 Cno Cname Cpno Ccredit

数据类型 char char char smallint

宽度 4 40 4

允许空值 否 是 是 是
17

缺省值

主键 是

外键



说明 课程号 课程名 先行课 学分

创建 Course 表 T-SQL 语句如下: (执行正确后请将以 Course.sql 保存起来以备后用)
CREATE TABLE Course ( Cno char(4) NOT NULL PRIMARY KEY, Cname char(40) NULL, Cpno char(4) NULL, Ccredit smallint NULL, Constraint FK_Course FOREIGN KEY(Cpno) REFERENCES Course(Cno) )

2)创建表 SC 表 SC 表结构及其约束为:
表 2-3 SC 表结构和约束

列名 数据类型 宽度 允许空值 缺省值 主键 Sno char 9 否 是 Cno char 4 否 是 Grade smallint 是 其中成绩为百分制。 创建 SC 表 T-SQL 语句如下: (执行正确后请将以 SC.sql 保存起来以备后用)
CREATE TABLE SC ( Sno char(9) NOT NULL, Cno char(4) NOT NULL, Grade smallint NULL, Constraint PK_SC PRIMARY KEY(Sno,Cno),

外键 是 是

说明 学号 课程号 成绩

Constraint FK_SC_Sno FOREIGN KEY(Sno) REFERENCES Student(Sno), Constraint FK_SC_Cno FOREIGN KEY(Cno) REFERENCES Course(Cno), Constraint CH_SC CHECK(Grade BETWEEN 0 AND 100) )

注意:因为有外键的存在,三张表的创建有先后顺序限制! 2.管理表 (1)添加和删除列 给 Course 表增加一列,字段名为 Ctype(课程类型),类型为 char,长度为 10,允许为空值。 1)使用企业管理器进行。 操作步骤如下:

插入该列后,在企业管理器中删除该列的操作步骤。

2)使用 T-SQL 语句进行。 添加 Ctype 字段的 T-SQL 语句。
ALTER TABLE Course ADD Ctype char(10) NULL

18

删除 Ctype 字段的 T-SQL 语句。
ALTER TABLE Course DROP COLUMN Ctype

(2)表的重命名及删除 1)使用企业管理器重命名及删除表。 重命名操作步骤: (如将 Course 表重命名为 Course1 表)

删除 Course1 表的命令:

2)使用 T-SQL 语句实现 在查询分析器中,将已保存的 Course.sql 打开,运行重建 Course 表。 重命名 Course 表为 Course1 表的 T-SQL 语句。提示: ( 用存储过程 sp_rename)
sp_rename Course,Course1

删除 Course1 表的 T-SQL 语句。
DROP TABLE Course1

3.对表添加、修改、删除数据 对表添加、修改、 (1)插入数据简单操作 1)使用企业管理器向 Student 表中插入数据。
表 2-4 Student 表

Sno 200215121 200215122 200215123 200215125 200215126 操作步骤:
insert into Student

Sname 李勇 刘晨 王敏 张立 张红

Ssex 男 女 女 男 女

Sage 20 19 18 19 19

Sdept CS CS MA IS CS

values ('200215121','李勇','男',20,'CS') insert into Student values ('200215122','刘晨','女',19,'CS') insert into Student values ('200215123','王敏','女',18,'MA') insert into Student values ('200215125','张立','男',19,'IS') insert into Student values ('200215126','张红','女',19,'CS')

其它数据可自行添加。 2)使用 T-SQL 语句向 Course 表中插入数据。
表 2-5 Course 表

Cno 1

Cname 数据库
19

Cpno 5

Ccredit 4

2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构 7 4 6 数据处理 2 7 PASCAL 语言 6 4 在查询分析器中,将已保存的 Course.sql 打开,运行重建 Course 表。 T-SQL 命令为:
insert into Course values ('1','数据库','5',4) insert into Course values ('2','数学',NULL,2) insert into Course values ('3','信息系统','1',4) insert into Course values ('4','操作系统','6',3) insert into Course values ('5','数据结构','7',4) insert into Course values ('6','数据处理',NULL,2) insert into Course values ('7','PASCAL语言','6',4)

其它数据可自行添加。 注意:因为有外键的存在,字段值的添加有先后顺序限制! 3)使用 T-SQL 语句向 SC 表中插入数据。
表 2-6 SC 表

Sno Cno Grade 200215121 1 92 200215121 2 85 200215121 3 88 200215122 2 90 200215122 3 80 T-SQL 命令为: (保存为 insert_SC.sql 已备后用) 。其它数据可自行添加。
insert into SC values ('200215121','1',92) insert into SC values ('200215121','2',85) insert into SC values ('200215121','3',88) insert into SC values ('200215122','2',90) insert into SC values ('200215122','3',80)

(完成以上操作后, 请将 Stu_Course 数据库备份, 得到 Stu_Course.bak 备份
20

文件,保存起来以备后面实验用) (2)修改数据简单操作。 1)在企业管理器中,将 Student 表中的学号为“200215125”的同学的姓名 改为“李双” 。 操作步骤:

2)使用 T-SQL 语句,将 Course 表中的课程号为“2”的学分改为 4。 T-SQL 语句为:
update Course set Ccredit=4 where Cno='2'

3)使用 T-SQL 语句,将 SC 表中的选修了“2”课程的同学的成绩*80%。 T-SQL 语句为:
update SC set Grade=Grade*0.8 where Cno='2'

(3)删除数据简单操作(请注意约束的限制) 1)假设学号为“200215123”的同学已离开学校,则需要删除该记录,请在 企业管理器中将 Student 表中将该记录删除。 操作步骤:

2)删除选修了“信息系统”的学生的记录。 T-SQL 语句:
DELETE SC where Cno in( select Cno from Course where Cname='信息系统')

3)使用 T-SQL 语句,删除所有的学生选课记录。 T-SQL 语句:
DELETE SC

4.复制表中的数据创建新表 (1)将 Student 表中的数据复制到一个新表 Student1 中。 T-SQL 语句:
select * into Student1 from Student

注意:上面的语句在复制时自动生成新表 Student1,而下面的语句要求表 Student1 必先存在,才能插入! !
insert into student1 select * from student

(2)新建库 XUE,将 Stu_Course 库中的 Student 表中的数据复制到 XUE 库 中,名称仍为 Student。 T-SQL 语句:
create database XUE go select * into XUE.dbo.Student from Stu_Course.dbo.Student

21

(3)复制 Stu_Course 库中 SC 表与 XUE 库中的 Student 表的部分内容,以 创建一新表 Student2,其内容包括学生的学号、姓名、课程名、成绩。 T-SQL 语句:
select XUE.dbo.Student.Sno 学号,XUE.dbo.Student.Sname 姓 名,Stu_Course.dbo.Course.Cname 课程名,Stu_Course.dbo.SC.Grade 成绩 into Stu_Course.dbo.Student2 from Stu_Course.dbo.SC,Stu_Course.dbo.Course,XUE.dbo.Student where Stu_Course.dbo.SC.Sno=XUE.dbo.Student.Sno and Stu_Course.dbo.SC.Cno=Stu_Course.dbo.Course.Cno

四、实验要求
(1)硬件设备:奔腾 II 或奔腾 II 以上计算机,局域网。 (2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、SQL SERVER 2000 中文版企业版或标准版。 (3)实验课前预习,课后及时完成实验内容。 (4)实验过程及记录按题目格式要求填写在代码清单中。

五、代码清单

22

23

六、实验中出现的问题及解决的方法

24

七、思考讨论题或体会或对改进实验的建议

25

实验三 索引和视图
一、实验学时:2 学时 二、实验目的
(1)理解索引的概念与类型。 (2)掌握使用企业管理器创建与维护索引的方法。 (3)掌握 T-SQL 语句创建与维护索引的方法。 (4)理解视图的概念。 (5)掌握视图创建、更改的方法。 (6)掌握用视图管理数据的方法。

三、实验内容
(一)索引 索引分为两种:聚簇索引和非聚簇索引。每张表只能有一个聚簇索引,并应 该。创建索引时的缺省设置是非聚簇索引。 1.使用企业管理器创建、管理索引 (1)创建索引 1)为 Student 表创建一个以 Sno 为索引关键字的惟一聚簇索引。 (若原已有 请删除,索引名为 Sno_index) 方法 1: (提示:选择表后点击鼠标右键,选“所有任务”->“管理索引” ) 基本步骤:

方法 2: (提示:选择表后点击鼠标右键,选“设计表”->“索引/键” ) 基本步骤:

26

2)为 Student 表创建以 Sname,Sex 为索引关键字的非聚簇索引(对 Sname 以升序来排列, Sex 以降序排列, 并设置填充因子为 70%) 索引名为: 。 SS_index。 基本步骤:

(2)重命名索引 将索引文件 Sno_index 重新命名为 Sno_index1。 基本步骤:

(3)删除索引 将索引文件 Sno_index1 删除。 基本步骤:

2.使用 T-SQL 语句创建、管理索引 (1)创建索引 1)为 SC 表创建一个非聚集索引 Grade_index,索引关键字为 Grade,升序, 填充因子为 80%。 (提示:with fillfactor=) T-SQL 语句:
create nonclustered index Grade_index on SC(Grade ASC) with fillfactor=80

2)为 SC 表创建一个唯一性聚集索引 SC_index,索引关键字为 Sno,Cno。 用 create index 命令创建 SC_index 索引。 T-SQL 语句:
create unique clustered index SC_index on SC(Sno,Cno)

注意:创建聚集索引前应先去除因为主键而存在的聚集索引! 3)为 Course 表创建一个非聚集索引 CC_index,索引关键字为 Ccredit、 Cname,前者按降序,后者按升序进行索引。 T-SQL 语句:
create nonclustered index CC_index on Course(Ccredit DESC,Cname ASC)

写出一个 select 语句,点击“显示估计的执行计划”按钮,查看该语句的 预执行计划,看一看在条件语句中 Cname 与 Ccredit 顺序不同时,预执行计划有 何不同,写出心得。

27

(2)重命名索引 将 CC_index 索引改名为 CC_index1。 提示:使用 sp_rename 存储过程 T-SQL 语句:
sp_rename 'Course.CC_index','CC_index1'

(3)删除索引 将 Grade_index 索引删除。 T-SQL 语句:
drop index SC.Grade_index

注:在 SQL SERVER 2000 中,对于使用 sp_rename 重新命名的索引文件不能 用 DROP INDEX 句来删除,可以用企业管理器删除。
drop index Course.CC_index1

(二)视图 创建视图是数据库应中的常见需求,可以使用企业管理创建、管理视图,也 可以用 T-SQL 语言创建、管理视图。 1.用创建视图向导创建视图 使用视图向导创建一个名为 stuview 的投影视图, 该视图从 Student 表中查 询出所在系为“CS”的所有学生的学号,姓名,性别,年龄,所在系资料。 (提示:分别进入企业管理器,再分别单击“工具” “向导” “数据库” 、 、 、 “创建视图向导” ,然后一步一步地创建视图。 ) 基本步骤:

2.用企业管理器创建、管理视图 (1)创建视图 使用企业管理器在表 Student 上创建一个能查询所在系为 “IS” 的学生学号、 姓名、性别信息的投影视图。 1)依次进入企业管理器、数据库、Stu_Course 库,并用鼠标右键单击“视 图” 。 2)在系统弹出的快捷菜单中单击“新建视图” ,出现“新建视图”窗口。 3)最上面的一个窗格用于添加创建视图的基础对象,在其上按鼠标右键, 单击快捷菜单中的“添加表” ,将表 Student 添加到此窗格中,上面第二个窗格 用于选择进入视图的列,分别选择相应字段:学号、姓名、性别。在查询条件窗 格中输入查询条件:where Sdept='IS',最后一个窗格为视图结果窗口。 4)单击工具栏,执行按钮“!,观察执行结果是否正确。若正确,则单击 ” “保存”按钮,输入文件名:stuview1,再单击“确定”按钮,视图创建完成。 (2)修改视图 stuview1 将视图 stuview1 的定义修改为查询所在系为“MA”的学生学号、姓名、性 别信息的投影视图。 (提示:在企业管理器中选中视图后->单击右键->设计视图->进行修改。 ) 基本操作步骤:

28

(3)查看视图 stuview1 信息 双击要查看的视图 stuview1,可以看到视图的各种信息,可做语法检查, 也可修改视图的定义,查看、设置视图的许可权限。 基本操作步骤:

(4)管理视图中的数据 1)查看视图 stuview1 中的数据。用鼠标右键单击要管理的视图 stuview1, 单击“打开视图” ,再单击“返回所有行”(试运行即可,不写步骤。 。 ) 2)将视图 stuview1 中学号为“200215125”的学生姓名由“张立”改为“张 华” 。 (注:须点击按钮“! ”进行修改确认。 ) 基本步骤:

3.用 T-SQL 语言创建、管理视图 (1)创建视图 1)创建一个名为 stuview2 的水平视图,从数据库 Stu_Course 的 Student 表中查询出性别为“男”的所有学生的资料。并在创建视图时使用 with check option。 (注:该子句用于强制视图上执行的所有修改语句必须符合由 Select 语句 where 中的条件。 ) T-SQL 语句为:
create view stuview2 as select * from Student where Ssex='男' with check option

2)创建一个名为 stuview3 的投影视图,从数据库 Stu_Course 的 Course 表中查询学分大于 3 的所有课程的课程号、课程名、学分。并在创建时对该视图 加密。 (提示:用 WITH ENCRYPTION 关键子句,加在 as 与视图名称之间,且 sp_helptext 无法看到该视图的定义脚本。 ) T-SQL 语句为:
create view stuview3 with encryption as select Cno,Cname,Ccredit from Course where Ccredit>3

3)创建一个名为 stuview4 的视图,能检索出每位选课学生的学号、姓名、 课程名、成绩。 T-SQL 语句为:
create view stuview4 as select Student.Sno,Sname,Cname,Grade from Student,SC,Course where Student.Sno=SC.Sno and SC.Cno=Course.Cno

(2)查询视图的创建信息及视图中的数据
29

查看视图 stuview2 的定义脚本。 (提示:sp_helptext) 结果为:
sp_helptext stuview2

(3)修改视图的定义 修改视图 stuview3 使其从数据库 Stu_Course 的 Course 表中查询学分大于 3 的所有课程的课程号、课程名、学分。 (提示:若视图原具有加密保护,修改 视图时若未加 WITH ENCRYPTION 子句,则修改后的视图不再加密。修改视图请查 阅帮助 alter view 关键字。 ) T-SQL 语句:
alter view stuview3 as select Cno,Cname,Ccredit from Course where Ccredit>3

(4)视图的更名与删除 1)将视图 stuview4 更名为 stuv4。 方法: (提示:sp_rename)
sp_rename stuview4,stuv4

2)将视图 stuv4 删除。 T-SQL 语句:
drop view stuv4

(5)管理视图中的数据 1)从视图 stuview2 查询出姓名为“李勇”的学生资料。 T-SQL 语句:
select * from stuview2 where Sname='李勇'

2)向视图 stuview2 中插入一行数据。学号:200200001,姓名:赵军,性 别:男,年龄:20,所在系:MA。 T-SQL 语句:
insert into stuview2 values ('200200001','赵军','男',20,'MA')

原 student 表中的内容有何变化? 成功添加到 Student 表中。 思考:如向视图 stuview2 中插入一行数据。学号:200200002,姓名:赵静, 性别:女,年龄:20,所在系:MA。会出现什么样的结果?
insert into stuview2 values ('200200002','赵静','女',20,'MA')

原 Student 表中的内容有何变化? 因为有 with check option 的约束条件,而该操作不符合此约束,所以插入 不成功。 3)修改视图 stuview2 中的数据。 将 stuview2 中姓名为“赵军”同学的所在系改为“IS” 。 T-SQL 语句:
update stuview2 set Sdept='IS'

30

where Sname='赵军'

原 student 表中的内容有何变化? 4)从视图中 stuview2 将姓名为“赵军”同学删除。 T-SQL 语句:
delete from stuview2 where Sname='赵军'

原 student 表中的内容有何变化?

四、实验要求
(1)硬件设备:奔腾 II 或奔腾 II 以上计算机,局域网。 (2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、SQL SERVER 2000 中文版企业版或标准版。 (3)实验课前预习,课后及时完成实验内容。 (4)实验过程及记录按题目格式要求填写在代码清单中。

五、代码清单

31

32

六、实验中出现的问题及解决的方法

33

七、思考讨论题或体会或对改进实验的建议

34

实验四 T-SQL 程序设计
一、实验学时:2 学时 二、实验目的
(1)掌握查询的概念和方法。 (2)掌握查询分析器的使用方法。 (3)熟练掌握单表查询的 select 语句。 (4)熟练掌握聚合函数的使用。 (5)熟练掌握复杂查询的 select 语句。 (6)熟练掌握连接查询方法。 (7)熟练掌握嵌套查询方法。

三、实验内容
(一)单表查询 1.基本查询 (1)查询学生表中全体学生的所有信息。 T-SQL 语句:
select * from Student

(2)检索全体学生的学号、姓名。 T-SQL 语句:
select Sno,Sname from Student

2.查询时改变列标题的显示 检索全体学生的学号、姓名、性别信息,并分别加上“学号”、“姓名”、 “性别”的别名信息。
select Sno '学号',Sname '姓名',Ssex '性别' from Student

3.条件查询 (1)查询成绩大于 90 分的学生的学号及课程号、成绩。 T-SQL 语句:
select Sno,Cno,Grade from SC where Grade>90

(2)查询成绩介于 85~90 分的学生的学号及课程号、成绩。 T-SQL 语句:
select Sno,Cno,Grade from SC where Grade>=85 and Grade<=90

(3)查询选修了课程号为“2”,且成绩大于 88 的学生的学号。 T-SQL 语句:
35

select Sno from SC where Cno='2' and Grade>88

4.基于 IN 子句的数据查询 从课程表中查询出“数学”、“PASCAL 语言”的所有信息。 T-SQL 语句:
select * from Course where Cname IN('数学','PASCAL 语言')

5.基于 Like 子句的查询 (1)从学生表中分别检索出姓张的所有同学的资料;检索名字的第二个字 是“红”或“虹”的所有同学的资料。 T-SQL 语句:
select * from Student where Sname Like '张%' select * from Student where Sname Like '_[红,虹]%'

(2)如果用户查询的匹配字符串本身就含有%或_,比如在课程表中,添加 一门课程为 Visual_Basic,其它相关信息自取。若要查询名为 Visual_Basic 的 课程的学分,则 T-SQL 语句为: (提示:使用 ESCAPE 短语)
insert into Course values ('8','Visual_Basic',NULL,3) select * from Course where Cname Like 'Visual/_Basic' escape '/'

6.使用 top 关键字查询 分别从课程表中检索出前 5 个的课程信息。 T-SQL 语句:
select top 5 * from Course

7.消除重复行 检索出学生已选课程的课程号,要求显示的课程号不重复。 T-SQL 语句:
select distinct Cno from SC

8.查询经过计算的值。 查询全体学生的姓名及其出生年份, 要求为计算值取别名 “出生年份” (提 。 示:当前的年份减去年龄即为出生年份。) T-SQL 语句:
select Sname '姓名',year(getdate())-Sage '出生年份' from Student

9.使用 ORDER BY 语句对查询的结果进行排序 升序的关键字是 ASC,降序的关键字是 DESC,系统默认的是升序排列。 显示所有学生的基本信息,并按学生的年龄的升序排列。 T-SQL 语句:
select * from Student order by Sage

10.使用 Group 子句进行查询 如果要在数据检索时对表中数据按照一定条件进行分组汇总或求平均值, 就 要使用 Group BY 子句并使用集合函数。 (1)汇总总分大于 200 分的学生的学号及总成绩。 T-SQL 语句:
select Sno,sum(Grade) '总成绩' from SC

36

group by Sno having sum(Grade)>200

(2)查询各个课程号相应的选课人数。 T-SQL 语句:
select Cno,count(*) '选课人数' from SC group by Cno

11.使用聚合函数 (1)查询学生总人数。 T-SQL 语句:
select count(*) '总人数' from Student

(2)计算“2”号课程的学生平均成绩、最高分、最低分。 T-SQL 语句:
select Cno,avg(Grade) '平均成绩',max(Grade) '最高分',min(Grade) '最低 分' from SC group by Cno having Cno='2'

(二)复杂查询 1.查询比“王敏”年纪大的男学生信息。 T-SQL 语句:
select * from Student where Ssex='男' and Sage>( select Sage from Student where Sname='王敏')

2.检索所有学生的选课信息。(提示:使用外连接) T-SQL 语句:
select Student.Sno,Sname,Cno,Grade from Student left outer join SC on Student.Sno=SC.Sno

3.查询已选课学生的学号、姓名、课程名、成绩。(提示:连接查询) T-SQL 语句:
select Student.Sno,Sname,Cname,Grade from Student,SC,Course where Student.Sno=SC.Sno and SC.Cno=Course.Cno

4.查询选修了“信息系统”的学生的学号和姓名。 T-SQL 语句:
select SC.Sno,Sname from Student,SC,Course where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Cname='信息系统'

5.查询与“刘晨”在同一个系的学生学号、姓名、性别。 子查询 T-SQL 语句:
select Sno,Sname,Ssex from Student where Sdept=( select Sdept from Student where Sname='刘晨') and Sname!='刘晨'

连接查询 T-SQL 语句:
select a.Sno,a.Sname,a.Ssex from Student a,Student b where a.Sdept=b.Sdept and b.Sname='刘晨' and a.Sname!='刘晨'

6.查询其他系中比计算机科学系任一学生年龄大的学生的学号、姓名。 带有 ANY 或 ALL 谓词的子查询语句:
select Sno,Sname from Student where Sage>ANY( select Sage from Student where Sdept='CS')

37

and Sdept!='CS'

用聚合函数实现:
select Sno,Sname from Student where Sage>( select min(Sage) from Student where Sdept='CS') and Sdept!='CS'

7.检索学生的学号、姓名、学习课程名及课程成绩。 T-SQL 语句:

8.检索选修 3 门以上课程的学生的学号、总成绩。 T-SQL 语句:
select Sno,sum(Grade) '总成绩' from SC group by Sno having Count(*)>3

9.检索多于 2 名学生选修的课程号及平均成绩。 T-SQL 语句:
select Cno,avg(Grade) '平均成绩' from SC group by Cno having Count(*)>2

(三)流程控制语句 1.如果 Student 表中有 20 岁的学生,把该学生的学号,姓名和性别查询出来, 否则输出“没有 20 岁的学生” 。写出 T-SQL 语句: (使用 if...else 语句)
if exists(select * from Student where Sage=20) select Sno,Sname,Sage from Student where Sage=20 else print '没有 20 岁的学生!'

2.使用 While 语句求 1 到 100 之间的累加和,输出结果。写出 T-SQL 语句:
declare @sum int,@count int select @sum=0,@count=1 while @count<=100 begin set @sum=@sum+@count set @count=@count+1 end print @sum

(四)用户自定义函数的应用 定义一个用户自定义函数 Score_Rechange,将成绩从百分制转化为五级记 分制。将该用户定义函数用在查询每个学生的成绩中,给出五级记分制的成绩。 写出 T-SQL 语句:
CREATE FUNCTION Score_ReChange(@score tinyint) RETURNS char(10) AS BEGIN RETURN CASE WHEN @score>=90 THEN '优秀'

38

WHEN @score>=80 AND @score<90 THEN '良好' WHEN @score>=70 AND @score<80 THEN '中等' WHEN @score>=60 AND @score<70 THEN '及格' ELSE '不及格' END End 执行自定义函数: SELECT Student.Sno,Sname,dbo.Score_ReChange(Grade) '五级成绩' FROM Student,SC WHERE Student.Sno=SC.Sno

四、实验要求
(1)硬件设备:奔腾 II 或奔腾 II 以上计算机,局域网。 (2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、SQL SERVER 2000 中文版企业版或标准版。 (3)实验课前预习,课后及时完成实验内容。 (4)实验过程及记录按题目格式要求填写在代码清单中。

五、代码清单

39

40

六、实验中出现的问题及解决的方法

41

七、思考讨论题或体会或对改进实验的建议

42

实验五 数据库安全性
一、实验学时:2 学时 二、实验目的
(1)理解数据库安全的概念。 (2)掌握使用企业管理器维护数据库安全的方法。 (3)掌握 T-SQL 语句创建与维护数据库安全的方法。

三、实验内容
1.通过企业管理器 (1)注册一个“登录”(loginin) 登录名为自己的学号,并将该登录加 入服务器角色“system administrators”:

再注册一个“登录”(loginin),登录名为自己的姓名,并且将该登录不 属于任何服务器角色:

(2)在 Stu_Course 数据库下创建一个用户,用户名为自己的学号,并将它 和登录名为自己学号的登录连在一起,察看该用户属于哪个数据库角色: 修改该用户的属性,在类似于下图的窗口中单击“权限”按钮,观察该用户 对数据库中各对象的操作权限:

43

(3)在自己创建的数据库下创建一个用户,用户名为自己的姓名,并将它 和登录名为自己姓名的登录连在一起,察看该用户属于哪个数据库角色:

编辑修改该用户属性(如上图),单击“权限”按钮,出现下图:

44

为该用户分配数据库中各对象的操作权限,要分配到列:

(4)编辑当前登录企业管理的注册属性,用 SQL SERVER 身份验证:

(5)断开原来的连接,用学号登录企业管理器,进入学生成绩数据库,测 试用学号登录后, 是否拥有对数据库的全部操作权限 (注意: 该登录属于 system
45

administrators 组):

(6)断开原来的连接,用姓名登录企业管理器,进入学生成绩数据库,测 试用姓名登录后,拥有对数据库的哪些操作权限:

2.用 SQL 语句完成上述过程:
Use Stu_Course Exec sp_addlogin '000000' Exec sp_addsrvrolemember '000000','sysadmin' Go Exec sp_addlogin '某某' Go Exec sp_grantdbaccess '000000','000000' Go Exec sp_grantdbaccess '某某','某某' Go GRANT SELECT(Cname,Ccredit) ON Course TO '某某' Go --撤销所有用户上述权利,删除登录帐号 REVOKE SELECT(Cname,Ccredit) ON Course TO '某某' Exec sp_revokedbaccess '某某' Exec sp_revokedbaccess '000000' Exec sp_droplogin '某某' Exec sp_droplogin '000000' Go

3.总结登录、用户、服务器角色、数据库角色之间的关系及权限:

四、实验要求
(1)硬件设备:奔腾 II 或奔腾 II 以上计算机,局域网。
46

(2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、SQL SERVER 2000 中文版企业版或标准版。 (3)实验课前预习,课后及时完成实验内容。 (4)实验过程及记录按题目格式要求填写在代码清单中。

五、代码清单

47

48

六、实验中出现的问题及解决的方法

七、思考讨论题或体会或对改进实验的建议

49

50

实验六 数据库完整性
一、实验学时:2 学时 二、实验目的
(1)实现数据完整性的概念及实施数据完整性的重要性。 (2)掌握数据完整性的分类。 (3)掌握完整性约束的添加、删除方法。 (4)掌握通用默认值的创建、实施与删除方法。 (5)掌握规则的创建、实施与删除方法。 (6)掌握级联删除、级联修改方法。

三、实验内容
数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的 重要标准。 数据完整性分为以下三类: 实体完整性:是指保证表中所有的行惟一。由主键约束来实现。 参照完整性:也叫引用完整性。参照完整性总是保证主关键字(被引用表) 和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致 性维护。由外键约束来实现。 用户自定义完整性: 是指用户针对某一具体关系数据库的数据必须满足的语 义要求。通常由 Check 约束来实现。 完整性约束的添加、 1.完整性约束的添加、删除 约束是强制数据完整性的首选方法。约束有 6 种类型:非空约束、默认值约 束、Check 约束、主键约束、外键约束、唯一性约束。 (1)使用企业管理器实施约束 1)为表 Student 的 Sdept 字段即所在系字段,设置默认值约束,默认值取 ‘CS’。 添加默认约束的操作步骤:

删除默认约束的操作步骤:

2)(若原有约束,请在企业管理器中删除 Student 表的主键约束)在企业 管理器中将 Sno 重设为主键。(会操作即可,操作步骤可略) 3)为 Student 表的 Sname 字段添加唯一性约束。
51

添加唯一性约束操作步骤:

删除唯一性约束操作步骤:

4)(若原有约束,请在企业管理器中删除原有的外键约束)在企业管理器 中删除 SC 原有的外键约束,在企业管理器中对 Sno,Cno 字段设置外键约束,约 束名自己取。并允许级联删除与级联更新。 添加外键约束的操作步骤:

删除外键约束的操作步骤:

(2)使用 T-SQL 语句添加、删除约束(约束名自取,并自行添加或修改某 些字段值检验有效性) 1)为 Student 表的 Sno 字段添加一个 check 约束,使学号满足如下条件: a. 学号前四位为 2002。 b. 学号后五位为数字字符。 T-SQL 语句为:
alter table Student add constraint ch_Stu_Sno check (Sno like '2002[0-9][0-9][0-9][0-9][0-9]')

2)(若原有约束,请在企业管理器中删除 SC 表主键约束及外键约束)将 SC 表中的 Sno,Cno 字段设置为主键。 T-SQL 语句为:
alter table SC add constraint PK_SC primary key(Sno,Cno)

3)为 SC 表中的 Sno,Cno 添加外键约束,约束名自取;并允许级联删除与 级联更新。 添加外键约束 T-SQL 语句为:
alter table SC add constraint FK_SC_Sno foreign key(Sno) references Student(Sno) on delete cascade on update cascade go alter table SC add constraint FK_SC_Cno foreign key(Cno) references Course(Cno) on delete cascade on update cascade

验证级联删除与级联更新 T-SQL 语句: (测试实例自编) 可在企业管理器中对比操作。
52

2.通用默认值的实施 (1)使用企业管理器实现 1) 使用企业管理器中为数据库 Stu_Course 创建一个默认的年龄, 名称自取, 值为:19。 具体步骤如下:

2)将该默认值绑定到 Student 表中的 Sage 列。 具体步骤如下:

3)将 Sage 列上的绑定解除,并在企业管理器中删除该默认值。 具体步骤如下:

若未解除绑定,能否删除默认值?

(2)使用 T-SQL 语句实施默认值 1) 为数据库 Stu_Course 创建一个关于性别的默认值, 名称自取, “女” 值为 。 T-SQL 语句为:
use Stu_Course go create default Ssex_df as '女'

2)将该默认值绑定到 Student 表中的 Ssex 字段(原有的约束请删除) T-SQL 语句:
EXEC sp_bindefault 'Ssex_df', 'Student.Ssex'

3)解除表 Student 的 Ssex 列的默认值绑定,并删除该默认值。 T-SQL 语句:
EXEC sp_unbindefault 'Student.Ssex' DROP default Ssex_df

3.规则的实施 (1)使用企业管理器实现 1)使用企业管理器为数据库 Stu_Course 创建一个关于性别的取值规则,规 则名自取,要求字段的取值仅能为‘男’或‘女’。 具体步骤如下: 2)将该规则绑定到 Student 表的 Ssex 字段上。 具体步骤如下: 3)解除 Student 表的 Ssex 列上的绑定,并删除该规则。 具体步骤如下:

53

(2)使用 T-SQL 实施规则 1)为数据库 Stu_Course 创建一个关于学号的规则,名称自取,学号的具体 取值规则为: a.学号前四位为 2002。 b.学号后五位为数字字符。 T-SQL 语句为:
--删除原有ch_Stu_Sno约束,避免与新规则重复 use Stu_Course go alter table Student drop constraint ch_Stu_Sno go create rule Sno_rule as @range like '2002[0-9][0-9][0-9][0-9][0-9]'

2)将该规则绑定到表 Student 表、SC 表的 Sno 列上。 T-SQL 语句为:
EXEC sp_bindrule 'Sno_rule', 'Student.Sno'

3)解除所有的绑定,并删除该规则。 T-SQL 语句为:
EXEC sp_unbindrule 'Student.Sno' drop rule Sno_rule

四、实验要求
(1)硬件设备:奔腾 II 或奔腾 II 以上计算机,局域网。 (2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、SQL SERVER 2000 中文版企业版或标准版。 (3)实验课前预习,课后及时完成实验内容。 (4)实验过程及记录按题目格式要求填写在代码清单中。

五、代码清单

54

55

六、实验中出现的问题及解决的方法

56

七、思考讨论题或体会或对改进实验的建议

57


相关文章:
数据库系统原理实验报告册.doc
数据库系统原理实验报告册_计算机软件及应用_IT/计算机_专业资料。实验四 T-
《数据库系统原理》实验报告.doc
数据库系统原理实验报告_工学_高等教育_教育专区。数据库实验报告 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级: 14 软件工程 1 班 学生学号:...
《数据库系统原理》实验报告.doc
数据库系统原理实验报告 - 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级:软件工程 学生学号: 所属院部: 软件工程学院 学生姓名: 指导教师: 20...
数据库系统原理实验报告.doc
数据库系统原理实验报告 - 实验一 《数据库系统原理》实验报告 题目:数据库的创
数据库系统原理实验报告.pdf
数据库系统原理实验报告 - 本科实验报告 课程名称: 数据库系统概论 实验项目:
数据库系统原理实验报告.doc
本科实验报告 课程名称: 数据库系统原理 实验项目: 实验二、实验三、实验四 实
《数据库系统原理》实验报告七.doc
数据库系统原理实验报告七 - 《数据库系统原理实验报告 班级: 姓名: 考
数据库系统原理实验报告数据更新.doc
数据库系统原理实验报告数据更新 - 1. 加强对数据更新(插入、修改及删除)语句
数据库系统原理-实验报告4-计算机科学与技术.doc
数据库系统原理-实验报告4-计算机科学与技术 - 课程实验报告 课程名称 数据库系统原理 实验名称 数据更新操作 专业班级 学姓号名 2017 年 2 月 实验报告 4 ...
数据库系统原理学生实验报告大学论文.doc
数据库系统原理学生实验报告大学论文 - 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级: 15 计算机 w 专转本 1 班 学生学号: 1513504069 学生姓名: ...
山西农业大学数据库系统原理实验报告.doc
山西农业大学数据库系统原理实验报告 - 《数据库原理》实验报告 题目:交互式 S
桂林电子科技大学数据库系统原理实验报告.doc
桂林电子科技大学数据库系统原理实验报告 - 桂林电子科技大学计算机科学与工程学院 数据库系统原理实验报告 实验一 SQL Server 基本使用与数据定义 一.实验目的 1....
数据库系统原理实验报告一.doc
数据库系统原理实验报告一_工学_高等教育_教育专区。数据库系统原理实验报告:数据
数据库系统原理实验指导书2011(SQL 2005版)-3.pdf
3)利用 VIEW2 视图,查询选修了数据库原理课程成绩在 75 分以上的 1 数据库系统原理实验指导书 学生姓名,在实验报告中给出视图查询的语句的和执行后的结果。 三...
数据库系统原理及应用实验报告.doc
数据库系统原理及应用实验报告 - 《数据库系统原理及应用》 实验报告 院系:计算
数据库系统原理实验报告2011.doc
数据库系统原理实验报告2011 - 注 1.每个实验项目一份实验报告。2.实验报
数据库系统原理概论(多表查询实验报告).doc
数据库系统原理概论(多表查询实验报告) - 《数据库系统原理实验报告 实验名称
数据库系统原理实践资料.doc
数据库系统原理实践资料 - 陕西省高等教育自学考试 课程 实践环节考核报告 准考
数据库系统原理实验报告 数据库模式设计及建立.doc
沈阳工程学院 学生实验报告 (课程名称:数据库系统原理) 实验题目: 数据库模式设计建立 班级 学号 姓 名 日期 地点 指导教师 一、实验目的 熟练掌握采用 SQL ...
数据库系统原理-实验报告-数据库的基本查询.doc
数据库系统原理-实验报告-数据库的基本查询_计算机软件应用_IT/计算机_专业资料。成绩评定 教师签名 计算机学院 数据库系统原理实验报告 课程名称: 数据库系统原理...
更多相关标签: