~1~数据库原理与应用实验报告专业:班级:学号:姓名:浙江传媒学院电子信息学院2014-2~2~实验1SQLServer2000使用一、实验目的1、熟悉SQLServer2000工具的各项功能和组件。2、掌握使用企业管理器创建与管理数据库。3、掌握使用企业管理器进行数据表的创建与管理。二、实验环境已安装SQLServer2000的计算机,使用企业管理器进行实验。三、实验内容及步骤1、根据软、硬件环境的要求,安装SQLServer2000。2、通过“开始”→MicrosoftSQLServer→“服务管理器”,打开“SQLServer服务管理器”窗口,选择SQLServer服务。并且通过该窗口“启动”和“停止”SQLServer服务。3、通过“开始”→MicrosoftSQLServer→“企业管理器”打开企业管理器窗口,展开服务器“(LOCAL)(WindowsNT)”。4、利用企业管理器访问系统自带的pubs数据库。(1)在企业管理器的树形目录中展开“数据库”,找到pubs数据库并展开,查看该数据库的所有对象,如表、视图、存储过程、默认和规则等。(2)选择pubs数据库的“表”选项,在右窗口中将列出pubs数据库的所有表(包括系统表和用户表),选择用户表titles,右击鼠标,弹出快捷菜单,从中选择“打开表”→“返回所有行”菜单项,打开titles表,查看其内容。5、利用查询分析器访问pubs数据库的表。(1)通过“开始”→MicrosoftSQLServer→“查询分析器”方式运行SQLServer查询分析器,或者在企业管理器中,选择“工具”→“SQL查询分析器”菜单项,运行SQLServer查询分析器。(2)在查询分析器窗口中,选择“查询”→“更改数据库…”菜单项,或者单击常用工具栏中的“更改数据库”下拉按钮,选择所要操作的pubs数据库。(3)在查询分析器的编辑窗口中,输入以下代码:SELECTtype,avg(price)FROMtitlesWHEREroyalty=10GROUPBYtype~3~(4)选择查询分析器的“查询”→“分析”菜单项,或者单击常用工具栏上“分析查询”按钮,查询分析器将对输入的代码进行语法分析,并由消息窗格给出分析结果报告。(5)选择查询分析器的“查询”→“执行”菜单项,或者单击常用工具栏上“执行查询”按钮,SQLServer将编译窗口中的代码,并在结果窗格中显示查询结果,如图1-1所示。图1-1查询结果6、新建数据库(1)通过“开始”→MicrosoftSQLServer→“企业管理器”打开企业管理器窗口,右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb(注意此时不要按确定)。在“数据文件”选项卡中点击,更改数据文件的位置为“D:\Myfile”。在“事务日志”选修卡中点击,更改日志文件的位置为“D:\Myfile”。(预先在电脑D盘新建文件夹Myfile)。然后点击“确定”。(2)设置数据库属性。右击所要设置属性的数据库,从弹出的快捷菜单中选择“属性”,可点击相应的选项卡修改相关属性。7、使用企业管理器在Studentsdb数据库中定义3个表。点击studentsdb数据库展开,右击表,然后选择“新建表”,根据以下各表内容创建Studentsdb数据库中的三张表。(1)学生基本情况表student(学号,姓名,性别,出生日期,家庭住址,备注),详细结构如表1-1所示。表1-1student表结构(2)课程信息表course(课程编号,课程名称,学分),详细结构如表1-2所示。~4~表1-2course表结构(3)学生成绩表grade(学号,课程编号,分数),详细表结构如表1-3所示。表1-3grade表结构(4)在企业管理器中,将student表的学号列设置为主键,非空。选中student表,右击,选择设计表,右击学号,选择“设置主键”。(5)在企业管理器中,将course表的课程编号设置为主键,非空。(6)在企业管理器中,将grade表的学号和课程编号设置为主键,同时选中学号和课程编号,选择“设置主键”。将学号设置为外键,参照student表。右击学号,选择关系,在属性选项卡中点击“新建”,主键表选择student,外键表选择grade,分别在下拉框中选择“学号”,然后点击“关闭”。如图1-2所示。将课程编号设置为外键,参照course表。~5~如图1-2外键设置表8、在企业管理器中为student、course、grade三个表添加数据。(1)分别右击student、course、grade表,然后选择“打开表”输入各表数据。student、course和SC表中的数据如图1-1、图1-2、图1-3所示。图1-1student的数据图1-2course的数据图1-3grade的数据~6~9、使用企业管理器查看已创建的Studentsdb数据库和3个表的内容。10、停止数据库服务器,将D:\myfile中的.mdf和.ldf两个文件拷贝至U盘中以备下一次实验使用。11、重新启动数据库服务器,在企业管理器中删除studentsdb数据库。实验思考:1、查询分析器的作用是什么?可以有几种启动查询分析器的方法?答:查询分析器的作用:对数据进行查询、定义、操纵、控制。启动查询分析器的方法:一、打开企业管理器后,选中你的数据库,在“工具”菜单里,选查询分析器即可。二、打开SQLServer管理平台(managementstudio)后,新建查询,即可输入命令。2、改变查询分析器的当前数据库,使用什么方法?答:USEDATABASE数据库名GO查询分析器工具栏选择所要的数据库就可以了。3、在企业管理器中,studentsdb数据库的student表的数据输入时,如果输入相同学号的记录将出现什么现象?怎样避免该情况的发生?答:出现学号重复记录,导致插入删除冲突。避免方式就是将student_no设为主键。~7~实验2数据库的定义和操作一、实验目的1、掌握查询编辑器的使用方法,包括创建SQL查询和SQL脚本,执行SQL语句并以表格或文本形式显示结果,或保存为报表文件输出;2、掌握用T-SQL语句创建数据表、修改表结构3.掌握用T-SQL语句向数据库中输入数据、修改数据、删除数据二、实验环境已安装SQLServer2000的计算机,使用查询分析器进行实验。三、实验内容及步骤1、附加数据库将上一次备份到U盘的包含studentsdb.mdf和studentsdb_log.mdf的文件夹myfile拷入D盘中。通过附加数据库,可以将没有加入SQLServer服务器的数据库文件加到服务器中。通过“开始”→MicrosoftSQLServer→“企业管理器”打开企业管理器窗口,右击“数据库”,选择“附加”命令,打开“附加数据库”窗口。单击“添加”按钮,选择D盘myfile中的studentsdb.mdf,并单击“确定”按钮,回到“附加数据库”窗口,再单击“确定”按钮,即可完成附加数据库的工作。2、启动“查询分析器”。3、使用SQL语句创建、修改表(1)使用CREATETABLE在studentsdb数据库中创建系表Dept。Dept表说明数据类型约束系号系名整数字符串,长度为20主键非空SQL语句:createtableDept(DeptNointprimarykey,DeptNamechar(20)notnull)~8~(2)使用CREATETABLE在studentsdb数据库中创建教师表Teacher。Teacher表列名数据类型约束教师编号教师名系号整数字符串,长度为8整数主键非空外键,引用Dept表SQL语句:createtableTeacher(TeacherNointprimarykey,TeacherNamechar(8)notnull,DeptNointforeignkeyreferencesDept(DeptNo))(3)使用SQL语句ALTERTABLE修改course表的“课程编号”列,使之为非空。altertablecoursealtercolumn课程编号char(4)notnull(4)使用SQL语句ALTERTABLE修改grade表的“分数”列,使其数据类型为real。altertablegradealtercolumn分数int(5)使用SQL语句ALTERTABLE在Student表中加入属性系号(INT型),设置为外键,引用Dept表。altertablestudentadd系号intforeignkeyreferencesDept(DeptNo)(6)使用SQL语句ALTERTABLE在course表中增加属性先修课(数据类型为char(4))和任课教师(引用Teacher表)。altertablecourseadd先修课char(4)altertablecourseadd任课老师intforeignkeyreferencesTeacher4、采用SQL语句INSERTINTO…VALUES向studentsdb数据库中的数据表~9~插入数据。(1)向grade表中插入以下数据:学号课程编号分数00040001800005000290insertintograde(学号,课程编号,分数)values('0004','0001','80')insertintograde(学号,课程编号,分数)values('0005','0002','90')(2)向Dept表中插入下列数据:系号系名10计算机科学与技术20信息insertintoDept(DeptNo,DeptName)values('10','计算机科学与技术')insertintoDept(DeptNo,DeptName)values('20','信息')(3)向Teacher表中插入下列数据教师编号教师名系号101张星10102李珊10103赵天应10104刘田20insertintoTeacher(TeacherNo,TeacherName,DeptNo)values('101','张星','10')insertintoTeacher(TeacherNo,TeacherName,DeptNo)values('102','李珊','10')insertintoTeacher(TeacherNo,TeacherName,DeptNo)values('103','赵天应','10')insertintoTeacher(TeacherNo,TeacherName,DeptNo)values('104','刘田','20')5、采用SQL语句UPDATE对studentsdb数据库中修改数据表的数据(1)将0005号学生的出生日期改为2000-8-1。updatestudentset出生日期='2000-8-1'where学号='0005'(2)将成绩在60分以下的学生的成绩置零。updategrade~10~set分数='0'where分数60(3)将grade表中刘卫平同学的课程编号为“0004”的记录的分数修改为90分。updategradeset分数='90'where课程编号='0004'and学号=(select学号fromstudentwhere姓名='刘卫平')(4)将course表中的“英语”课程的任课教师为张星老师。updatecourseset任课老师=(selectTeacherNofromTeacherwhereTeacherName='张星')where课程名称='英语'(5)将张星老师“英语”课程的学生成绩全部加2分updategradeset分数=分数+2where课程编号=(select课程编号fromcoursewhere任课老师=(selectTeacherNofromTeacherwhereTeacherName='张星')and课程名称='英语')6、采用SQL语句DELETE删除