数据库原理实验报告Word文档格式.docx
《数据库原理实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库原理实验报告Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
文件的最大长度,如果此处为unlimited,表示文件可以无大小限制,直到增长至整个磁盘大小*/
/*filegrowth:
文件的增长量*/
(name=xiubo1_data,
\4070130\xiubo1_data.mdf'
size=20)
logon(name=xiubo_log,/*log:
日志文件,其建立方式同数据库文件,扩展名为.ldf*/
\4070130\xiubo_log.ldf'
size=10,
maxsize=50,
filegrowth=5),
(name=xiubo1_log,
\4070130qlex\xiubo1_log.ldf'
size=5,
maxsize=20,
filegrowth=2)
实验结果:
3.、使用查询分析器修改数据库
alterdatabasexiubo/*alter:
用于修改数据库或表文件*/
modifyname=zhangxiubo/*modifyname:
修改数据库名*/
alterdatabasezhangxiubo
addfile(name=zhangxiubo_data,/*addfile:
增加数据库中的次要文件,扩展名为.ndf*/
\4070130\zhangxiubo_data.ndf'
/*建立方式同建立主要文件*/
maxsize=20),
(name=zhangxiubo1_data,
\4070130\zhangxiubo1_data.ndf'
maxsize=20)
alterdatabasezhangxiubo
addlogfile(name=zhangxiubo_log,/*addlogfile:
增加日志文件*/
\4070130\zhangxiubo_log.ldf'
(name=zhangxiubo1_log,
\4070130\zhangxiubo1_log.ldf'
modifyfile(name=zhangxiubo_data,/*modifyfile:
修改数据库文件的基本属性*/
size=30,
maxsize=50)
4、显示或修改数据库文件的结构及各项属性
Sp_helpdbzhangxiubo
execsp_dboption'
zhangxiubo'
'
readonly'
false'
/*设置数据库是否为只读属性*/
dbouseonly'
true'
/*设置数据库管理员访问权限*/
sp_renamedbzhangxiubo,xiubo
Usemasteruse[数据库名]:
激活数据库
Go
Dropdatabasestud
【实验题目】实验二创建并管理表
【实验内容】1、创建数据库中的表
usexiubo使用当前新建数据库
go
createtablestudent(/*createtable[表名](列名数据类型属性…):
建立数据库中的表*/
student_idchar(8)notnullprimarykey,/*primarykey:
建表的同时指定表的主键*/
student_namechar(8)notnull,
sexbitnotnull,
birthsmalldatetimenotnull,
class_idchar(6)notnull,
ntrance_datesmalldatetimenotnull)
createtablecourse(
course_idchar(10)notnullprimarykey,
course_namenvarchar(20)notnull,
total_periortinyintnull,
week_periortinyintnull,
credittinyintnull)
createtableclass
(class_idchar(6)notnullprimarykey,
monitornvarchar(8)null,
classroomvarchar(13)null,
student_numsmallintnulldefault0)/*default:
为列添加默认值约束*/
createtablestudent_course
(course_idchar(10)notnullprimarykeyclustered,
student_idchar(8)notnull,
gradetinyintnotnull,
credittinyintnotnull,
semesterbitnull,
school_yearchar(9)null)
createtablestudent2
(student_idchar(8)notnullprimarykey,
student_namechar(8)notnull,
class_idchar(6)notnullreferencesclass(class_id),
class_iddchar(6)notnullconstraintfkClassidforeignkeyreferencesclass(class_id),
ntrance_datesmalldatetimenotnull)
2、显示及修改表的结构
sp_helpclassSp_help[表名]:
显示表的结构
altertablestudent_course2/*altertable[表名]:
修改表结构,添加列*/
addcus_amountfloatnull,/*add[列名1属性,列名2属性,列名3属性,…]*/
cus_idtinyintnull,
cus_namechar(8)null,
cus_datesmalldatetimenull
altertablestudent_course
dropcolumncus_amount1,/*dropcolumn[列名1,列名2,列名3,…]:
从表中
cus_date,cus_id删除某几列*/
(表中已不存在列cus_amount,cus_date,cus_id)
3、删除表
droptablestudent_course/*droptable[表名]:
删除数据表*/
(原数据库中的表student_course已被删除)
4、添加表的约束完整性
altertablestudent/*addconstraint约束名default‘常量表达式’for字段名:
*/
addconstraintdefSexdefault1forsex/*为表student的sex字段添加默认值约束*/
createtablestudent(sexbitconstraintdefSexdefault0)
列名数据类型CONSTRAINT约束名default常数/表达式:
创建表的同时规定默认值约束
addconstraintchkGradecheck(grade>
0andgrade<
100)
altertablestudent
addconstraintchkEntrcheck(entrance_date<
getdate())
addconstraintchkBirthcheck(birth<
addconstraint约束名check(具体规则):
为已存在的表列添加检查约束
getdate():
/*获取当前系统时间*/
addconstraintpkStudent_idprimarykey(student_id)
altertableclass
addconstraintpkClass_idprimarykey(class_id)
addconstraint约束名primarykey(列名):
在指定表的选定字段上设置主键约束
altertablestudent_course
addconstraintpkStu_Couprimarykey(student_id,course_id)
为选定表的多个选定列设置联合主键约束,也可在企业管理器中使用ctrl键+鼠标选择同时指定多个列设置
altertablecourse
addconstraintunCousunique(course_name)
altertablestudent
addconstraintunStuunique(student_name)
addconstraint约束名unique(列名):
为选定列指定唯一性约束
createrulegrade_ruleas@grade>
=0and@grade<
=100
createrule规则名as条件表达式:
条件表达式中的变量必须以@开头,可以是任何符合where子句语法规则的表达式。
要引用条件表达式必须借助于insert或update数据更新语句加入表的值。
sp_bindrulegrade_rule,'
student_course.grade'
sp_bindrule规则名,'
表名.列名'
:
将规则绑定到指定列上,注意每个指定列只能绑定一条规则,如果在已经绑定过规则的列上重复绑定另一规则,新规则将代替旧规则起作用。
sp_unbindrule'
解除对指定列的规则绑定
droprulegrade_rule
droprule规则名:
删除已经存在的规则
createdefaultdefgradeas'
1'
;
创建缺省值
【实验题目】实验三数据更新
【实验内容】1、向表中插入记录
insertstudent1
values('
992002'
王洪'
0'
1984-2-1'
992'
2002-9-1'
)
992003'
李华'
1984-11-3'
992004'
孙伟'
1984-7-4'
992005'
林菲'
1984-4-7'
insertintostudent
selectstudent_id,student_name,sex,birth,class_id,ntrance_date
fromstudent1
2、修改表中的记录
updatestudent
setsex=1
wherestudent_id=992002
setbirth='
1985-1-12'
wherestudent_name='
setstudent_name='
林非'
sex=1,birth='
1984-7-21'
wherestudent_id='
3、删除表中的记录
deletestudent1
/*使用DELETEFROM表名WHERE条件删除指定的表中记录*/
(已删除student_id='
的一行)
4、修改列的名称
execsp_rename'
student.ntrance_date'
entrance_date'
表名.旧列名'
新列名'
【实验题目】实验四数据查询
【实验内容】1、查看表中所有已经输入的数据记录
select*fromstudent/*查看表中所有记录情况*/
selectstudent_id,student_namefromstudent
/*select字段名1,字段名2,…from表名:
查询指定表中的某几个字段*/
2、查询时使用标题信息更改列标题的显示
selectstudent_idas学号,student_nameas学生姓名,class_idas班级号fromstudent
/*select字段名1as标题信息1,字段名2as标题信息2,字段名3as标题信息3from表名*/
3、查询条件WHERE子句
select*fromstudentwhereclass_idin('
990'
select*fromstudentwhereclass_idbetween'
and'
select*fromstudentwherestudent_namelike('
__菲'
%菲'
_虹%'
)orstudent_namelike('
_红%'
select*fromstudentwherestudent_namenotlike('
)andstudent_namelike('
4、限制查询结果
SELECTDISTINCTclass_idFROMstudentORDERBYclass_idASC
/*排除重复记录的显示并按照升序排列显示结果*/
5、对查询结果排序
SELECTstudent_id,student_name,class_idFROMstudentORDERBYclass_idDESC,student_nameASC
6、多表查询
(1)视图
usexiubo
createviewxiubo_view1
as
select*
fromstudent
wheresex=1
createviewxiubo_view2
createviewxiubo_view3
fromxiubo_view1
whereclass_id='
(2)视图的更名
sp_renamexiubo_view2,xiubo_view4
(3)修改视图
alterviewxiubo_view4
as
wheresex=0
(4)删除视图
dropviewxiubo_view4
(5)从视图中查找
andclass_id='
992’
(6)向视图中插入数据
insertintoxiubo_view1
992009'
赵国'
1984-3-2'
【实验心得】
此次实验学会了数据库的创建、修改、删除、查询基本操作,以及在数据库中创建表并管理表,学会了视图的建立、查询等操作,从中了解到基本表与视图的区别。
结合老师上课讲的内容,再在计算机上操作一遍,加强掌握了所学的数据库知识,为以后更深入的去学习数据库奠定了基础。