数据库课本例题_第1页
数据库课本例题_第2页
数据库课本例题_第3页
数据库课本例题_第4页
数据库课本例题_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 创建与管理数据库1. 创建数据库student,并指定数据库的数据文件所在位置、初始容量、最大容量和文件增长量。2. 创建数据库teaching,并指定数据库的数据文件和日志文件的所在位置、初始容量、最大容量和文件增长量。3. 为student数据库增加一个日志文件。4. 修改student数据库的排序规则。5. 给student数据库添加文件组studentfgrp,再添加数据文件studentfile.ndf到文件组studentfgrp中。6. 将名为student数据库改名为STUDENTDB。7. 删除已创建的数据库student。8. 文件和文件组示例。在SQL Serve

2、r 2005实例上创建了一个数据库,该数据库包括一个主数据文件、一个用户定义文件组和一个日志文件。主数据文件在主文件组中,而用户定义文件组包含两个次要数据文件。ALTER DATABASE 语句将用户定义文件组指定为默认文件组。9. 为test01创建数据库快照。代码:例1. 例2. 例3.例4.例5.例6.例7.例8.例9.结果:例1.例2.例3.例4.例5.例6.例7.例8.例9.第三章 表和数据完整性1. 利用CREATE TABLE命令建立课程信息表course,表结构如表所示。2. 利用CREATE TABLE命令建立学生分数表score,表结构如表所示。该表中主键由两个列构成。3.

3、 利用CREATE TABLE命令建立教师信息表teacher,表结构如表所示。4. 利用CREATE TABLE命令建立班级信息表结构如表所示。5. 为了完善teaching数据库的表间联系,创建表结构如所示的纽带表teach_class。然后查看该表的有关CREATE TABLE命令脚本信息。6. 在test01数据库中创建一个新表student1,然后修改其列属性。7. 修改test01中表student1的列column_class数据类型和名称。8. 向teaching数据库中的score表中添加数据。9. 更改teaching数据库中的score表中的学号为0824113307、课

4、程号为c05127的期末成绩修改为87。10. 为数据库test01中表student1输入3行数据,然后将列st_class的值全部改为jsj1012。11. 删除数据库test01中表student1的列st_class的值为jsj1012的行。12. 在数据库test01中创建表stud,为表添加、删除列和行,再删除该表。13. 局部临时表的创建与数据输入。14. 为数据库teaching中的班级表class的列classno创建FOREIGN KEY 约束,并将其中的classname、department、monitor的“允许空”修改为NOT NULL。15. 为数据库teachi

5、ng中的成绩表score的两个列usually和final添加CHECK约束,限定其值在0100范围内。16. 为数据库teaching中的学生信息表student的列Email创建一个UNIQUE约束。17. 为数据库teaching中表score的列studentno创建一个FOREIGN KEY约束。18. 利用命令删除为数据库teaching中表score的一个约束FK_score_student1。19. 为数据库teaching创建一条规则score_rule,该规则规定凡是分数类的列值必须在0100之间。代码:例1. 例2. 例3.例4.例5.例6.例7.例8.例9.例10.例1

6、1.例12. 例13.例14.例15.例16.例17.例18.例19.实验结果:例1. 例2. 例3.例4.例5.例6.例7.例8. 例9.例10.例11.例12.例13.例14.例15.例16.例17.例18.例19.第四章 Transact-SQL语言基础1. 声明一个myvar 变量,然后将一个字符串值放在变量中,再输出myvar 变量的值。2. 显示到当前日期和时间为止试图登录SQL Server 2005的次数。3. 为前面的例子添加注释。4. 通配符与逻辑运算符LIKE举例。在数据库teaching中可以用检查约束来验证表student的列Email的值。5. 逻辑运算符IN的使用

7、方法。6. 逻辑运算符BETWEEN的使用方法。7. 输出下列函数的值CEILING(),FLOOR(),ROUND()。8. 从GETDATE函数返回的日期中提取年份、月份和天数值并输出。9. 日期和时间函数的使用示例。10. 使用 LTRIM 函数删除字符变量中的起始空格。11. 在Transact-SQL中使用IF语句。12. 用BEGIN END 语句可使IF 语句在计算结果为FALSE时跳过语句块。13. 循环控制语句WHILE的使用方法。14. 简单CASE语句举例。15. 搜索CASE语句举例。16. 利用GOTO语句求出从1加到7的总和。17. 使用WAITFOR TIME语句

