数据库原理实验指导书.docx
- 文档编号:9274160
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:31
- 大小:105.08KB
数据库原理实验指导书.docx
《数据库原理实验指导书.docx》由会员分享,可在线阅读,更多相关《数据库原理实验指导书.docx(31页珍藏版)》请在冰豆网上搜索。
数据库原理实验指导书
《数据库原理与应用》实验指导
/学年第学期
姓名:
______________
学号:
______________
班级:
______________
指导教师:
______________
计算机科学与工程学院
2009
实验一SQLServer使用初步
一、实验目的
1、熟悉SQLServer2000的组成及基本功能。
2、掌握SQLServer2000的登录及注册。
3、掌握SQLServer2000企业管理器的使用方法。
4、熟悉查询分析器的基本使用。
二、实验预习
1、什么是数据库管理系统DBMS?
你所知道的DBMS有哪些?
2、SQLServer2000(2005)的安装步骤?
三、实验内容和要求
1、注册服务器
基本步骤:
(1)打开企业管理器
(2)右击SQLServer组→新建SQLServer注册
(3)添加可用的服务器(实际数据库服务器的名称或IP地址)
(4)选择身份验证模式(选“系统管理员分配给我的登录信息”)
(5)输入正确的登录名和密码
(6)选择SQLServer组(选“在现有的SQLServer组中添加SQLServer”)
(7)完成注册
若注册成功,则显示注册成功的信息。
2、连接SQLServer服务器
(1)右键单击上面注册的数据库服务器,选择连接,建立与数据库服务器的连接。
观察连接后服务器图标的变化;
(2)右键单击选择编辑SQLServer注册属性,观察已注册数据库服务器的属性信息;
(3)右键单击选择删除SQLServer注册。
为保证数据库的安全性,使用完毕自己的数据库后,可采取删除的方式,断开与数据库的连接;
(4)重复注册服务器的步骤,再次建立与数据库的连接;
3、熟悉企业管理器
(1)单击建立的服务器连接,观察服务器的7个项目,写出它们的名称。
通过查看联机帮助,总结7个项目的基本功能。
(2)单击数据库,观察Northwind数据库下的11个项目,写出项目名称,通过联机帮助了解它们的基本功能。
(3)查看Northwind的表项目,单击表,观察表的名称、所有者、类型以及创建日期。
回答:
▪这些表的所有者有哪几种?
▪这些表的类型有哪几种?
▪选择表Employees,在右键菜单中选择打开表->返回所有行,观察表中的数据,说出这些数据的实际含义。
观察其他用户类型的表,你还能说出它们数据的实际含义吗?
(4)查看Northwind的视图项目,单击视图,观察视图的名称、所有者、类型以及创建日期。
选择视图ProductSalesfor1997,同上面观察表中数据的方法一样,观察视图中的数据,说出这些数据的意义。
(5)查看Northwind的用户项目,单击用户。
回答:
▪有哪类用户?
查看它们的属性对话框,它们的角色和权限是否相同?
▪通过联机帮助,写出dbo、Guest用户的区别。
(6)查看Northwind的角色项目,单击角色。
回答:
▪有哪些角色类型?
通过查看联机帮助,写出它们各自的含义和作用。
(7)查看Northwind的安全性项目,单击项目中的登录,观察不同的登录名称、类型、服务器访问、默认数据库,找到你自己的登录名称,右键单击打开属性对话框,观察对话框中的设置,写出登录属性对话框中的设置作用。
4、熟悉查询分析器
(1)打开查询分析器。
基本步骤:
▪单击注册的数据库服务器,确定服务器已经连接;
▪在主菜单“工具”中选择“SQL查询分析器”;
▪在打开的查询分析器窗口中,左侧的对象浏览器为注册的服务器,在工具栏的数据库选择中选择Northwind数据库为当前数据库;右侧窗口为查询窗口。
(2)分别在查询窗口中输入如下查询语句,观察查询结果,写出结果的数据记录个数:
查询语句1:
SELECT*
FROMShippers
ORDERBYCompanyName
结果记录数:
查询语句2:
SELECTFirstName,HomePhone
FROMNorthwind.dbo.Employees
ORDERBYFirstNameASC
结果记录数:
查询语句3:
SELECTROUND((UnitPrice*.9),2)ASDiscountPrice
FROMProducts
WHEREProductID=58
结果记录数:
查询语句4:
SELECTOrderID,
DATEDIFF(dd,ShippedDate,GETDATE())ASDaysSinceShipped
FROMNorthwind.dbo.Orders
WHEREShippedDateISNOTNULL
结果记录数:
查询语句5:
SELECTProductID,ProductName
FROMNorthwind.dbo.Products
WHERECategoryID=1ORCategoryID=4ORCategoryID=5
结果记录数:
四、实验小结
五、评阅成绩
实验预习20%
实验过程20%
实验结果30%
实验报告30%
总成绩
实验二数据定义
一、实验目的
1、掌握SQL数据定义功能:
数据库定义、表的定义、索引定义。
2、掌握利用企业管理器和SQL语句定义表、索引的方法。
二、实验预习
1、SQL中基本表定义语句格式:
2、SQL中修改基本表语句格式:
三、实验内容和要求
1、在企业管理器中,利用菜单操作的方式在各自的数据库中建立如下四个基本表:
(1)供应商表S:
列名
说明
数据类型
约束
SNO
供应商号
CHAR(6)
PRIMARYKEY
SNAME
供应商名
VARCHAR(20)
NOTNULL
STATUS
供应商状态
VARCHAR(50)
CITY
所在城市
VARCHAR(50)
(2)零件表P:
列名
说明
数据类型
约束
PNO
零件号
CHAR(6)
PRIMARYKEY
PNAME
零件名
VARCHAR(20)
NOTNULL
COLOR
颜色
CHAR
(2)
WEIGHT
重量
NUMERIC(9,2)
CHECK(WEIGHT>0ANDWEIGHT<=100)
(3)工程项目表J:
列名
说明
数据类型
约束
JNO
项目号
CHAR(6)
PRIMARYKEY
JNAME
项目名
VARCHAR(20)
NOTNULL
CITY
城市
VARCHAR(50)
(4)供应情况表SPJ:
列名
说明
数据类型
约束
SNO
供应商号
CHAR(6)
NOTNULL
PNO
零件号
CHAR(6)
NOTNULL
JNO
项目号
CHAR(6)
NOTNULL
QTY
供应数量
SMALLINT
DEFAULT100
2、用CREATE语句建立如下三个表,并写出相应的语句。
(1)学生表Student:
列名
说明
数据类型
约束
SNO
学号
CHAR(7)
主码
SNAME
姓名
CHAR(10)
NOTNULL
SSEX
性别
CHAR
(2)
取“男”或“女”
SAGE
年龄
SMALLINT
取值15-45
SDEPT
所在系
VARCHAR(20)
默认“计算机系”
语句:
(2)课程表Course:
列名
说明
数据类型
约束
CNO
课程号
CHAR(10)
主码
CNAME
课程名
VARCHAR(20)
NOTNULL
CCREDIT
学分
SMALLINT
大于0
SEMSTER
学期
SMALLINT
大于0
PERIOD
学时
SMALLINT
大于0
语句:
(3)选课表Sc:
列名
说明
数据类型
约束
SNO
学号
CHAR(7)
主码,引用Student的外码
CNO
课程号
CHAR(10)
主码,引用Course的外码
GRADE
成绩
SMALLINT
大于0
语句:
3、利用SQL语句对表结构进行修改。
(1)为零件表P增加一个规格(GUIGE)列,数据类型为字符,长度50;
(2)修改课程表Course的CNAME属性列的类型为VARCHAR(30);
(3)为供应情况表SPJ添加参照完整性约束;
SPJ的SNO列参照S表SNO列
SPJ的PNO列参照P表PNO列
SPJ的JNO列参照J表JNO列
(4)删除零件表P的规格(GUIGE)列
4、利用企业管理器向表中添加数据
(1)供应商表S:
SNO
SNAME
STATUS
CITY
S1
精益
20
天津
S2
盛锡
10
北京
继续往表中增加一条记录:
四个字段的数据分别是S1,东方红,30,北京,会出现什么情况?
为什么?
(2)零件表P:
PNO
PNAME
COLOR
WEIGHT
P1
螺母
红
12
P2
螺栓
绿
17
P3
螺丝刀
蓝
105.5
是否能够正常输入三条数据?
如果否,问题出在哪里,为什么?
(3)工程项目表J:
JNO
JNAME
CITY
J1
一汽
北京
J2
半导体厂
南京
J3
常州
第三条记录是否能够正常输入,若否,会出现什么问题,为什么?
(4)供应情况表SPJ:
SN0
PNO
JNO
QTY
S1
P1
J1
200
S1
P1
J3
S2
P2
J4
输入过程中是否会遇到问题,若有,出在哪,为什么?
四、实验小结
五、评阅成绩
实验预习20%
实验过程20%
实验结果30%
实验报告30%
总成绩
实验三数据查询
一、实验目的
1、掌握查询语句的基本组成和使用方法
2、掌握常用查询技巧
二、实验预习
1、SQL中查询语句格式:
2、连接查询有哪些不同的连接方式?
有什么特点。
三、实验内容和要求
1、按照下表中的内容,在企业管理器中为数据库表输入相应的数据。
学生表:
Student
Sno
Sname
Ssex
Sage
Sdept
9512101
李勇
男
19
计算机系
9512103
王敏
女
20
计算机系
9521101
张莉
女
22
信息系
9521102
吴宾
男
21
信息系
9521103
张海
男
20
信息系
9531101
钱小平
女
18
数学系
9531102
王大力
男
19
数学系
课程表:
Course
Cno
Cname
Ccredit
Semster
Period
C01
计算机导论
3
1
3
C02
VB
4
3
4
C03
计算机网络
4
7
4
C04
数据库基础
6
6
4
C05
高等数学
8
1
8
选课表:
SC
Sno
Cno
Grade
9512101
C03
95
9512103
C03
51
9512101
C05
80
9512103
C05
60
9521101
C05
72
9521102
C05
80
9521103
C05
45
9531101
C05
81
9531102
C05
94
9512101
C01
NULL
9531102
C01
NULL
9512101
C02
87
9512101
C04
76
2、完成下列查询
(1)查询全体学生的信息。
(2)查询“信息系”学生的学号,姓名和出生年份。
(3)查询考试不及格的学生的学号。
(4)查询无考试成绩的学生的学号和相应的课程号。
(5)将学生按年龄升序排序。
(6)查询选修了课程的学生的学号和姓名。
(7)查询年龄在20-23岁之间的学生的姓名,系,年龄。
(8)查询选修了“计算机导论”,“高等数学”课程的学生的学号,姓名。
(9)查询姓“张”的学生的基本信息。
(10)查询“95211”班学生的选课情况,要求输出学号,姓名,课程名,成绩,按照学号升序排序。
(11)查询选修了课程的学生的总人数。
(12)查询选修了“C05”课程的的学生成绩单,要求输出学号,姓名,成绩,结果班级,成绩降序排列。
(13)统计各门课程的成绩,要求输出课程代号,课程名,平均成绩,选修人数。
(成绩为NULL值的不统计)
(14)统计各门课程的不及格人数,要求输出课程代号,课程名,不及格人数。
(15)查询选修平均成绩在75分以上的学生的学号,姓名,所在系。
(16)查询与“王大力”同一个系的学生的基本信息
(17)查询选修平均分高于所有学生平均分的学生的学号,并按学号升序排列。
(18)查询未选修“VB”或“数据库基础”两门课的学生的学号,姓名,系名。
(要求用嵌套查询)
(19)查询选修了全部课程的学生的学号,姓名,系名。
(20)输出“高等数学”课程成绩前三名的学生的学号,姓名,系名
四、实验小结
五、评阅成绩
实验预习20%
实验过程20%
实验结果30%
实验报告30%
总成绩
实验四数据更新
一、实验目的
1、掌握SQL语言的数据更新操作
2、掌握SQLServer2000企业管理器的数据导入和导出功能
二、实验预习
1、数据插入语句格式:
2、数据修改语句格式:
3、数据删除语句格式:
4、SQLServer中可进行批量数据导入和导出,可支持哪些格式的数据导入导出?
(举常见格式类型)
三、实验内容和要求
(执行操作后,将语句填写在下面的空白处)
1、插入数据
(1)在学生表Student中插入数据:
Sno:
9512102Sname:
刘晨Ssex:
男Sage:
20Sdept:
计算机系
(2)在课程表Course中插入数据:
Cno:
C06Cname:
数据结构Ccredit:
5Semster:
4
(3)在选课表SC中插入95211班学生选修C04的选课信息。
提示:
插入的数据的Sno从Student表中查询而来,插入的Cno为“C04”
(4)查询高等数学的成绩,包括学号,成绩,并按学号升序排序。
将查询的结果输出到一个名为gs_cj的表中。
(5)将SC表中“C05”课程的选课记录输出至一个新表中,表名为Gs01。
2、修改数据
(1)将所有学生的年龄增加1岁。
(2)修改“9512101”学生的“C01”课程成绩为85。
(3)修改“9531102”学生的“C01”课程成绩为70。
(4)将所有平均分为75分以上的学生的各门课成绩在原来基础上增加1%。
3、删除数据
(1)删除“9531102”学生“C05”课程的成绩记录
(2)删除所有课程为“C05”的选课记录
4、数据的导出
(1)将数据库中的S,P,J,SPJ表导出为一个ACCESS数据库,名为DB_SPJ。
(2)Student表中数据导出到一个文本文件,用,作为数据项的分隔符。
(3)将Course表中数据导出到一个Excel文件中。
5、批量增加数据
(1)利用查询,将其他表中的数据增加到需要的数据表中。
将Gs01表中的数据添加到SC表中。
(用Insert语句实现)
(2)从外部其他数据源导入数据(选做)
▪从文本文件中导入
▪从ACCESS中导入数据
▪从EXECEL中导入数据
四、实验小结
五、评阅成绩
实验预习20%
实验过程20%
实验结果30%
实验报告30%
总成绩
实验五数据控制
一、实验目的
1、掌握数据库完整性约束条件的设置
2、掌握触发器的基本使用
3、掌握SQLServer2000的安全性控制方法
二、实验预习
1、关系数据库的完整性约束有哪些?
2、什么是触发器?
其作用是什么?
SQLServer2000中的触发器主要有哪些?
三、实验内容和要求
1、实体完整性约束
(1)为供应商表SPJ建立完整性约束,约束列为SNO,PNO,JNO。
方法1:
在表设计器中建立,请写出建立的步骤:
方法2:
写出创建表的同时定义完整性约束的SQL语句。
(2)根据实验2中的内容,输入数据下面的数据,能否成功?
为什么?
S1
P1
J1
200
(3)输入下面的数据能否成功,为什么?
S1
NULL
J1
200
(4)根据上面实验的结果,请说明实体完整性约束的含义。
2、参照完整性约束
(1)修改Student表中记录,将学号9512101改为9512103,更改是否成功?
若不成功请说出原因。
(2)修改SC表中记录,将学号为9512101的记录均改为学号9512109,是否更改成功?
若不成功请说出原因。
(3)设置SC表的参照完整性为更新和删除时均为级联。
方法1:
在表设计器中设置,请写出设置的步骤:
方法2:
在创建表时同时设置参照完整性约束,并设置规则为级联。
请写出SQL语句。
(4)修改Student表学号9512101为9512109,观察SC表中相应记录是否更新?
(5)在Course表中删除课程代号为C01的记录,观察SC表中选课C01的记录是否删除?
3、用户自定义完整性
(1)设置Student表的Sno输入长度必须为7个字符的约束。
请将CHECK约束子句写在下面:
(2)设置student表的Sdept只能为“计算机系”,“数学系”,“信息系”,“物理系”。
请将CHECK约束子句写在下面:
4、触发器
(1)定义一个触发器,其基本功能是在SC表中增加或修改一个选课记录时,检查该课程的选课人数是否超过限定(可自行定义一个限定值,根据表中数据的情况而定)。
若超过限定值,则拒绝操作。
触发器代码:
(2)定义一个触发器,当删除Student表中数据时,先将删除的数据插入到另一个专门存放已删除数据的表中(实验时,首先定义一个与Student表结构相同的表用来存放删除的数据),然后执行删除操作。
触发器代码:
5、用户权限控制
(1)在自己数据库中添加其他用户。
(2)为添加的用户进行授权和权限收回。
相互检查是否获得了相应的权限。
四、实验小结
五、评阅成绩
实验预习20%
实验过程20%
实验结果30%
实验报告30%
总成绩
实验六视图与存储过程
一、实验目的
1、掌握视图的定义及使用
2、掌握存储过程的建立和调用
二、实验预习
1、基本表与视图有什么不同?
哪种视图可以更新?
2、视图定义语句格式:
3、什么是存储过程,其作用主要是什么?
三、实验内容和要求
1、视图(将执行的SQL语句写在下面)
(1)建立视图IS_STUDENT,视图中包含信息系全体学生的基本信息。
(2)建立视图CJ_STUDENT,视图中包含所有成绩不及格的学生的学号,姓名,课程名,成绩。
(3)建立视图AVG_CJ,视图包括学生的学号以及他们的平均成绩,按成绩降序排列。
(4)修改视图IS_STUDENT,将年龄均加1。
观察基本表Student中相应的数据是否发生变化。
(5)在视图IS_STUDENT中插入新的记录,学号为9531103,姓名为张玉,女,21岁。
(6)根据视图AVG_CJ,查询平均成绩大于60的学生的学号。
2、存储过程
(1)建立存储过程student_Grade1,功能是查询计算机系学生的成绩,包括学号,姓名,课程名,成绩,按学号升序排序。
存储过程代码:
执行存储过程代码:
(2)建立存储过程student_Grade2,功能是根据参数提供的系名,查询该系学生的成绩,包括学号,姓名,课程名,成绩,按学号升序排序。
存储过程代码:
执行存储过程代码:
(3)建立存储过程student_Grade3,功能是根据参数提供的学生的姓名和课程名,查询该学生相应的课程成绩,若存在不为空的成绩,则返回参数值为成绩值,否则返回-1。
存储过程代码:
执行存储过程代码:
(4)建立存储过程check_Xk,功能是根据提供的参数学号和课程号,完成选课记录的插入功能。
要求如下:
▪首先检查该课程选课人数是否已满(可自己根据表中数据的情况定义一个限定值),若满,则返回一个0;若不满,继续检查该学生是否已经选满3门课程,若满,则返回-1,否则将选课记录插入到SC表中,并返回1。
存储过程代码:
执行存储过程代码:
四、实验小结
五、评阅成绩
实验预习20%
实验过程20%
实验结果30%
实验报告30%
总成绩
实验七数据库编程
一、实验目的
1、掌握数据库的常用连接方式
2、理解事务处理技术
二、实验预习
1、数据库的连接方式有哪些?
2、什么是事务?
事务处理的特点?
三、实验内容和要求
1、建立ODBC数据源
打开ODBC数据源管理器,新建一个用户DSN数据源,数据源名称为student,数据源连接SQLServer服务器上自己的数据库。
2、打开VB,建立一个新的工程,完成一个系统登录的小例子。
(1)建立一个如下所示的FORM:
(2)图中各个控件的说明
▪学号输入文本框的各个属性:
属性名
值
说明
Name
txtXh
Text
置空
▪姓名输入文本框的各个属性:
属性名
值
说明
Name
txtXm
Text
置空
▪登录按钮的各个属性:
属性名
值
说明
Name
cmdLogin
Caption
登录
按钮上文字
▪登录按钮的各个属性:
属性名
值
说明
Name
cmdConcel
Caption
取消
按钮上文字
(3)ADODC1设置方法:
▪单击菜单“工程”-》“组件”,找到如下图所示打勾的组件
▪选择工具栏中的ADODC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 实验 指导书