您好,欢迎访问三七文档
第二章创建与管理数据库1.创建数据库student,并指定数据库的数据文件所在位置、初始容量、最大容量和文件增长量。2.创建数据库teaching,并指定数据库的数据文件和日志文件的所在位置、初始容量、最大容量和文件增长量。3.为student数据库增加一个日志文件。4.修改student数据库的排序规则。5.给student数据库添加文件组studentfgrp,再添加数据文件studentfile.ndf到文件组studentfgrp中。6.将名为student数据库改名为STUDENTDB。7.删除已创建的数据库student。8.文件和文件组示例。在SQLServer2005实例上创建了一个数据库,该数据库包括一个主数据文件、一个用户定义文件组和一个日志文件。主数据文件在主文件组中,而用户定义文件组包含两个次要数据文件。ALTERDATABASE语句将用户定义文件组指定为默认文件组。9.为test01创建数据库快照。代码:例1.例2.例3.例4.例5.例6.例7.例8.例9.结果:例1.例2.例3.例4.例5.例6.例7.例8.例9.第三章表和数据完整性1.利用CREATETABLE命令建立课程信息表course,表结构如表所示。2.利用CREATETABLE命令建立学生分数表score,表结构如表所示。该表中主键由两个列构成。3.利用CREATETABLE命令建立教师信息表teacher,表结构如表所示。4.利用CREATETABLE命令建立班级信息表结构如表所示。5.为了完善teaching数据库的表间联系,创建表结构如所示的纽带表teach_class。然后查看该表的有关CREATETABLE命令脚本信息。6.在test01数据库中创建一个新表student1,然后修改其列属性。7.修改test01中表student1的列column_class数据类型和名称。8.向teaching数据库中的score表中添加数据。9.更改teaching数据库中的score表中的学号为0824113307、课程号为c05127的期末成绩修改为87。10.为数据库test01中表student1输入3行数据,然后将列st_class的值全部改为jsj1012。11.删除数据库test01中表student1的列st_class的值为jsj1012的行。12.在数据库test01中创建表stud,为表添加、删除列和行,再删除该表。13.局部临时表的创建与数据输入。14.为数据库teaching中的班级表class的列classno创建FOREIGNKEY约束,并将其中的classname、department、monitor的“允许空”修改为NOTNULL。15.为数据库teaching中的成绩表score的两个列usually和final添加CHECK约束,限定其值在0~100范围内。16.为数据库teaching中的学生信息表student的列Email创建一个UNIQUE约束。17.为数据库teaching中表score的列studentno创建一个FOREIGNKEY约束。18.利用命令删除为数据库teaching中表score的一个约束FK_score_student1。19.为数据库teaching创建一条规则score_rule,该规则规定凡是分数类的列值必须在0~100之间。代码:例1.例2.例3.例4.例5.例6.例7.例8.例9.例10.例11.例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.显示到当前日期和时间为止试图登录SQLServer2005的次数。3.为前面的例子添加注释。4.通配符与逻辑运算符LIKE举例。在数据库teaching中可以用检查约束来验证表student的列Email的值。5.逻辑运算符IN的使用方法。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.使用WAITFORTIME语句,以便在晚上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中入学成绩在780分以上的学生的学号、姓名和电话信息。4.查询表student中入学成绩在780分以上的学生的学号、姓名、电话和班级名称信息。在FROM子句中使用AS关键字为表指派一个临时名称。5.在score表中显示期中、期末成绩都高于85分的学生学号、课程号和成绩。6.查询选修课称号为c05109或c06108且期末成绩大于等于85分学生的学号、课程号和成绩。7.查询计算机学院的具有高级职称教师的教师号、姓名和从事专业。8.利用SELECT…INTO创建新表。在teaching数据库中创建一个新表学生成绩st_score,包括学生学号、姓名、课程号和期末成绩。9.查询数据库test01中“奖学金”表中获得奖学金的学生的学号、班级号、综合测评和班级名次情况。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之间。其中,总评成绩的计算公式为:总评成绩=Final*0.7+usually*0.3。16.查询学号分别为的0824113307、0925111109和0935222201的学生学号、课程号、平时成绩和期末成绩。17.在student表中查询出生日期在1989年以后的学生的学号、姓名、电话和年龄。18.在student表中查询学生的学号、姓名和入学成绩,并按照入学成绩的降序排列。19.在student表中查询学号大于0923000000的学生的学号、姓名、电话和Email,并按照姓名的升序排序。20.在score表中查询总评成绩大于85的学生的课程号、和总评成绩学号,并先按照课程号的升序、再按照总评成绩的降序排列。21.在st_score表中查询期末成绩中有高于85的学生的学号和姓名,并按照姓名排序。22.从student表中查询入学成绩前5名的学生的学号、姓名、分数和电话。23.利用SELECT语句从student表中返回入学成绩排在前35%的学生的学号、姓名、分数和电话。24.用GROUPBY子句对score表数据分组,显示每个学生的学号和平均总评成绩。总评成绩计算公式如下:总评成绩=usually*0.3+final*0.7。25.统计student表中的男女学生的人数。26.利用GROUPBY子句对score表数据分组,显示总评成绩高于分的每个学生的学号和平均总评成绩。27.查询选课在3门以上且各门课程期末成绩均高于75分的学生的学号及其总成绩,查询结果按总成绩降序列出。28.查看student表中入学成绩在788分以上的学生的学号、出生日期和电话,且年龄最小的学生的生日。29.分别查询student表中入学成绩在750分以上的男女学生的学号、性别、出生日期和电话,及年龄最小的男女学生的生日。30.查询选修课程号为c05109号课程的期末最高分、最低分及之间相差的分数。31.通过查询求09级学生的总数。32.查询选课少于3门的学生的学号及其选课的门数。33.查询score表中各门课程的课程号及期末平均成绩。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.第六章Transact-SQL语句的高级应用1.查询选修课程号为c05109的学生的学号、姓名和期末成绩。2.查询选修课程号为c05103且平时成绩高于80分的学生的学号、姓名、平时成绩和期末成绩。3.利用左外连接方式查询08级学生的学号、姓名、平时成绩和期末成绩。4.利用右外连接方式查询教师的排课情况。5.利用完全外连接方式查询教师的排课情况。6.显示student表和score表的笛卡儿积。7.查询08级学生的学号、姓名、课程名、期末成绩及学分。8.查询计算机学院的老师的教师号、姓名、上课班级号、课程名和学分。9.合并结果集示例。10.查询学号为0828261367的学生的入学成绩、所有学生的平均入学成绩及该学生成绩与所有学生的平均入学成绩的差。11.获取期末成绩中含有高于93分的学生的学号、姓名、电话和Email。获取期末成绩中含有高于93分的学生的学号、姓名、电话和Email。12.查询选修课程的多于2门、且期末成绩均在85分以上的学生的学号、姓名、电话和Email。13.查询期末成绩比该选修课程平均期末成绩低的学生的学号、课程号和期末成绩。14.查询期末成绩高于85分、总评成绩高于90分的学生的学号、课程号和总评成绩。15.创建一个表sc,将score表中学生的相关数据添加到sc表中,并要求计算总评成绩。16.将sc表中含有总分低于80课程的所有学生总分增加5%。17.查询student表中是否存在1990年12月12日以后出生的学生,如果存在,输出学生的学号、姓名、生日和电话。18.使用STATIC关键字声明全局游标cEmploy。19.使用FETCH访问游标中的记录。20.使用游标输出teacher表。21.使用嵌套游标生成报表输出08级每个学生的学号、各科总评成绩和电话。22.声明游标,利用函数查看游标对teacher表进行检索的状态。23.利用sp_cursor_list系统存储过程显示游标的属性。24.利用BULKINSERT命令向teaching数据库中的st_score数据表添加数据。该表的结构如图所示。25.在teaching数据库中创建expic表,然后向该表添加新的记录。26.使用OPENROWS
本文标题:数据库课本例题
链接地址:https://www.777doc.com/doc-2333299 .html