8、,以便在晚上10:20:17执行存储过程 sp_help。18. 在一个过程中使用TRY.CATCH语句,先让SELECT语句产生除数为0的错误,该错误将使得CATCH块的执行。代码:例1. 例2. 例3.例4.例5.例6.例7.例8.例9.例10.例11.例12. 例13.例14.例15.例16.例17.例18.结果:例1. 例2. 例3.例4.例5.例6.例7.例8. 例9.例10.例11.例12.例13.例14.例15.例16.例17.例18.第五章 数据检索1. 查询表student中女生的相关信息。2. 列出所有course的职员课程号、课程名和学分。3. 查询表student中入学

9、成绩在780分以上的学生的学号、姓名和电话信息。4. 查询表student中入学成绩在780分以上的学生的学号、姓名、电话和班级名称信息。在FROM子句中使用AS关键字为表指派一个临时名称。5. 在score表中显示期中、期末成绩都高于85分的学生学号、课程号和成绩。6. 查询选修课称号为c05109或c06108且期末成绩大于等于85分学生的学号、课程号和成绩。7. 查询计算机学院的具有高级职称教师的教师号、姓名和从事专业。8. 利用SELECTINTO创建新表。在teaching数据库中创建一个新表学生成绩 st_score,包括学生学号、姓名、课程号和期末成绩。9. 查询数据库test0

10、1中“奖学金”表中获得奖学金的学生的学号、班级号、综合测评和班级名次情况。10. 在student表中1989年以后出生的学生的学号、姓名、入学成绩和Email。11. 在student表中显示所有姓何或姓韩的学生的姓名、生日和Email。12. 在student表中显示手机号开始3位不是131的学生姓名、电话和Email。13. 在student表中显示所有1989年或1月份出生的学生的姓名、生日和Email。14. 查询选修课程号为c05109 的学生学号和期末成绩,并且要求平时成绩在88到95之间。15. 查询选修课程号为c05103 的学生学号和总评成绩,并且要求期末成绩不在78到90

11、之间。其中,总评成绩的计算公式为: 总评成绩 = Final *0.7+ usually*0.3。 16. 查询学号分别为的0824113307、0925111109和0935222201的学生学号、课程号、平时成绩和期末成绩。17. 在student表中查询出生日期在1989年以后的学生的学号、姓名、电话和年龄。18. 在student表中查询学生的学号、姓名和入学成绩,并按照入学成绩的降序排列。19. 在student表中查询学号大于0923000000的学生的学号、姓名、电话和Email,并按照姓名的升序排序。20. 在score表中查询总评成绩大于85的学生的课程号、和总评成绩学号,并

12、先按照课程号的升序、再按照总评成绩的降序排列。21. 在st_score表中查询期末成绩中有高于85的学生的学号和姓名,并按照姓名排序。22. 从student表中查询入学成绩前5名的学生的学号、姓名、分数和电话。23. 利用SELECT 语句从student表中返回入学成绩排在前35%的学生的学号、姓名、分数和电话。24. 用GROUP BY子句对score表数据分组,显示每个学生的学号和平均总评成绩。总评成绩计算公式如下:总评成绩=usually*0.3+final*0.7。25. 统计student表中的男女学生的人数。26. 利用GROUP BY子句对score表数据分组,显示总评成绩

13、高于分的每个学生的学号和平均总评成绩。27. 查询选课在3门以上且各门课程期末成绩均高于75分的学生的学号及其总成绩,查询结果按总成绩降序列出。28. 查看student表中入学成绩在788分以上的学生的学号、出生日期和电话,且年龄最小的学生的生日。29. 分别查询student表中入学成绩在750分以上的男女学生的学号、性别、出生日期和电话,及年龄最小的男女学生的生日。30. 查询选修课程号为c05109号课程的期末最高分、最低分及之间相差的分数。31. 通过查询求09级学生的总数。32. 查询选课少于3门的学生的学号及其选课的门数。33. 查询score表中各门课程的课程号及期末平均成绩。

14、34. 查询score表中学生的期末总成绩大于280分的学生学号及总成绩。代码:例1. 例2. 例3.例4.例5.例6.例7.例8.例9.例10.例11.例12.例13.例14.例15.例16.例17.例18.例19.例20.例21.例22.例23.例24.例25.例26.例27.例28.例29.例30.例31.例32.例33.例34.结果:例1. 例2. 例3.例4.例5.例6.例7.例8.例9.例10.例11.例12.例13.例14.例15.例16.例17.例18.例19.例20.例21.例22.例23.例24.例25.例26.例27.例28.例29.例30.例31.例32.例33.例34

