数据库原理与应用实验指导书Word文件下载.docx
《数据库原理与应用实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库原理与应用实验指导书Word文件下载.docx(60页珍藏版)》请在冰豆网上搜索。
![数据库原理与应用实验指导书Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/28/882925f0-65a5-419f-83bd-f4bc1b879be9/882925f0-65a5-419f-83bd-f4bc1b879be91.gif)
会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
要建立“student”表,先选中学生选课数据库中的表文件夹,单击鼠标右键,在弹出的菜单中选择“新建表”,随后的输入表结构对话框。
输入表结构对话框是一张表,它的列属性有列名、数据类型、长度和是否允许空4项。
用
户把新建表的结构填入对话框的表中,表中的每一行定义新建表(Course)的一列,每一列定
义新建表的一个列属性。
当光标移到表中的某一行时,下面的列描述就会对应当前行显示输入项,用户可在其中对关系的属性进行进一步说明。
列描述包括数据的精度、小数位数、默认值、是否标识等项。
⑵使用T-SQL语句建立student,course,SC三个表
CreateTablestudent
(
snovarchar(20)primarykey,
Snamevarchar(50)notnull,
Ageint,
Sexchar
(2),
Deptvarchar(50)
);
Createtablecourse
cnovarchar(20)primarykey,
Cnamevarchar(50)notnull,
Creditfloatnotnull,
Pcnovarchar(20)notnull,
Describevarchar(100)notnull
CreatetableSC
snovarchar(20),
Cnovarchar(20),
Gradefloat,
primarykey(sno,cno),
foreignkey(sno)REFERENCESstudent(sno),
foreignkey(cno)REFERENCEScourse(cno)
5.定义表的完整性约束和索引
表的约束包括码(主键)约束、外键约束(关联或关系约束)、惟一性约束、Check(检查)约束4种。
这些约束可以在表属性对话框中定义。
(I)定义索引和键
选择“索引/键”页面,其界面如图10所示。
1)查看、修改或删除索引时,先要在“选定的索引”下拉列表框中选择索引名,其索引内容就显示在表中。
需要时,可以直接在表中修改索引内容。
如改变索引列名、改变排序方法等。
对于不需要的索引可以单击“删除”按钮,直接删除此索引。
2)新建一个索引时,单击“新建”按钮,并在下面的表中输入索引名、索引列名及排列顺序;
3)设置UNIQUE复选框,确定是否为惟一索引约束。
设置CLUSTERED复选框,确定是否为群集索引(CLUSTERED)。
(2)定义表间关联
选择表页面,其界面如图12所示。
I)查看、修改或删除表关联时,先要在“选定的关系”下拉列表框中选择关联名(即关系名),其关联内容就显示在表中。
需要时,可以直接在表中修改关联内容,例如改变主键、改变外键键等。
对于不需要的关联可以单击“删除”按钮,直接删除此关联。
2)新建一个关联时,单击“新建”按钮,选择库中的关联表(参照表)后,在表中输入关联名、主键和外键。
3)设置“创建中检查现存数据”复选框,确定新建关联时是否对数据进行检查,要求符合外键约束;
设置“对复制强制关系”复选框。
确定在进行数据复制时是否要符合外键约束:
设置“对INSERT和UPDATE强制关系”复选框,确认在对数据插入和更新时,是否符合外键约束:
设置“级联更新相关的字段”复选框和“级联删除相关的记录”复选框,确认被参照关系的主键位被修改时,是否也将参照表中的对应的外键值修改,而被参照关系的上码值被删除时,是否也将参照表中对应外键的记录删除。
(3)定义CHECK约束
选择CHECK约束页面。
其界面如图13所示。
1)查看、修改或删除CHECK约束时,先要在“选定的约束”下拉列表框中选择约束名,其约束内容就显示在约束表达式框中。
需要时,可以直接在框中修改约束表达式。
对于不需要的CHECK约束可以按“删除”按钮,直接删除此约束。
2)新建一个CHECK约束时,单击“新建”按钮,并在表中输入约束名和约束表达式。
3)设置“创建中检查现存数据”,确认在创建约束时是否对表中数据进行检查,要求符合约束要求;
设置“对复制强制约束”复合框,确认对数据复制时是否要求符合约束条件;
设置
“对INSERT和UPDATE强制约束”,确认在进行数据插入和数据修改时,是否要求符合约束
条件。
6•修改表结构
(1)使用企业管理器修改表结构
当需要对建好的表修改结构时,首先要在企业管理器中找到该表,用鼠标右击该表名,就
会弹出一个菜单,如图14所示。
随后,在弹出的菜单中选择“设计表”项,企业管理器会调
出如图9所示的建表对话框,用户可对原有内容进行修改。
SQLvexEui■gmiibE
辭尚丨三里一Hl隹Ena
_l茅矯台段目录
-!
创TkresafrSOLSmr-ET!
:
±
1JJjLS«
mrifi
一矗口帕7〕勳显胖3U1J
-二J劉据*
B财・sster
±
1划衲
-y*idb
-Utf.iILj»
1Dl±
豹Qpshl
■U
-UU*(4t-U学主逵:
栗uf究矗町
曲饥田用艇艮雄r4尸
we
AQ1
r
存时心刚DSf-」舟霜如拯毎诒亠」巻理
41二jffM
”-
-一|主持碍
■*■IfulxJxt.Larvjev^
巴匸2S«
凸静严v
4Lm
』1匸
站L'
13.14
anf13®
23L*L35Z<
真利口
Ui圮團
K^4U
'
|i.yspsr-kiXX3dm"
svrFrrtoertJts;
3s-f-sivi-is
o-oild-oQ'
季|!
6-11!
4-04■护o-o*6-4iD-db4i)JLJhdbdb4L4LJh卅4b4L4l4bdb4b4bJhdbdb
i.
2CD0-B£
MQ-tZOUQ-fi-Q:
EEJD-32CQ0-A2000-12ing-fWD-A2CD0-5扎LllbtS
3QDD-I
2QD0-BECDD-B2CD0H&
的帥哺甜即吨二」VZCDD-B
6L蚪L2
8l;
NIL£
HI却吃
Ql;
詡L£
EL2
图14在弹出菜单中选择“设计表”项
(2)使用T-SQL语句修改表结构
可以使用Alter语句增加、删除或修改字段信息。
例如为学生表中增年龄字段增加约束,限制年龄至少要15岁:
ALTERTABLEstudentADDCONSTRAINTAGECHECK(AGE>
15)
例如在学生表中增加班集字段为字符型,长度为50:
ALTERTABLEstudentADDClassvarchar(50)NULL
例如修改学生表中的班集字段的长度为20:
AlterTablestudentALTERCOLUMNClassvarchar(20)
例如删除学生表中的班集字段:
ALTERTABLEstudentDROPCOLUMNClass
四、注意事项
1•建表中如果出现错误,应采用相应的修改结构或删除结构的方法。
2•注意数据库的主键、外键和数据约束的定义。
五、思考题
1.数据库中一般不允许更改主键数据。
如果需要更改主键数据时,怎样处理?
2.为什么不能随意删除被参照表中的主键。
实验三数据库的建立和维护实验
本实验需要2学时。
一、实验目的
要求学生熟练掌握使用Transact-SQL和SQLServer企业管理器向数据库输入数据、修
改数据和删除数据的操作。
二、实验内容
(1)通过企业管理器,在数据库的student、course和SC三个表中各输入10条记录。
要求记录不仅满足数据约束要求,还要有表间关联的记录。
(2)通过企业管理器实现对学生选课数据库的student、course和SC三个表中数据的
插入、删除和修改操作。
(3)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作。
要求学生、
课程和选课表中各有10条以上的记录。
sname
sex
dept
001101
张林
18
男
计算机系
001102
程明
001103
王艳
19
女
001104
平平
20
001201
王敏
数学系
001202
王林
001203
李计
21
001204
孙祥欣
17
001205
孙研
001206
孙小
ename
Credit
1310101
计算机基础
5
可自学
1310102
C++程序设计
4
1310206
离散数学
1310208
数据结构
1310209
操作系统
1310210
:
微机原理
可自学:
1310212
数据库原理
1310301
计算机网络
3
1310302
软件工程
1310211
图形学
Grade
88
76
62
70
91
84
95
78
三、实验步骤
(1)使用企业管理器更新数据
在MicrosoftSQLserver2000的企业管理器中,对表进行数据增、删、改操作非常简便。
其操作方法是:
1)选中服务器,展开数据库文件夹,进一步展开指定的数据库。
单击表文件夹,找到需要更新数据的基本表。
2)用鼠标右击要更新数据的表,会出现与表相关操作的弹出菜单,如图15所示。
在弹出
菜单中选择“打开表”7“返回所有行”。
图15基本表的弹出菜单
在该对话框中,数据以表格形式组织,每个字段就是表中的一列,每条记录是表中的一行。
原有的记录已经在表格中,通过移动右边的滑块可查阅所有的记录。
3)需要数据插入时,就在最后一条记录后输入一条记录。
当鼠标点击其他行时,输入的记录会自动保存在表中。
4)需要修改记录时,直接对表中已有记录的数据进行改动,用新值替换原有值。
5)需要删除记录时,先用鼠标单击要删除行的左边灰色方块,使该记录成为当前行,然后按(Delete)键。
为了防止误操作,SQLserver2000将弹出一个警告框,要求用户确认删除操作,单击“确认”按钮即可删除记录,也可通过先选中一行或多行记录,然后再按(Delete)
键的方法一次删除多条记录。
(2)使用T-SQL语句更新数据请给每个学生选修三门课,在期未时给每门课一个成绩。
如张林同学选修了计算机基础这门课,期未的考试成绩为95分,SQL语句如下:
InsertintoSC(sno,cno)values('
001101'
'
1310101'
)
UpdateSCsetgrade=95wheresno='
andcno='
1.输入数据时要注意数据类型、主键和数据约束的限制。
2.数据更改和数据删除时要注意外键约束。
实验四数据库的简单查询和连接查询实验
一、实验目的
使学生掌握SQLServer查询分析器的使用方法,加深对Transact-SQL语言的查询语句的理解。
熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法。
二、实验内容
1.简单查询操作该实验包括投影、选择条件表达、数据排序、使用临时表等。
2.连接查询操作该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右
连接和自连接等。
(1)简单查询实验
1)用Transact-SQL语句表示下列操作,在学生选课库中实现其数据查询操作:
1求数学系学生的学号和姓名。
2求选修了课程的学生学号。
3求选修课程号为1310101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
4求选修课程号为1310101的成绩在80-90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。
5求数学系或计算机系姓张的学生的信息。
6求缺少了成绩的学生的学号和课程号。
(2)连接查询实验
用Transact-SQL语句表示,并在学生选课库中实现下列数据连接查询操作:
1查询每个学生的情况以及他(她)所选修的课程。
2求学生的学号、姓名、选修的课程名及成绩。
3求选修离散数学课程且成绩为90分以上的学生学号、姓名及成绩。
4查询每一门课的间接先行课(即先行课的先行课)。
1.查询结果的几种处理方式。
2.内连接、左外部连接和右外部连接的含义及表达方法。
3.输入SQL语句时应注意,语句中均使用西文操作符号。
1.如何提高数据查询和连接速度。
2.对于常用的查询形式或查询结果,怎样处理好?
实验五数据库的嵌套查询实验
语言的嵌套
操作符进行嵌
使学生进一步掌握SQLServer查询分析器的使用方法,加深Transact-SQL查询语句的理解。
在SQLServer查询分析器中使用IN、比较符、ANY或ALL和EXISTS套查询操作。
用Transact-SQL语句表示,在学生选课库中实现其数据嵌套查询操作。
(l)求选修了离散数学的学生学号和姓名。
SELECTS#,SNAME
FROMS
WHERES#IN(SELECTS#
FROMSC
WHEREC#IN(SELECTC#
FROMC
WHERECNAME=‘离散数学'
(2)求1310101课程的成绩高于张林的学生学号和成绩。
(3)求其他系中年龄小于计算机系年龄最大者的学生。
(4)求其他系中比计算机系学生年龄都小的学生。
(5)求选修了1310206课程的学生姓名。
SELECTSNAME
(6)求没有选修1310206课程的学生姓名。
WHERES#NOTIN(SELECTS#
WHEREC#=‘1310206'
(7)查询选修了全部课程的学生的姓名。
答案:
selectsname
Fromstudent
Wherenotexists
(select*
Fromcourse
Fromsc
Wheresno=student.snoandcno=o))
(8)求至少选修了学号为“001103”的学生所选修的全部课程的学生学号和姓名。
答案:
selectsno,sname
Wheresnoin
(selectscx.sno
Fromscscx
Fromscscy
Wherescy.sno='
001103'
andnotexists
Fromscscz
Wherescz.sno=scx.snoando=o)))
1.输入SQL语句时应注意,语句中均使用西文操作符号。
2.语句的层次嵌套关系和括号的配对使用问题。
试用多种形式表示实验中的查询语句,并进行比较。
实验六数据库的组合查询和统计查询实验
使学生熟练掌握SQLServer查询分析器的使用方法,加深对Transact-SQL语言的查询语句的理解。
熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
1.分组查询实验。
该实验包括分组条件表达、选择组条件的表达方法。
2.使用函数查询的实验。
该实验包括统计函数和分组统计函数的使用方法。
3.组合查询实验。
4.计算和分组计算查询的实验。
在学生课程数据库中实现其查询操作
(1)查找选修“计算机基础”课程的学生成绩比此课程的平均成绩大的学生学号,成绩。
(2)求选修计算机基础课程的学生的平均成绩。
(3)列出各系学生的总人数,并按人数进行降序排列。
(4)统计各系各门课程的平均成绩。
(5)查询选修计算机基础和离散数学的学生学号和平均成绩。
1.子句WHERE(条件)表示元组筛选条件,子句HAVING(条件)表示组选择条件。
2.组合查询的子句间不能有语句结束符。
3.子句HAVING(条件)必须和CROUPBY(分组字段)子句配合使用。
1.组合查询语句是否可以用其他语句代替,有什么不同?
2.使用GROUPBBY(分组条件)子句后,语句中的统计函数的运行结果有什么不同?
实验七数据库的视图和图表的定义及使用实验
本实验需要2学时。
使学生掌握SQLServer中的视图创建向导和图表创建向导的使用方法,加深对视图和SQLserver图表作用的理解。
1.创建、查看、修改和删除视图。
2.创建、编辑和删除数据库图表。
1.创建视图
根据学生选课数据库中已经建立了student、course和SC三个表,结构如下:
student(sno,sname,age,sex,dept);
course(cno,cname,credit,pcno,describe);
SC(sno,cno,grade)。
如果要在上述3个表的基础上建立一个视图,取名为SC_VIEW;
其操作用SQL语句表示为:
CREATEVIEWSC_VIEW
ASSELECTSTUDENT.*,COURSE.*,SC.GRADE
FROMSTUDENT,COURSE,SC
WHERESTUDENT.SNO=SC.SNOANDCOURSE.CNO=SC.CNO
下面利用SQLServer中提供的视图创建向导,来创建SC_VIEW视图。
1)打开企业管理器窗口,确认服务器,打开数据库文件夹,选中新视图所在的数据库。
2)选择菜单“工具”7“向导”,如图18所示。
3)在如图19所示的向导选择对话框中,单击数据库左边的“+”号,使之展开。
选择“创建视图向导”项,单击“确定”按钮。
4)进入创建视图向导后,首先出现的是欢迎进入创建视图向导对话框,其中简单介绍了该向导的功能,如图20所示。
单击“下一步”按钮后,就会出现如图21所示的选择“数据库名称”对话框。
*乍即蓝运叩
4鬥
FF1
E母■i
sn-f\瞬口也
U忙4
|匸-.H3
1b
汕fl
_Sa
J
su*:
i
■
I
■■
ti
l£
QLSwrvwX盥
11Cfiiti:
CK
IftllfFpwirl■fcsdh
-t-
“・
B
g
Fdb
視图寻临
HJP爾色
HF
比
If
It
-LLLLL
STi'
l直価电.、卜T
亠+r.■-
<
1
全尢^1疋・
別二査甸rff丁i^isqt爭幅迺旳I别主占典丄04'
i£
削耳吐I
熱庭椅护计勺器巴…
swlSsjvM3t£
S性3笛厘虫1i»
r-=-wir:
勺]3电)
骨列工翼旺〕.
^4W...?
«
©
■
.冏有看I删」*UB■弼|
■n
200D-?
-fl12312
Jk-3
2flLD-6-fiV2S-12
图18选择向导工具选项
图19在向导对话框中选择视图向导
图20欢迎进入创建视图向导对话框图
21选择数据库名称对话框
5)在“选择数据库名称”对话框中,选择视图所属的数据库。
本例的数