实验报告2012-2013学年第2学期科目名称:数据库管理指导老师:***班级:信息管理112班学号:*********** *名:**湖南工业大学财经学院【实验名称】:熟悉SQL Server 2000常用工具的使用【实验日期】:2013年5月6日【实验目的】:1.熟悉SQL Server 2000服务管理器的启动方法。
2.熟悉SQL Server 2000常用工具的使用。
【实验内容及要求】:1.练习SQL Server 2000服务器的启动方式。
2.打开企业管理器,观察企业管理器的各个组成部分,练习有关的操作。
3.打开查询分析器,观察查询分析器的组成部分,练习有关的操作。
4.练习SQL Server 2000的联机丛书的使用,并使用联机丛书学习自己感兴趣的知识。
5.在企业管理器中新建SQL Server注册。
6.练习SQL Server 2000的数据导入/导出操作。
7.练习使用企业管理器进行“新建数据库”、“附加数据库”等操作。
【实验步骤】:SQL Server 2000的启动方法:1左键单击开始菜单,从菜单里找到SQL Server2000,双击左键,从子菜单里找到服务管理器,启动服务管理器。
2从开始菜单里启动服务管理器,如上图所示。
实验二:查询分析器的启动方法:1在程序菜单中选择Microsoft SQL Server2再选中查询分析器,如上图3点击查询分析器后,出现连接到SQL Server窗口:4如下图5如下图:实验三:新建数据库表格:实验四:数据库数据的导入导出:(1)注册远程SQL服务器到本地(2)执行数据的导入导出功能一。
打开企业管理器 (Enterprise Manager) 工具二。
将一个远程sql服务器注册到本地管理。
新建一个SQL server注册三。
四。
五。
六。
七。
八。
九。
十。
(2)数据的导入导出功能一。
导入数据,意指将从本地库里把数据导进入到指定的库里。
导出数据,意指将指定的库里的数据导出到本地的库里二。
选者一个数据库源,意指从何处复制数据到新的库里三。
指定一个目的库,意指将数据导入哪里去。
四。
五。
六。
七。
八。
九。
【自己的体会和收获】:1、SQL Server 2000可以作为Internet或内部网服务器的后端数据库,它与Web服务器协作,为Web服务器和浏览器提供信息。
SQL Server 2000通过Web站点共享数据,它可以发布Web网页和接收电子邮件,使用Web浏览器可以直接访问SQL Server 2000数据库的数据,且易于学习和使用。
2、分析管理器的应用中发现:提供用户界面以访问分析服务器及其元数据知识库的控制台应用程序。
实现:管理分析服务器,锁定被编辑的对象和它们的从属对象;创建数据库和指定数据源;生成并处理多维数据集;创建并处理数据挖掘模型;指定存储选项并优化查询性能;管理安全性;浏览数据源、共享维度、安全角色和其它对象。
3企业管理器的应用中体会到:企业管理器窗口的左边是以树形结构组织的管理对象,右边称为明细窗口,其内容是是左边选中对象的详细内容。
企业管理器可以实现对管理对象的定义、改动、删除等各种操作。
【实验名称】:创建表以及简单的查询操作【实验日期】:2013年5月20日【实验目的】:1.掌握SQL Server 2000中创建表的操作过程。
2.掌握使用标准SQL创建和删除数据表。
3.掌握简单的SELECT命令的用法。
【实验内容及要求】:1.通过企业管理器UI界面和SQL命令两种方式创建表。
2.通过企业管理器UI界面和SQL命令两种方式删除表。
3.通过查询分析器进行简单的SELECT命令的测试。
a)SELECT子句的用法b)FROM子句的用法c)WHERE子句的用法d)ORDER BY子句的用法【实验步骤】:试验一、表的创建:1、选中数据库中的表文件夹,击鼠标右健。
在弹出的菜单中选择新建表。
随后输入表结构对话框。
2、在对话框中单击右键,出现一个弹出框。
字段输入完后,关闭建表对话框。
在对话框中输入表名,单击“确定”按钮。
a)SELECT子句的用法b)FROM子句的用法c)WHERE子句的用法d)ORDER BY子句的用法用以上字句进行数据的插入1)如下实验过程中的的例题:向学生表加入一条记录,其学号、姓名、性别和系别分别为:(’06011’,’王文娟’,’女’,’计算机’);2)向学生表加入一条记录,其姓名、性别和系别分别为:(’王娟’,’女’,’计算机’),观察运行结果;3)创建一个与学生信息表结构完全相同的基本表CP_Student,用以存储计算机和外国语系学生信息;(可使用SELECT。
INTO 。
FROM。
WHERE。
)4)将Student中计算机系和外国语系的学生信息插入到CP_Student;答案如下:1 insertinto studentvalues ('06011','王文娟','女',null,'计算机',null)2 服务器: 消息515,级别16,状态2,行1无法将NULL 值插入列'Sno',表'JX.dbo.Student';该列不允许空值。
INSERT 失败。
语句已终止。
3create table cp_student(sno varchar (5)not null,sname nvarchar (10) null,ssex nvarchar (2) null,sbirth smalldatetime null,sdept nvarchar (20) null,total smallint null,)'4insertinto cp_studentselect *from studentwhere sdept='计算机'or sdept='外国语'数据修改:把教师“王芳”改为“王芳龄”;1)将职称是副教授的教师工资提高2%;2)将计算机系和外国语系学生的考试成绩分别下调4%和增加2分;3)把李强同学的所有分数都加1分;4)选做题:对课程表中的学分进行修改,修改方式为:学分低于3分的加0.4分,高于3分的减去0.5分,3分的加0.2分;1 update teacherset tname='王芳龄'where tname='王芳'2 update teacherset tpay = tpay * 102 /1003 update scset grade = grade*0.96where sno in (select snofrom studentwhere sdept='计算机')update scset grade = grade+2where sno in ( select snofrom studentwhere sdept ='外国语')update scset grade = grade+1where sno in (select snofrom studentwhere sname ='李强')【自己的体会和收获】:一、(1) SELECT子句:指明目标列(字段、表达式、函数表达式、常量)。
基本表中相同的列名表示为:〈表名〉.〈列名〉(2) FROM子句:指明数据源。
表间用“,”分割。
数据源不在当前数据库中,使用“〈数据库名〉.〈表名〉”表示。
一表多用,用别名标识。
定义表别名:〈表名〉〈别名〉(3) WHERE子句:元组选择条件。
(4) GROUP BY子句:结果集分组。
当目标列中有统计函数,则统计为分组统计,否则为对整个结果集统计。
子句后带上HAVING子句表达组选择条件(带函数的表达式)。
(5) ORDER BY子句:排序。
当排序要求为ASC时升序排序;排序要求为DESC时降序排列。
【实验名称】:SELECT命令进阶【实验日期】:2013年5月27日【实验目的】:1.掌握多表连接查询的使用。
2.掌握嵌套查询的使用。
3.掌握分组统计查询的使用。
【实验内容及要求】:已知有如下关系模式S (Sno, Sname, Age, Dept) 依次表示:学号,姓名,年龄,所在系C (Cno, Cname, Ch, Pcno) 依次表示:课程号,课程名,学分,先行课SC (Sno, Cno, Score) 依次表示:学号,课程号,成绩1.查询学号为98001的同学选修过的课程的课程号2.查询李四所有选修的课程的成绩3.查询所有存在不及格科目的同学的学号、姓名、所在系,并按所在系升序及学号升序排序。
4.查询没有选修任何课程的学生的学号和姓名5.查询所有选修了大学计算机基础这门课程的学生的学号和姓名6.查询没有选修微积分这门课程的所有学生的学号、姓名7.统计大学计算机基础这门课程的最高分8.统计所有学生的平均分9.查询选修了大学计算机基础这门课程并且其成绩低于该门课程平均成绩的所有学生的学号和姓名10.统计年龄在18岁以上(含18岁)选修了4门功课及以上的所有学生的学号和姓名【实验步骤】:1光标指着开始菜单,点击鼠标左键,进入“所有程序”菜单,从子菜单中找到查询分析器。
2点击鼠标左键,有如下视图点击确定,进入界面,在需要的表中查询。
2在界面上输入如下代码,点击“!”即可。
1.查询学号为’98001’的同学选修过的课程的课程号select cnofrom scwhere sno='98001';2查询李四所有选修的课程的成绩select scorefrom scwhere sname='李四';3查询所有存在不及格科目的同学的学号、姓名、所在系,并按所在系升序及学号升序排序。
select s.sno,sname, deptfrom s,scwhere score<60order by dept asc,s.sno asc;4查询没有选修任何课程的学生的学号和姓名select s.sno, snamefrom swhere sno not in(select distinct s.sno)from sc;5查询所有选修了’大学计算机基础’这门课程的学生的学号和姓名select sno,snamefrom swhere sno in (select snofrom scwhere cno in (select cnofrom cwhere cname='大学计算机基础'))6查询没有选修’微积分’这门课程的所有学生的学号、姓名select sno,snamefrom swhere sno in (selectsnofrom scwhere cno not in(select cnofrom cwhere cname='微积分'))7统计’大学计算机基础’这门课程的最高分select max(score)from scwhere cno in(select cnofrom cwhere cname='大学计算机基础')8统计所有学生的平均成绩select avg (score)as sco ,s.sno,snamefrom s,scwhere sc.sno=s.snogroup by s.sno,sname9查询选修了’大学计算机基础’这门课程并且其成绩低于该门课程平均成绩的所有学生的学号和姓名select s.sno,snamefrom s,sc,cwhere s.sno=sc.sno and o=o and cname='大学计算机基础' and score<60select avg(score)from scwhere cno=(select cnofrom cwhere cname='大学计算机基础')10统计年龄在18岁以上(含18岁)选修了4门功课及以上的所有学生的学号和姓名select sno,snamefrom swhere age>=18 and sno in(select snofrom scgroup by sno having count(*)>=4)【自己的体会和收获】:发现打开将SQL Server 企业管理器,查看数据库表中的相关记录时如果与测试记录预定的数据不符,执行数据输入和维护操作,使与测试记录一致。