15、.第六章 Transact-SQL语句的高级应用1. 查询选修课程号为c05109的学生的学号、姓名和期末成绩。2. 查询选修课程号为c05103且平时成绩高于80分的学生的学号、姓名、平时成绩和期末成绩。3. 利用左外连接方式查询08级学生的学号、姓名、平时成绩和期末成绩。4. 利用右外连接方式查询教师的排课情况。5. 利用完全外连接方式查询教师的排课情况。6. 显示student 表和score表的笛卡儿积。7. 查询08级学生的学号、姓名、课程名、期末成绩及学分。8. 查询计算机学院的老师的教师号、姓名、上课班级号、课程名和学分。9. 合并结果集示例。10. 查询学号为082826136

16、7的学生的入学成绩、所有学生的平均入学成绩及该学生成绩与所有学生的平均入学成绩的差。11. 获取期末成绩中含有高于93分的学生的学号、姓名、电话和Email。获取期末成绩中含有高于93分的学生的学号、姓名、电话和Email。12. 查询选修课程的多于2门、且期末成绩均在85分以上的学生的学号、姓名、电话和Email。13. 查询期末成绩比该选修课程平均期末成绩低的学生的学号、课程号和期末成绩。14. 查询期末成绩高于85分、总评成绩高于90分的学生的学号、课程号和总评成绩。15. 创建一个表sc,将score表中学生的相关数据添加到sc表中,并要求计算总评成绩。16. 将sc表中含有总分低于8

17、0课程的所有学生总分增加5%。17. 查询student表中是否存在1990年12月12日以后出生的学生,如果存在,输出学生的学号、姓名、生日和电话。18. 使用STATIC关键字声明全局游标cEmploy。19. 使用FETCH访问游标中的记录。20. 使用游标输出teacher表。21. 使用嵌套游标生成报表输出08级每个学生的学号、各科总评成绩和电话。22. 声明游标,利用函数查看游标对teacher表进行检索的状态。23. 利用sp_cursor_list系统存储过程显示游标的属性。24. 利用BULK INSERT命令向teaching 数据库中的st_score数据表添加数据。该表

18、的结构如图所示。25. 在teaching数据库中创建expic表,然后向该表添加新的记录。26. 使用OPENROWSET命令的方法添加大容量数据。代码:例1. 例2. 例3.例4.例5.例6.例7.例8.例9.例10.例11.例12.例13.例14.例15.例16.例17.例18.例19.例20.例21.例22.例23.例24.例25.例26.结果:例1. 例2. 例3.例4.例5.例6.例7.例8.例9.例10.例11.例12.例13.例14.例15.例16.例17.例18.例19.例20.例21.例22.例23.例24.例25.例26.第七章 索引和视图1. 给出一个程序,在teach

19、ing数据库中的student表的studentname列上创建唯一索引IDX_sname。2. 给出一个程序,在teaching数据库中的student表的studentno和classno列上创建组合索引IDX_sc。3. 重新组织teaching数据库中student表上的IDX_sc索引。4. 重新生成teaching数据库中student表上的IDX_sname索引,设置填充索引,将填充因子设置为80%,设置将中间排序结果存储在tempdb中。5. 重新生成teaching数据库中test_index表上的C_studentno索引,将其修改为聚集唯一索引,并指定该索引的叶级页的填充

20、度为70%。6. 删除teaching数据库中student表上的聚集索引C_studentno和非聚集索引UC_classno。7. 给出一个程序,在student表的studentno和classno上创建一个统计组studentclass,要求对所有记录计算统计信息。8. 通过DBCC SHOW STATISTICS命令显示student表IDX_sc索引的统计信息。9. 给出一个程序,更新student表IDX_sc索引的统计信息。10. 给出一个程序,更新student表上所有索引的分布统计信息。11. 给出一个程序,在teaching数据库中创建一个名称为v_course的视图,包

21、含所有类别为“必修”的课程信息。12. 给出一个程序,在teaching数据库中创建一个名称为v_final的视图,包含学生学号、姓名、课程号、课程名和期末成绩,按学号升序排序,相同学号的记录按课程号升序排序。13. 给出一个程序,在teaching数据中创建一个名称为v_max的视图,查询每个班最高分的课程名和分数,按班级号升序排序。14. 通过v_final和v_course视图查询所有学生的学号、姓名和已修必修课的总学分。15. 给出一个程序,在teaching数据库中创建一个名称为v_course的视图,包含所有类别为“必修”的课程信息。16. 使用ALTER VIEW语句修改v_final视图,使其包含所有学生姓名、课程名和期末成绩,按姓名升序排序。17. 使用ALTER VIEW语句修改v_avg视图,将其改为加密方式,以确保视图的安全性。18. 通过视图v_course向基本表course中插入数据('c05129', '数据库编程', '必修', 64, 4)。19. 给出一个程序,在teaching数据中创建一个

温馨提示

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

评论

0/150

提交评论