SQL_Server_2000.doc_第1页
SQL_Server_2000.doc_第2页
SQL_Server_2000.doc_第3页
SQL_Server_2000.doc_第4页
SQL_Server_2000.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统概论(第四版)学期实验总结与心得体会 学号: 姓名: 班级: 教师: 【实验编号】实验一【实验名称】数据库的创建【实验内容】1、新建SQL注册表。2、新建数据库。主数据文件:逻辑文件名为Student_data,物理文件名为Student.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件:逻辑名称为Student_log,物理文件名为Student.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB3、修改已注册的SQL Server属性为使用SQL server身份验证。【实验编号】实验二【实验名称】数据库的附加、分离、导入导出及分离【实验内容】1. 数据库文件的附加与分离2. 数据库文件的导入和导出3.数据库的删除 4.修改数据库 【实验编号】实验三【实验名称】数据库的创建(书中作业)【实验内容】1. 在数据库STUDENT中创建一个学生基本信息表1用企业管理其创建表2用查询分析器创建表2SQL Server 2005的系统数据类型分为哪几类?常用的数据类型有哪些?答:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间。常用的数据类型有:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间3在数据库STUDENT中创建一个名为t_couse(课程信息表) 1用企业管理其创建t_course表2用查询分析器创建t_course 4.在数据库STUDENT中创建一个名为t_score(学生成绩)的表 5.SQL Server 2005 中有多少种约束?其作用分别是什么答:非空约束,作用指定某一列不允许空值有助于维护数据的完整性,因为这样可以确保行中的列永远保护数据。 主键约束,作用可以保证实体的完整性,是最重要的一种约束。唯一约束,作用指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值。检查约束,作用对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性。默认约束,作用指定在插入操作中如果没有提供输入值。怎系统自动指定值。外键约束,作用主要用来维护两个表之间数据的一致性。6分别为t_course表和t_score表创建唯一性约束、检查约束、默认约束。 7给t_course表增加一个memo(备注)字段,类型为varchar(200) 8.使用两种方法实现上面建立的两个数据表 1使用企业管理器删除表 2使用分析查询器删除表 9如何查看数据表的相关信息 答:右键点击相关的表,左键点击其属性可以查看数据表的相关信息 【实验编号】实验四【实验名称】数据库完整性实验及索引、视图的创建【实验内容】1、创建及删除索引在学生表Sno列上建唯一(非聚簇)索引,所有记录按Sno值升序排放。 Create unique index idx on SC(Sno)验证索引已被创建:删除索引:drop index idx;2、创建视图创建所有女同学的视图并查询a) 企业管理器中创建过程:右击【视图】,选择【新建视图】命令在弹出的【添加表】选择Student表 选择Sno,Sname,Sbirthday,Ssex,Dno列。并且设Ssex=女。单击保存,并且命名为vwStudent。b) 截图如下: c) 查询分析器中命令创建视图:Create view vwStudentAsSelect Sno,Sname,Sbirthday,Ssex,DnoFrom StudentWhere Ssxe=女;【实验编号】实验五【实验名称】数据库的备份、还原、存储过程和触发器的创建备份:还原: 运行结果:更新前:更新后:【实验内容】1、 对student数据库备份、还原备份:backup database student to disk=d:wwenc.bak with init go还原:restore database student from disk=d:wwenc.bak go2、 存储过程的创建 use student go create proc proc_sex sex char(2) as select xb,人数=count(*) from xs group by xb having xb=sex3、 触发器的创建与验证创建语句: use student go create trigger tri_update on xs instead of update as print禁止修改xs表中的数据 sp_helptrigger xs go验证语句: use student go update xs set xh=xh+1【实验编号】实验六【实验名称】数据库实验的总结与心得体会【实验心得】经过一个学期的SQL Server 2000课程的学习,老师在课堂上耐心、细致的讲解,以及内容详细、层次鲜明、易于记忆和理解的教学课件,让我了解了SQL Server 2000的基础知识,学会了创建数据库以及对数据库操作的一些基本应用,现就所学到知识作出以下的学习心得总结:SQL Server 是一个关系数据库管理系统,SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 SQL Server 2000 的特性包括: 1.Internet 集成:SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能。 2.可伸缩性和可用性:同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows® 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。 3.企业级数据库功能:SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。 4.易于安装、部署和使用: SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。 SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据。 数据库的内容是从数据表的创建和修改开始的,数据表的建立关系数据库的基本结构,它用来存储数据具有已定义的属性,在数据表的操作中有:查看表的信息、查看表的属性、修改表当中的数据、删除表当中的数据以及修改、删除表的操作,从课程的学习和实验当中我了解到,表是数据库数据当中最重要的一个数据对象,表建立的好坏直接关系到数据库的实际使用效果,表当中的内容越具体对表越有利,同时对数据库的各种应用也有着各种各样的便利,但是表的内容也不能过于的繁琐,当然,这些也只能在今后的实际使用当中多多的应用,才能加深和理解如何对表进行规划才更有利于使用和查询。在数据库中,数据内容的查询可以使用查询语句的方法查询,也可以使用视图操作的方法进行查询,使用视图操作的方法不仅可以简化数据操作,同时还可以检索数据,在查询时还能向基表当中添加、修改和删除数据,能有效的提高数据库可用性和安全性。 SQL Server 2000的学习是在老师的悉心教导和上机实验实践当中度过的,经过短暂的学习,让我学会了很多知识,对于我今后的人生和工作有很多有用有帮助的地方,感谢老师的教导,让我又多掌握了一项专业的技术,我会在今后更加努力的学习这方面的专业技术知识,勤于实践、不断提高,以适应时代的发展,更好的把握未来。 学生签名: 日期:2010年12月31日 实验一1 在企业管理器中创建一个名称为school的数据库,并设置数据库主文件名为school_data,大小为10MB,最大尺寸为无限大,增长速度为20%;日志文件名为school_log,大小为2MB,最大尺寸为5MB,增长速度为1MB。2 将数据库school的日志文件缩小为3MB。3 在school数据库中建立如下4个表:学生表student,其结构为:sno char(5),sname char(8),ssex char(2),sbirthday datetime,class char(5)。其中sno为主码,然后在school表中输入记录。教师表 teacher,其结构为:tno char(5),tname char(8),tsex char(2),tbirthday datetime,prof char(10),depart char(10)。其中tno为主码,然后在teacher表中输入记录。课程表 course,其结构为:cno char(10),canme char(16),tno char(5)。其中cno为主码,然后在course表中输入记录。学习表sc,其结构为sno char(5), cno char(10),degree int。其中(sno,cno)为主码,然后在sc表中输入记录。4. 建立student、teacher、course、sc四个表之间的关系。5. 用create database语句创建school数据库;用create table语句建立student、teacher、course、sc四个表结构。实验二在school数据库上用SQL语句完成下列操作:1 显示所有学生姓名、年龄。SELECT sname,year(getdate()-year(sbirthday) AS 年龄FROM student2 显示有不及格成绩的课程号,并去掉重复的元组。 SELECT DISTINCT oFROM scoreWHERE degree=52. 查询选修了操作系统课程的学生的sno、cname和degree列。 select sno,cname,degreefrom course,scorewhere o=o and cname=操作系统;3. 查询和学号为105的学生同年出生的所有学生的sno、sname和sbirthday列。 select sno,sname,year(sbirthday) as 出生年份from studentwhere year(sbirthday)=(select year(sbirthday) from student where sno=105 )4. 查询“张旭”教师任课的学生成绩,并按成绩递减排列。 select tname,cname,degreefrom score,teacher,coursewhere tname=张旭order by degree desc5查询选修某课程的学生人数多于5人的教师姓名。 select tnamefrom teacher where tno in( select x.tno from course x,score y where o=o group by x.tno having count(x.tno)5 )6统计每门课程的平均成绩,并将其中平均成绩超过80分的输出。 select avg(degree) as 平均成绩from course,scorewhere o=o group by ohaving avg(degree)807显示平均成绩高于95031班平均成绩的班号和平均成绩。 select class,avg(degree) as 平均成绩from student,scoregroup by classhaving avg(degree)(select avg(degree) from student,score where class=950318显示所有职工的职工号、姓名和部门类型,其中计算机系和电子工程系属信息部,水利电力系属工学部。 SELECT tname AS 姓名,depart AS 系别, CASE depart WHEN 计算机系 THEN 信息部 WHEN 电子工程系 THEN 信息部 WHEN 水利电力系 THEN 工学部 END AS 部门类型FROM teacher实验四在school数据库上用SQL语句完成下列操作:1显示选修了课程的学生的所有个人及选课信息,未选课的学生只显示其个人信息。 select student.*,score.*from student left join score on(student.sno=score.sno)2查询选修了全部课程的学生学号和姓名。 select student.sno,student.snamefrom student ,score where student.sno=score.sno3. 向表student中插入一数据行,该行包含所有列的值。 insert into student values(112,陈金林,男,1990-03-26,95035)5. 将学生刘红的学号修改为202,班级修改为96032。update studentset sno=202,class=96032where sname=刘红 /*注意参照完整性6. 将选修了操作系统课程的成绩提高5%。 update scoreset degree=degree*1.05where cno=(select cno from course where cname=操作系统)6. 学生“李军”在数字电路课程考试中作弊,该课成绩应作零分计。update scoreset degree=0where sno=(select sno from student where sname=李军 ) and cno=(select cno from course where cname=数字电路)7. 删除选修了王萍教师课程的选课记录。 deletefrom coursewhere tno=(select tno from teacher where tname=王萍)实验五在school数据库上用SQL语句完成下列操作:1若存在职工号为810的职工,则显示其工作部门名称,否则显示相应提示信息。if (select tno from teacher where tno=810)=810 begin select depart from teacher where tno=810 end else begin print 该职工不存在 end3 求出男女学生的平均成绩,若男学生平均成绩高出女学生平均成绩50%,则显示“男学生工比女学生的成绩高多了”的信息,若男学生平均成绩与女学生平均成绩比率在1.50.8之间,则显示“男学生跟女学生的成绩差不多”的信息,否则,显示“女学生比男学生的成绩高多了”的信息。 declare boy float,girl float,rate int set rate=boy/girl select boy=avg(degree) from score,student where ssex=男 and score.sno=student.sno select girl=avg(degree) from score,student where ssex=女 and score.sno=student.sno if rate1.5 begin print 男学生工比女学生的成绩高多了 endelse if (rate)=0.8 begin print 男学生跟女学生的成绩差不多 endelse begin print 女学生比男学生的成绩高多了 end实验六在school数据库上用SQL语句完成下列操作:1按性别和部门名的所有组合方式列出相应的平均成绩。 use school select ssex,depart,avg(degree) as 平均成绩 from score,teacher,course,student where student.sno=score.sno and o=o group by student.ssex,teacher.depart with cube -或者是cube -cube 汇总按所有列的信息 -rollup 汇总按第一列的信息2显示平均成绩低于所有学生平均成绩的学生的学号和姓名。 select student.sno,sname,avg(degree) as 平均成绩 from score,student where student.sno=score.sno group by student.sno,sname having avg(degree)=all( select avg(degree) from score group by sno )4采用游标方式实现2的功能。 答案见第五题补:平均成绩最高的学生的学号和姓名,创建一个新表,并将结果插入到此表中,然后用max()函数求出平均成绩最高的学生的平均成绩 use schoolcreate table avgs(sno numeric(6) ,average real,primary key(sno);insert into avgs(sno,average)select sno,avg(degree)from scoregroup by snoselect max(average) as 最高分from avgs 5采用游标方式实现3的功能。use schoolgo-声明变量DECLARE s_no int,s_name char(8),s_avg float declare st_cursor cursorfor select student.sno,sname,avg(degree) as 平均成绩from score,studentwhere student.sno=score.snogroup by student.sno,snamehaving avg(degree)=all( select avg(degree) from score group by sno )OPEN st_cursor-提取第一行数据FETCH NEXT FROM st_cursor INTO s_no,s_name,s_avg-打印表标题PRINT 学号 姓名 平均分PRINT -WHILE FETCH_STATUS = 0 -报告上一个FETCH语句的执行状态,若为0,执行成功BEGIN -打印一行数据 PRINT CAST(s_no AS char(8)+s_name+ +CAST(s_avg AS char(5) -提取下一行数据 FETCH NEXT FROM st_cursor INTO s_no,s_name,s_avgEND-关闭游标CLOSE st_cursor-释放游标DEALLOCATE st_cursorGO实验七在school数据库上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论