本 数据库上机实验指导书

更新时间:2023-09-23 06:20:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数据库原理与应用》实验指导书

实验1 建立数据库 2学时

1. 实验目的

理解SQL Server 2000数据库管理系统的存储结构,掌握在SQL Server2000环境下数据库的建立和维护方法。

2. 实验内容

(1) 使用企业管理器创建数据库

创建一教务管理数据库,名称为JWGL,数据文件的初始大小为20MB,文件增长增量设为5MB,文件增长方式设为自动增长,文件的增长上限为500MB。日志文件的初始大小为20MB,文件增长增量设为1MB,文件的增长限制设为100MB。

(2) 用T-SQL语句创建数据库

创建一个名为JWGL1的数据库,在查询分析器中输入如下所示的创建数据库的SQL语句。

GREATE DATABASE JWGL1

ON

PRIMARY (NAME=JWGL1_data,

FILENAME=?C:\\Program File\\Microsoft SQL Server\\MSSQL\\DATA JWGL1_data.mdf?, SIZE=20MB, MAXSIZE=200MB,

FILEGROWTH=5mb) LOG ON

(NAME=JWGL1_log,

FILENAME=?C:\\Program File\\Microsoft SQL Server\\MSSLQ\\DATA\\JWGL1_log.ldf?, SIZE=5MB,

MAXSIZE=50MB,

FILEGROWTH=1MB)

单击√按钮分析查询,正确后单击按钮执行查询。 (3) 使用查询分析器对新建立的数据库进行修改。数据文件的初始大小设为30MB,

文件增长量设为10MB,文件增长方式设为自动增长,文件的增长上限为

600MB;日志文件的初始大小为30MB,文件增长增量设为5MB,文件的增长

限制设为200MB。

修改数据库的命令是ALTER DATABASE,其常用格式如下: ALTER DATABASE database {ADD FILE |ADD LOG FILE |MODIFY FILE

|MODIFY NAME=name-dbname

}

(4)使用查询分析器删除新建立的数据库。删除数据库的命令是DROP DATABASE,其格式是:

DROP DATABASE database-name

实验2 建立表和数据完整性 2学时

1. 实验目的

掌握表的建立方式和表结构的修改方式,并使用SQL Sever2000提供的数据完整性功能,加深对数据完整性的理解。 2. 实验内容

(1) 建立表

① 用企业管理器创建表student,student表结构见表B.1。 表B.1 student表 列表名 Student_id 类型 Char 宽度 8 8 允许空值 否 否 否 否 否 否 默认值 主码 是 说明 学号 学生姓名 性别 出生年月 Class_id Ntrance_date Char 6 Smalldatetime 班级号 入学时间

② 使用T-SQL语句创建表course,course表结构见表B.2 表B.2 course表 列名称 Course_id 类型 Char 宽度 10 20 允许宽度 否 否 是 是 是 默认值 主码 是 说明 课程号 课程说明 课程总学时 周学时 课程学分

③ 使用任何一种方式自己创建student_course表与class表,表结构分别见表B.1、表B.4。

表B.3 student_course表 列名称 Course_id Sutdent_id Grage Credit Semester 类型 Char Char Tinyint Tinyint Bit 宽度 10 8 允许宽度 否 否 否 否 是 默认值 主码 是 是 说明 课程号 学号 成绩 学分 学期 Student_name Nearchar Sex Birth Bit Smalldatetime Course_name Nvarchar Total_perior Week_peiior Credit Tinyint Tinyint Tinyint School_year Chat 表B.4 class表 列名称 Class_id Monitor Classroom 类型 Char Nvarchar Varchar 9 宽度 6 8 13 是 允许宽度 否 是 是 是 默认值 0 主码 是 学年 说明 班级号 班主任姓名 教室 学生人数 Student_num Smalint (2) 约束的概念及实施

① 使用T-SQL语句实施约束

● 为数据库JWGL中表student的sex(性别)字段创建一个默认约束,默认值为1

(男)。 ● 为数据库JWGL中表student_course的grade(成绩)字段创建一个检查约束,使得grade的值在0~100之间。 ● 将表student的student_id(学号)字段设为主码。

● 将表class的class_id(班组号)字段设为主码。

● 为表student创建外码class_id,外码class_id参考表class中的主码class_id。

执行以上语句后,在查询分析器的左边窗口中“对象浏览器”中可以查看到相应表中的约束名。

② 使用企业管理器实施约束

● 将course表的course_id(课程号)字段与student_id(学号)字段设为主码。 ● 将student_course表的course_id(课程号)字段与student_id(学号)设为主码。 ● 为course表的courese_name创建唯一性约束。 ● 为student表的student_name字段创建唯一约束。

