4070129+wangjing数据库报告.docx
- 文档编号:29415111
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:23
- 大小:803.34KB
4070129+wangjing数据库报告.docx
《4070129+wangjing数据库报告.docx》由会员分享,可在线阅读,更多相关《4070129+wangjing数据库报告.docx(23页珍藏版)》请在冰豆网上搜索。
4070129+wangjing数据库报告
【实验编号】实验一
【实验名称】创建修改及删除数据库
【实验步骤】
1、正确建立与服务器的连接
首先查看应用服务器是否已经启动:
开始菜单—〉程序—〉sqlserver—〉服务管理器,如下图:
开始菜单—〉程序—〉sqlserver—〉查询分析器,对话框选择以windows用户或sqlserver用户登录,如下图:
注意:
如果安装时选择以windows用户登录,在此应该也选择此项,如果安装时候选择混合模式登录,可以任意选择windows用户或sqlserver用户登录(以系统默认用户sa登录,密码选择安装时输入的或为空)
2、在查询分析器中建立数据库
createdatabasestu
onprimary(name=stu_data,/*primary:
表示此数据库文件为最主要件,扩展名为.mdf,每个数据库中唯一*/
filename='d:
\4070129\stu_data.mdf',/*‘’:
此处符号均为半角输入符号*/
/*filename:
用以指明数据库文件的
具体物理位置及名称*/
size=10,/*size:
文件的初始大小*/
maxsize=50,/*maxsize:
文件的最大长度,如果此处为unlimited,表示文件可以无大小限制,直到增长至整个磁盘大小*/
filegrowth=5),/*filegrowth:
文件的增长量*/
(name=stu1_data,
filename='d:
\4070129\stu1_data.mdf',
size=20)
logon(name=stu_log,/*log:
日志文件,其建立方式同数据库文件,扩展名为.ldf*/
filename='d:
\4070129\stu_log.ldf',
size=10,
maxsize=50,
filegrowth=5),
(name=stu1_log,
filename='d:
\4070129\stu1_log.ldf',
size=5,
maxsize=20,
filegrowth=2)
如下图所示,为实验结果:
下图为在D盘建立的文件夹4070129中的文件,如图所示:
3.、使用查询分析器修改数据库
alterdatabasestu/*alter:
用于修改数据库或表文件*/
modifyname=stud/*modifyname:
修改数据库名*/
alterdatabasestud
addfile(name=stud_data,/*addfile:
增加数据库中的次要文件,扩展名为.ndf*/
filename='d:
\4070129\stud_data.ndf',/*建立方式同建立主要文件*/
size=5,
maxsize=20),
(name=stud1_data,
filename='d:
\4070129\stud1_data.ndf',
size=5,
maxsize=20)
alterdatabasestud
addlogfile(name=stud_log,/*addlogfile:
增加日志文件*/
filename='d:
\4070129\stud_log.ldf',
size=5,
maxsize=20),
(name=stud1_log,
filename='d:
\4070129\stud1_log.ldf',
size=5,
maxsize=20)
alterdatabasestud
modifyfile(name=stud_data,/*modifyfile:
修改数据库文件的基本属性*/
size=30,
maxsize=50)
下图为在D盘建立的文件夹4070129在修改数据库后的文件,如图所示:
4、显示或修改数据库文件的结构及各项属性
①Sp_helpdb[数据库名]:
如果后面不接具体数据库名称,会给出当前所有服务器所管理的系统及用户数据库;给出具体名称则显示具体数据库的文件组成
Sp_helpdbstud结果如下图所示:
②ExecSp_dboption[数据库名][数据库选项][值]:
可以修改数据库的具体属性,属性可从企业管理器设置或查询
execsp_dboption'stud','readonly','false'/*设置数据库是否为只读属性*/
execsp_dboption'stud','dbouseonly','true'/*设置数据库管理员访问权限*/
③Sp_renamedb旧数据库名,新数据库名:
当需要修改数据库名称时,数据库不可为只读属性,并且改名时数据库不可访问
sp_renamedbstud,stu
④Usemaster/*use[数据库名]:
激活数据库*/
Go
⑤Dropdatabase[数据库名]:
当数据库使用时不可以删除,因此使用use命令使当前激活数据库转移到master数据库之后删除。
Dropdatabasestud
【实验编号】实验二
【实验名称】创建并管理表
【实验步骤】
1、创建数据库中的表
usestu/*使用当前新建数据库*/
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,
sexbitnotnull,
birthsmalldatetimenotnull,
class_idchar(6)notnullreferencesclass(class_id),
class_iddchar(6)notnullconstraintfkClassidforeignkeyreferencesclass(class_id),
ntrance_datesmalldatetimenotnull)
/*constraint约束名(fkclassid)foreignkeyreferences表名class列名:
以class_id列作为本表的外键,其引用值从表class中的class_id列获取。
*/结果如图所示:
altertablestudent
addconstraintfkclassidforeignkey(class_id)referencesclass(class_id)
/*将两个表的对应列设为主-外键*/结果如图所示:
2、显示及修改表的结构
sp_helpclass/*Sp_help[表名]:
显示表的结构*/结果如图所示:
altertablestudent_course/*altertable[表名]:
修改表结构,添加列*/
addcus_amountfloatnull,/*add[列名1属性,列名2属性,列名3属性,…]*/
cus_idtinyintnull,
cus_namechar(8)null,/*课程名无法给出默认值,插入时不能用notnull*/
cus_datesmalldatenull
altertablestudent_course
dropcolumncus_amount,/*dropcolumn[列名1,列名2,列名3,…]:
从表中删除某几列*/
cus_date,cus_id
3、删除表droptablestudent_course/*droptable[表名]:
删除数据表*/
4、添加表的约束完整性
①altertablestudent/*addconstraint约束名default‘常量表达式’for字段名:
*/
addconstraintdefSexdefault1forsex/*为表student的sex字段添加默认值约束*/
②还可以在创建表的同时规定默认值约束
createtablestudent(sexbitconstraintdefSexdefault0)
列名数据类型CONSTRAINT约束名default常数/表达式
③addconstraint约束名check(具体规则):
为已存在的表列添加检查约束
altertablestudent_course
addconstraintchkGradecheck(grade>0andgrade<100)
altertablestudent
addconstraintchkEntrcheck(ntrance_date altertablestudent addconstraintchkBirthcheck(birth 获取当前系统时间*/ ④addconstraint约束名primarykey(列名): 在指定表的选定字段上设置主键约束 altertablestudentaddconstraintpkStudent_idprimarykey(student_id) altertableclassaddconstraintpkClass_idprimarykey(class_id) ⑤为选定表的多个选定列设置联合主键约束,也可在企业管理器中使用ctrl键+鼠标选择同时指定多个列设置 altertablestudent_course addconstraintpkStu_Couprimarykey(student_id,course_id) ⑥addconstraint约束名unique(列名): 为选定列指定唯一性约束 altertablecourse addconstraintunCousunique(course_name) altertablestudent addconstraintunStuunique(student_name) ⑦createrule规则名as条件表达式: 条件表达式中的变量必须以@开头,可以是任何符合where子句语法规则的表达式。 要引用条件表达式必须借助于insert或update数据更新语句加入表的值。 createrulegrade_ruleas@grade>=0and@grade<=100 ⑧sp_bindrule规则名,'表名.列名': 将规则绑定到指定列上,注意每个指定列只能绑定一条规则,如果在已经绑定过规则的列上重复绑定另一规则,新规则将代替旧规则起作用。 sp_bindrulegrade_rule,'student_course.grade' ⑨sp_unbindrule'表名.列名': 解除对指定列的规则绑定 sp_unbindrule'student_course.grade' ⑩droprule规则名: 删除已经存在的规则 droprulegrade_rule 【实验编号】实验三 【实验名称】数据更新 【实验步骤】 1、向表中插入记录 1使用INSERTINTO表名VALUES(符合数据类型的表项值) insertstudentvalues('992002','王洪','0','1984-2-1','992','2002-9-1') insertstudentvalues('992003','李华','1','1984-11-3','992','2002-9-1') insertstudentvalues('992004','孙伟','1','1984-7-4','992','2002-9-1') insertstudentvalues('992005','林菲','0','1984-4-7','992','2002-9-1') 结果如图所示: ②使用SELECT列名1,列名2,…INTO新表名FROM条件通过从已存在的表中提取数据建立新表 selectstudent_id,student_name,sex,birth,class_id,ntrance_date intostudent1 fromstudent 结果如图所示,建立了student1表: ③使用INSERTINTO表名1SELECT列名1,列名2,…FROM表名2WHERE条件从现有表中拷贝数据到另一个表 insertintostudent1 selectstudent_id,student_name,sex,birth,class_id,ntrance_date fromstudent 结果如图所示: 2、修改表中的记录 使用UPDATE表名SET列名=值,列名=值,…WHERE条件表达式(用于指定行) updatestudent setsex=1 wherestudent_id='992002' updatestudent setbirth='1985-1-12' wherestudent_name='李华' updatestudent setstudent_name='林非',sex=1,birth=1984-7-21 wherestudent_id='992005' 结果如图所示: 3、删除表中的记录 ①使用DELETEFROM表名WHERE条件删除指定的表中记录 deletestudent1 wherestudent_id='992004' ②使用DELETE表名或TRUNCATETABLE表名清空选定表中的所有记录。 区别在于后者的速度更快,而且不解除相关起作用的触发器。 与DROP命令的区别在于前者只清空表中记录,不涉及表的结构,完成后表仍然存在,只是变成空白表,而后者是清除记录连同表结构在内的所有表的相关信息,作用完成后表不存在。 deletestudent1 truncatetablestudent1 结果如图所示: 4、修改列的名称 ①对于尚未输入数据记录的空白表,可以通过下面语句修改列的名称 execsp_rename'表名.旧列名','新列名' execsp_rename'student1.ntrance_date','entrance_date' 结果如图所示: ②对非空白表推荐以下通过列复制的过程修改列名: 过程为新建列—〉属性及约束及数据记录从现有列中拷贝—〉删除旧列,此操作可以保证不发生数据丢失或改变原有属性 altertablestudent addentrance_datesmalldatetime updatestudent setentrance_date=ntrance_date altertablestudent dropcolumnntrance_date 结果如图所示: 【实验编号】实验四 【实验名称】数据查询 【实验步骤】 ①查看表中所有已经输入的数据记录: 使用SELECT*FROM表名WHERE条件查看符合条件的表记录 select*fromstudent/*查看表中所有记录情况*/ 结果如图所示: 2查询指定表中的某几个字段: select字段名1,字段名2,…from表名 selectstudent_id,student_name fromstudent 结果如图所示: 3查询时使用标题信息更改列标题的显示 select字段名1as标题信息1,字段名2as标题信息2,字段名3as标题信息3from表名 selectstudent_idas学号,student_nameas学生姓名,class_idas班级号 fromstudent 结果如图所示: 4查询条件WHERE子句 select*fromstudent whereclass_idin('990','992') 结果如图所示: select*fromstudent whereclass_idbetween'990'and'992' 实验结果如图所示: select*fromstudent wherestudent_namelike('__非') 实验结果如下图所示: select*fromstudentwherestudent_namelike('%非') 实验结果如下图所示: select*fromstudentwherestudent_namelike('_虹%')orstudent_namelike('_洪%') 实验结果如下图所示: select*fromstudentwherestudent_namenotlike('_虹%')andstudent_namelike('_洪%') 实验结果如下图所示: 注意通配符的使用: ‘_’: 表示替代单个字符 ‘%’: 表示替代多个字符 ‘[]’: 表示属于一定范围内的值 ‘[^]’: 表示不属于一定范围内的值,与上者相反 5限制查询结果 SELECTDISTINCTclass_idFROMstudentORDERBYclass_idASC 排除重复记录的显示并按照升序排列显示结果,实验结果如图所示: 6对查询结果排序 SELECTstudent_id,student_name,class_idFROMstudentORDERBYclass_idDESC,student_nameASC/*DESC: 降序ASC: 升序*/ 实验结果如图所示: 7多表查询 1、视图 usestugo createviewstud_view1asselect*fromstudentwheresex=1 实验结果如图所示: createviewstud_view2asselect*fromstudentwheresex=1 实验结果如图所示: createviewstud_view3 as select*fromstud_view1 whereclass_id='992' 实验结果如图所示: 2、视图的更名 sp_renamestud_view2,stud_view4 实验结果如图所示: 3、修改视图 alterviewstud_view4 as select*fromstudent wheresex=0 实验结果如图所示: 4、删除视图 dropviewstud_view4实验结果如图所示: 5、从视图中查找 select*fromstud_view1wherestudent_name='孙伟'andclass_id='992'实验结果如图所示: 6、向视图中插入数据 insertintostud_view1values('992009','赵国','1','1984-3-2','992','2002-9-1') 实验结果如图所示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4070129 wangjing 数据库 报告