北邮数据库_sql实验二报告.doc

北邮数据库_sql实验二报告.doc

ID:58492045

大小:1.20 MB

页数:13页

时间:2020-05-17

北邮数据库_sql实验二报告.doc_第1页
北邮数据库_sql实验二报告.doc_第2页
北邮数据库_sql实验二报告.doc_第3页
北邮数据库_sql实验二报告.doc_第4页
北邮数据库_sql实验二报告.doc_第5页
资源描述:

《北邮数据库_sql实验二报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二SQLServer数据库设计高级内容一、使用查询分析器实现以下查询(1)统计有学生选修的课程门数。SELECTCOUNT(DISTINCTCourseNo)CourseTotalFROMsc(2)求选课在四门以上的学生所选课程的平均成绩(不统计不及格的课程)。最后按降序列出平均成绩名次名单来。SELECTsno,AVG(score)avg_gradeFROMscWHEREscore>=60GROUPBYsnoHAVINGcount(courseno)>=4ORDERBYavg_gradeDESC(3)统

2、计每门指选课程的学生选修人数(超过10人的课程才统计),要求输出课程号,课程名和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。SELECTcourseno,COUNT(sno)snumFROMscGROUPBYcoursenoHAVINGCOUNT(sno)>=10ORDERBYCOUNT(sno)DESC,coursenoASC(4)检索所学课程包含了s3所选所有课程的学生姓名。SELECTDISTINCTsnoFROMscsc_1WHERENOTEXISTS(SELECT*FROMscs

3、c_2WHEREsno=''ANDNOTEXISTS(SELECT*FROMscsc_3WHEREsc_3.sno=sc_1.snoANDsc_3.courseno=sc_2.courseno))注:上述查询中所用的课程号和学号的值,可以根据自己表中的数据作修改;为了验证查询的正确,可能还需要输入或修改表中的示例数据;二、实现数据完整性(1)定义check约束check约束用来限制用户输入的某一列数据;例如:成绩输入的值应该限制为0-100之间的数值altertablescaddconstraintck_sc

4、CHECK(score>=0ANDscore<=100)删除约束altertablescdropconstraintck_sc(2)定义规则(rule)rule也可以用来限制用户输入的数据,但它只定义一次,可以绑定到一列或多列;例如:创建一个规则,保证只允许输入指定的课程类别:“必修”,“任选”,“指选”,然后把此规则绑定到“课程类别”;创建规则createrulecoursetypeas@coursetypein("必修","任选","指选")绑定规则sp_bindrule'coursetype','Cou

5、rse.Category'解除绑定sp_unbindrule'Course.Category'删除规则droprulecoursetype(3)创建以上约束后,练习修改约束的操作(包括增加,修改和删除以上约束);三、在企业管理器中利用数据导入,导出向导练习数据的导入导出;把每个表中的数据导出到指定的文本文件中;导出的文件四、在企业管理器中,练习数据库的完整性备份和恢复;备份文件;五、存储过程和触发器的实现1.存储过程(1)使用CREATEPROCEDURE命令创建存储过程例1:定义存储过程,实现学生学号,姓名

6、,课程名和成绩的查询;CREATEPROCstudent_queryASSELECTstudent.sno,sname,coursename,scoreFROMstudent,course,scWHEREstudent.sno=sc.snoandcourse.courseno=sc.coursenoEXECstudent_query例2:定义存储过程,实现按某人指定课程的成绩;CREATEPROCstudent_query1@snamevarchar(20),@cnamevarchar(30)ASSELECT

7、student.sno,sname,coursename,scoreFROMstudent,course,scWHEREstudent.sno=sc.snoANDcourse.courseno=sc.coursenoANDsname=@snameANDcoursename=@cnameexecstudent_query1'李刚','数据库技术'例3:定义存储过程,在查询某人所选修的课程和成绩,指定姓名时,可以只给出姓;CREATEPROCstudent_query2@snamevarchar(20)='%'A

8、SSELECTstudent.sno,sname,coursename,scoreFROMstudent,course,scWHEREstudent.sno=sc.snoANDcourse.courseno=sc.coursenoandsnameLIKE@snameEXECstudent_query2'张%'例4:定义存储过程,计算并查看指定学生的总学分altertablecoursealterco

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。