数据库原理实验Word格式文档下载.docx
《数据库原理实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库原理实验Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
数据文件和日志文件。
图1-5输入数据库名称StuMsg(学生信息库)
选择适当的数据库数据文件存放文件夹位置
单击数据文件“路径“项对应的按钮
,将会弹出查找文件夹对话框,选择要保存数据文件的路径与文件名。
图1-6选择适当的数据库数据文件存放文件夹
选择适当的数据库事务日志文件存放文件夹位置
数据库事务日志文件的设置方法与技巧和数据文件相同。
完成上述操作后,其它选项在本实验中可默认不变,单击确定完成操作。
3、新建表
开始新建表
单击
打开指定数据库(目标数据库),选中“表”项目,右击鼠标右键,选择“新建表”
图1-7开始新建表
定义字段(属性)
①在列名中输入字段(属性)名,②数据类型可下拉选择或直接输入,③允许空,不允许为空
图1-8在表设计器窗口中定义字段(属性)
定义表名
完成字段定义后,选择快键按钮
,或“文件”菜单中的“保存”子菜单,输入适当的表名。
表名的定义要求符合命名规则。
定义主键
选中要定义为主键的字段,右击鼠标选择“设置主键”,或直接单击快键按钮
。
如果主键为多个字段的组,则使用Ctrl键与鼠标的组合来选中多个字段。
图1-9定义主键
定义外码
1.选中要定义为外码的字段,右击鼠标选择“关系”按钮,打开“外键关系”对话框。
图1-10定义外码
图1-11没有创建关系式的“外键关系”对话框
2.单击“外键关系”对话框中的“添加”按钮
图1-12单击“添加”按钮后的对话框
3.单击对话框中“表和列规范”右边的按钮
,出现“表和列”对话框,在“主键表”和“外键表”下拉列表框中分别显示了默认的主键表和外键表。
主键表:
被参照表,外键表:
外表字段所在的表。
选择正确的主键表,并在主键表下面的列表中选择正确的主键字段名;
选择正确的外键表,并在外键表下选择正确的外键字段名。
主键字段与外健字段要求类型相同,长度相同,而且要求主键字段必须在主键表(被参照表)中是主码,否则无法完成定义。
图1-13选择关联字段
关系名:
外码名,一般定义格式:
FK_外键表名_主键表名_外键字段名_主键字段名。
设置完成后,单击对话框中“确定”按钮。
4.定义完成之后,单击主窗口左上角的快键按钮
保存。
定义Check约束
选中要定义为Check约束的字段,右击鼠标选择“Check约束”按钮,打开“Check约束”对话框。
单击对话框中“添加”按钮,设置约束关系。
图1-14单击“添加”按钮后的CHECH约束对话框
在“表达式”输入框中输入正确的关系表达式。
如学生的成绩在0到100之间,表达式如下(学生的成绩字段为Grade):
Grade>
=0andGrade<
=100
图1-15定义CHECH约束
约束名的一般格式为:
CK_表名_字段名。
单击左上角的快键按钮
修改表结构
选中要修改结构的表,右键鼠标选择“设计表”(或在操作菜单中选择)。
表中数据操作
打开表:
选中要打开数据的表,右键鼠标选择“打开表”(或在操作菜单中选择)。
录入数据:
在表格的空白处直接输入即可。
修改表中的数据:
直接在要修改的单元格中修改即可,若字段类型为Char,则其内容后面的空格可能造成数据长度过长,应先将空格删除。
删除表中的一行数据:
将要删除的一行选中,单击鼠标右键选择“删除”。
图1-13选中一行数据
删除表中的多行数据:
使用Ctrl键与鼠标的组合选中多行数据,单击鼠标右键选择“删除”。
三、实验内容
1.启动SQLServer,进入SQLServerManagementStudio。
2.建立学生信息数据库,并存于D盘自建的目录
学生表:
Student(Sno,Sname,Ssex,Sage,Sdept)
课程表:
Course(Cno,Cname,Cpno,Ccredit)
学生选课表:
SC(Sno,Cno,Grade)
3.上述各表属性类型及宽度自定(要求为属性选择合适的数据类型,长度,是否为空和缺省值),定义每个表的主码(上述表中划线的属性)。
4.定义约束:
实现学生性别只能是”男”或”女”的检查约束学生成绩介于0-100之间,表之间的参照完整性约束。
5.分别在三个表中输入数据,内容自定,输入数据时观察实体完整性、参照完整性、自定义完整性约束的效果。
学号
Sno
姓名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
200215121
200215122
200215123
200515125
李勇
刘晨
王敏
张立
男
女
20
19
18
CS
MA
IS
……
6.分别对三个表中的数据进行删除,修改操作,修改数据时观察约束的效果。
实验二基本查询
一、实验目的
1、掌握SQLServer查询编辑器的使用方法。
2、掌握用SQL对数据库中的数据进行简单查询操作。
1、附加数据库
1)进入SQLServerManagementStudio
2)在数据库栏右击鼠标,选择附加数据库
图2-1开始附加数据库
3)在本机的指定目录下选择学生信息库文件
图2-2选择附加数据库的MDF文件
4)确定(开始附加数据库),即可。
2、查询编辑器的使用
打开查询编辑器
(1)打开SQLServerManagementStudio
(2)在“对象资源管理器”中选择数据库;
在选中的数据库上单击右键,在弹出菜单中选择“新建查询”,系统打开查询编辑器,新建一个数据库引擎查询文档。
如下图2-3。
图2-3打开查询编辑器
编辑SQL命令语句
将正确的SQL命令语句输入SQL查询编辑器中,使用方法可参考记事本。
编辑SQL命令语句,语句结束不需要分号“;
”。
图2-7编辑SQL命令语句
执行SQL语句
执行当前SQL查询编辑器中的所有命令语句:
单击快按钮
,或在“查询”菜单中选择“执行”,或使用快捷键“F5”。
查询结果将命令下方显示。
图2-8执行SQL命令语句
单条SQL命令语句执行:
选中当前要执行SQL命令语句,单击快按钮
多条SQL命令语句执行:
参考“单条SQL命令语句执行”。
三、实验内容
1、将教师指定的两个文件(stumsg_data.mdf、stumsg_log.ldf)拷贝至自己机器的D盘自建的文件夹中。
附加到数据库管理系统中。
2、查询要求:
(1)运用基本查询语句进行基本查询;
(2)在WHERE条件中加入比较运算符和逻辑运算符;
(3)运用聚合函数(AVG、MIN、MAX、SUM、COUNT)查询;
(4)运用分组子句、排序子句进行查询;
3、题目
查询全体学生的学号和姓名;
查询全体学生的姓名、学号、所在系
查询学生的全部信息
查询全体学生的姓名和年龄
查询选修了课程的学生(选多门课的学生只保留一次)
查询考试成绩不及格的学生
查询年年龄在20到30的学生
查询计算机、数学、和信息系的学生
查询刘姓的学生
查询选修了‘DB_Design’课程的学生
查询名字中第二个字是‘宗’的学生
查询没有选修课程的学生学号
查询20岁以下计算机系的学生
查询一号课程的选修人数
统计计算机系每个同学的选修课门数、平均成绩、总成绩
统计计算机系平均成绩优秀的学生
四、思考题
1、写betweenAandB的等效关系表达式。
2、举例说明distinct作用。
实验三综合查询
1、实验目的
(1)掌握连接查询的使用方法;
(2)掌握嵌套查询、集合查询等复杂查询的使用。
2、实验平台
操作系统:
windows2000pro
数据库系统:
mssql2000server
3、实验内容
(1)连接查询
①查询每个学生及其选修课程情况;
②查询每门课程的直接和间接先修课
③查询所有学生及其先修课的情况
④查询选修2号课切成绩在90分以上的学生
⑤查询每个学生的学号、姓名、选修课名及成绩
⑥查询重名的学生
(2)嵌套查询
①查询与刘晨在同一个系学习的学生;
②查询选修了课程名为“信息系统”的学生
③查询每个学生超过他选修课程平均成绩的课程号
(3)谓词查询
①查询所有选修了一号课程的学生;
②查询没有选修一号课程的学生
③查询选修了全部课程的学生
(3)集合查询
①查询所有选修了一号课程但未选修2号课程的学生;
②查询所有选修了一号课程也选修2号课程的学生
4、实验要求
(1)预习综合查询语句的语法;
(2)观察验证数据的准确性;
实验四数据更新
(1)掌握INSERT语句的使用方法;
(2)掌握UPDATE语句的使用方法;
(3)掌握DELETE语句的使用方法;
(4)掌握视图的使用
(1)将一个新学生记录(学号:
201215128;
姓名:
程东;
性别:
男、所在系:
计算机、生日:
1993-09-01;
)插入到学生关系
(2)插入一条选课记录(201215128,C01)
(3)对每一个系的每一门课程,计算其平均成绩,并记入下面的表。
DeptAvg(sdeptchar(100),cnoCHAR(10),cavgNUMERIC(4,1))
(4)将学生201215128的生日改为1993-07-01
(5)把计算机系的学生成绩清零
(6)删除201215128号学生的选课记录
(7)删除计算机系学生一号课的选课记录
(8)创建学生视图Svew(sno,sname,sdept,sbirth,sage,ssex)
(1)预习INSERT、UPDATEL、DELETE语句的语法;
(3)写出实验报告。
(1)删除学生表中的所有信息,试写出SQL语句,执行结果如何,为什么?
(2)更新某人的成绩,更新公式如下:
新成绩=新成绩*(1+10%),能否采用下列语句,为什么?
并完成正确的SQL语句操作。
update选课,学生set成绩=原成绩*1.1where姓名=‘某人姓名’
实验五数据库安全实验
1、掌握SQLServer中有关用户、权限的管理方法。
2、了解SQLServer的数据备份机制
3、加深对数据库安全性的理解
二、实验内容
1、在MSSQLSERVER企业管理中,创建一个数据库,数据库名为DB1,在该数据库中创建一个学生表(学号,姓名,性别,年龄,所在系)。
2、在MSSQLSERVER的安全性中创建一个登录(Login),登录名为Login1,密码为123456。
在查询分析器中以该Login1登录,观察可访问的数据库,并记录。
3、在DB1数据库中创建数据库用户,登录名为Login1,用户名为Login1,再次在查询分析器中观察可访问的数据库,并记录。
请在查询分析器中执行如下SQL,观察并记录结果。
1)select*from学生表
2)用SQL在学生表中插入一条记录
3)createtable课程表(
课号char(10)primarykey,
课程名称char(30)notnull,
学分smallintnotnull)
4、新建一个查询分析器窗口,以sa登录,用授权语句赋于Login1用户创建表的权力,查询学生表的权力,向学生表中添加、修改、删除记录的权力。
5、重新执行第3题中的SQL,观察并记录结果。
6、新建一个查询分析器窗口,以sa登录,用收权语句收回Login1用户创建表的权力,查询学生表的权力,向学生表中添加、修改、删除记录的权力。
7、重新执行第3题中的SQL,观察并记录结果。
8、新建二个登录,创建二个登录,登录名分别为user1、user2,密码分别为user1、user2,并使他们都能访问DB1数据库。
以sa的身份使用查询分析器连接数据库,并选择数据库DB1,用SQL语句将学生表的所有权利赋予user1用户,将课程表的所有权利赋予user2用户。
新建二个查询分析器窗口,分别以user1和user2连接DB1数据库,用user1和user2分别对学生表和课程表操作,观察并记录结果。
9、创建四个登录,登录名分别为user3、user4、user5、user6,密码分别为user3、user4、user5、user6,并使他们都能访问DB1数据库。
以sa的身份使用查询分析器连接数据库,并选择数据库DB1,用SQL语句将学生表的所有权利赋予user3用户,并能将权利再授权给其它用户,再用SQL语句将学生表的所有权利赋予user4用户,但不能授权给其它用户。
新建二个查询分析器窗口,分别以user3和user4连接DB1数据库,在user3的窗口中,将学生的所有权利赋予user5;
在user4的窗口中,将学生的所有权利赋予user6,观察并记录结果。
10、使用SQL语句和可视化操作二种方法备份、恢复数据库,写出SQL语句。
11、使用SQL语句和可视化操作二种方法分离、附加数据库,写出SQL语句。
三、思考题
1、分离数据库和删除数据库有何不同?
2、如果要将实验室中某台计算机中的某个数据库复制到你自己的计算机中,该如何操作?
实验六数据完整性实验
熟悉通过SQL对数据进行完整性控制,完成作业上的联系。
见P164
使用SQL对数据进行完整性控制(三类约束、check短语、constraint子句、触发器),通过实验证实当操作违背约束条件时,数据库系统是如何处理的。
(1)重新创建学生信息库的三张表,创建时加上主、外键约束
(2)重新创建选课关系SC,要求成绩介于0-100之间,向选课关系中插入一条记录,其中成绩为120,是否成功?
(3)建立如下教师关系TEACHER,要求每个教师的应发工资不低于3000,职称(job)只能取教授、副教授、讲师、助教。
TEACHER(Enochar(10),Enamechar(10),Jobchar(10),salnumeric(9,1))
(4)定义教师表上的一个行级触发器.,要求教授的工资不低于4000,如果低于4000,自动改为4000.(选作)
(1)观察验证数据的准确性;