数据库上机实验1.docx
- 文档编号:16429830
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:18
- 大小:1.90MB
数据库上机实验1.docx
《数据库上机实验1.docx》由会员分享,可在线阅读,更多相关《数据库上机实验1.docx(18页珍藏版)》请在冰点文库上搜索。
数据库上机实验1
实验七:
数据完整性实验(SQLSERVER)
实验目的:
加深对数据完整性的理解。
实验内容:
数据库的完整性设置。
实验步骤:
1)可视化界面的操作方法:
一、实体完整性
1.将student表的“sno”字段设为主键:
在表设计界面中,单击左边的行选定块,选定“sno”字段,单击工具按钮
设置主键。
如图6-1所示:
图6-1
1.将“sc”表的“sno”和“cno”设置为主键:
在表设计界面中,单击并拖动左边的行选定块,选定sno和cno字段,单击工具按钮
设置主键。
如图6-2所示:
图6-2
二、域完整性
3.将“ssex”字段设置为只能取“男”,“女”两值:
在表设计界面,点击图4-3箭头所指按钮,出现属性(Property)对话框,选择新建(New)按钮,然后在约束表达式(Constraintexpression)框中输入“ssexin('男','女')”。
如图6-3所示。
图6-3
三、参照完整性
4.利用数据库关系图来完成参照完整性见图6.4。
将要形成参照完整性的数据库加入
将student表作为主键表,sc表作为外键表形成参照完整性,将鼠标参照完整性放在student表的sno上,按左键不放,拖至sc表的sno放开
修改下面中insert和update选项,对student表和sc表的sno字段进行插入和修改操作,看有何区别
同理,将course表作为主键表,sc表作为外键表形成参照完整性最后如下图
2)命令方式操作方法:
一、实体完整性
1.将“student”表的“sno”字段设为主键:
当“student”表已存在则执行:
altertablestudentaddconstraintpk_snoprimarykey(sno)
当“student”表不存在则执行:
Createtablestudent(snoCHAR(5)primarykey,
snameCHAR(10),ssexCHAR
(2),
sageint,sdeptCHAR(4))
注:
可用命令“droptablestudent”删除“student”表
2.添加一身份证号字段,设置其惟一性.(注:
操作前应删除表中的所有记录)
Altertablestudentaddidchar(18)unique(id)
3.将“sc”表的“sno”和“cno”设置为主键:
当“sc”表已存在则执行:
altertablescaddconstraintPK_SnoCnoprimarykey(sno,cno)
当“sc”表不存在则执行:
Createtablesc(snoCHAR(5),cnoCHAR
(2),
gradeINTNULL,
constraintPK_SnoCnoprimarykey(sno,cno))
二、域完整性
4.将“ssex”字段设置为只能取“男”,“女”两值:
当“student”表已存在则执行:
altertablestudentaddconstraintCK_Sexcheck(ssexin('男','女'))
当“student”表不存在则执行:
Createtablestudent(snoCHAR(5)primarykey,
snameCHAR(10),
ssexCHAR
(2)check(ssexin('男','女')),
sageint,sdeptCHAR(4))
5.设置学号字段只能输入数字:
altertablestudentaddconstraintCK_Sno_Formatcheck(snolike'[0-9][0-9][0-9][0-9][0-9]')
6.设置身份证号的输入格式:
altertablestudentaddconstraintCK_ID_Formatcheck((idlike'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_')OR(idlike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))
7.设置18位身份证号的第7位到第10位为合法的年份(1900-2050)
altertablestudentaddconstraintCK_ID_Format2check(notlen(id)=18or((convert(smallint,substring(id,7,4))>=1900)and(convert(smallint,substring(id,7,4))<=2050)))
三、参照完整性
9.设置男生的年龄必须大于22,女生的年龄必须大于20.
AltertablestudentaddconstraintCK_agecheck(sex='男'andsage>=22orsex='女'andsage>=20)
10.将“student”表和“sc”表中的“sno”字段设为参照:
当“sc”表已存在则执行:
altertablescaddconstraintFP_snoforeignkey(sno)referencesstudent(sno)
当“sc”表不存在则执行:
Createtablesc(snoCHAR(5)constraintFP_sno
foreignkeyreferencesstudent(sno),
cnoCHAR
(2),gradeINTNULL,
constraintPK_SnoCnoprimarykey(sno,cno))
四、完整性验证
1.实体完整性:
在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误如下图所示:
图6-5
或者在命令窗口输入下面两条命令也会出现错误提示:
insertintostudentvalues('95001','张三','男',20,'CS')
insertintostudentvalues('95001','李四','女',18,'CS')
图6-6
下面的语句用来验证“sc”表中的实体完整性:
insertintoscvalues('95002','10',65)
insertintoscvalues('95002','10',90)
图6-7
2.域完整性:
使用下面的语句验证“ssex”字段的域完整性:
insertintostudentvalues('95009','张匀','大',20,'CS')
3.参照完整性:
使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):
insertintoscvalues('98998','10',98)
思考:
1.建立课程的实体完整性,和课程号cno的参照完整性;
2.建立年龄的域完整性,约束条件为“年龄在15到30岁之间”
3*.在学生表中添加“出生日期”和“身份证号”字段,设置一完整性规则,确保身份证号中的关于出生日期的数字与“出生日期”字段的值相匹配。
altertablestudentaddconstraintCK_ID_Forma
实验八数据库备份和恢复实验
实验目的:
了解数据备份和恢复机制,掌握其方法。
实验内容:
1、用企业管理器创建一个备份设备,并利用该备份设备对数据库执行备份。
2、为数据库设置一个备份计划,要求每当CPU空闲时进行数据库备份,并且要求每月1号进行数据库备份。
3、在企业管理器中恢复数据库。
实验步骤:
一)数据备份
1)打开企业管理器,在控制台根目录中依次点开MicrosoftSQLServer-->SQLServer组-->双击打开你的服务器
2、然后点上面菜单中的工具-->选择数据库维护计划器(若SQLserver代理未启动,启动)
3)在左边的工具箱中(没有的话,按Ctrl+Alt+X),将“备份数据库任务”拖到中间的黄色区域。
4)双击拖出来的这个任务,会出现设计属性的窗口,在数据库中,选择你要备份的数据库,然后设置备份到那里,并且设置备份的文件名,设计好后,单击“确定”,你也可以单击“T-SQL”,看看sql大致会用什么样的语句来处理你的需求。
4、下一步选择要进行自动备份的数据-->下一步更新数据优化信息,这里一般不用做选择-->下一步检查数据完整性,也一般不选择
5单击“计划”后面的“…”按钮,设置执行的时间计划。
时间设定在当前时间之后
6修改日志记录存放位置
二)数据恢复
1)删除要恢复的数据库(如:
XSGL)
2)如图MicrosoftSQLServer-->SQLServer组-->数据库,右键选择:
“还原数据库”
3)选择“原设备”并添加
4)选择已备份的数据库
5)按下图填好并确定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 上机 实验