● 为student表的entrance_data字段创建检查约束,使输入的入学时间小于系统日期。

将student表的birth字段也加上此约束。 (3)规则的概念及实验 ① 使用T-SQL语句实施规则

● 为数据库JWGL创建规则grade_rule,grade的值大于等于0,小于等于100。(可以

在企业管理器中数据JWGL的规则中查看。) create rule grade_rule as@grade>=0 and @grade<=100 ● 将规则grade_rule绑定到表student_course的grade列。 Sp_bindrule grade_rule,?student_course.grade? ● 解除规则grade_rule到表student_course的grade列的绑定。 Sp_umbindrule?student_course.grade? ● 将规则删除

drop rule grade_rule ② 用企业管理器实施规则

● 创建一个规则grade_rule,grade的值大于等于0,小于等于100。 ● 将规则grade_rule 1绑定到表student_course的grade列,然后解除。 ● 将规则grade_rule 1删除。

实验3 数据更新 2学时

1. 实验目的

掌握向表中插入数据、修改数据和删除数据的方法,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。 2. 实验内容

(1) 使用SQL语句操作数据

① ●

插入数据

插入一个学生记录(student_id:992001;student_name:陈冬;sex:男;birth:1984-9-1;class_id:992;entrance_date:2002-9-1)到表student中。

INSERT INTO student VALUSE(?99201?,?陈冬?,1?,?1984-9-1?,?992?,?2002-9-1?)

注意:此操作因违反实验2中所创建的FK_class_id外码约束,无法进行,所以应先输入class表。 ● 插入如表B.5所示class表中的记录。

表B.5 class表

Class_id 990 991 992 Monitor 张丽 李微 黄敬兰 Classroom 教学楼310 教学楼311 教学楼312 教学楼313 Student_nm 7 3 孙军 993 ● 将下面所有学生记录都插入到表student中。 注意:在插入数据过程中,请检查实验2中所创建约束的有效性。

②修改数据

将student表student_id为?992005?的学生姓名“林非”改为“林菲”。 ③ 删除数据

将student表student_id为992004的学生记录名从如表B.6所示的student表中删除。

表B.6 student表 Student_id 992002 992003 992004 992005 992006 992007 9930张亚丽 0 赵宇 1 Student_name 王红 李[大] 孙伟 林菲 黄青 1 0 0 华Sex 0 1 Birth Class_id 992 992 992 992 992 992 993 Entrance_date 2002-9-1 2002-9-1 2002-9-1 2002-9-1 2002-9-1 2002-9-1 2002-91984-2-1 1984-11-3 1983-12-11 1984-5-12 1983-12-11 1985-1-1 1985-01 993002 993003 许小杰 张红 1 0 3-20 1984-6-3 1984-12-1 993 993 -1 2002-9-1 2002-9-1 (3) 使用企业管理器操作数据 插入course表中在所有记录,并进行修改肯删除操作。记录见表B.7

表B.7 course表 Course_id Dep1-s001 Dep4-b001 Dep4-p001 Dep4-s001 Dep4-s002 Dep4-s003 Dep4-s004 Course_name 数据结构 计算机基础 高级语言程序设计 数据库开发技术 JAVA程序设计与开发 软件工程 网页设计 68 80 4 5 4 5 Total_perior 68 68 68 80 Week_perior 4 4 4 5 4 Credit 4 4 4 5 4 68 (3)使用任一种方法自己输入student_course表的记录。(表中grade字段、credit字段、semester字段、school_year字段中的数据自定。)

注意:表中的列经常是有约束的,在输入数据时要注意数据类型,是否允许为空,删除的数据是否有外码约束的列。

实验4 数据查询 2学时

1. 实验目的

熟练掌握SQL语句的数据查询功能,能够完成各种数据查询。 2. 实验内容 (1) 单表查询 ① 基本查询

使用查询分析器从student表中分别检索出学生的所有信息及学号、姓名信息。

② 查询时改变列标题的显示

从student表中分别检索出学生的学号、姓名、班级号信息并分别加上“学生”、“学号”、“班级号”的标题信息。

③ 基于WHERE子句进行数据查询

● 基于比较条件。从student_course表中检索出成绩大于90分的学生资料。

● 基于BETWEEN子句的数据查询。从student_course表中检索出成绩介于80~90分之

间的学生资料。

● 基于IN子句的数据查询。从class表中检索出classroom为“教学楼310”或“教学楼

312”的班级号、班主任姓名及教室。 ● 基于LIKE子句的查询。从student表中分别检索出姓张的所有同学的资料:名字和第

二家是“红”或“虹”的所有同学的资料。

本文来源:https://www.bwwdw.com/article/vk9d.html

Top