SQL语句创建学生信息数据库表的示例.docx

上传人:p** 文档编号:819811 上传时间:2024-03-13 格式:DOCX 页数:8 大小:29.52KB
下载 相关 举报
SQL语句创建学生信息数据库表的示例.docx_第1页
第1页 / 共8页
SQL语句创建学生信息数据库表的示例.docx_第2页
第2页 / 共8页
SQL语句创建学生信息数据库表的示例.docx_第3页
第3页 / 共8页
SQL语句创建学生信息数据库表的示例.docx_第4页
第4页 / 共8页
SQL语句创建学生信息数据库表的示例.docx_第5页
第5页 / 共8页
SQL语句创建学生信息数据库表的示例.docx_第6页
第6页 / 共8页
SQL语句创建学生信息数据库表的示例.docx_第7页
第7页 / 共8页
SQL语句创建学生信息数据库表的示例.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
资源描述

《SQL语句创建学生信息数据库表的示例.docx》由会员分享,可在线阅读,更多相关《SQL语句创建学生信息数据库表的示例.docx(8页珍藏版)》请在第壹文秘上搜索。

1、用SQL语句创立如下三个基本表:学生表(StUderIt)、课程表(Course).学生选课表(SC),构造如下所示Student表构造列名说明数据类型约束Sno学号字符串,长度为7主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取男或女Sage年龄整数取值1545Sdept所在院系字符串,长度为20默认为计算机系CreatetableStudentSnovarchar(7)primarykey,Snamevarchar(10)notnull,Ssexchar(2)check(Ssex=男orSsex=,女),Sageintcheck(Sagebetween15and45)

2、,SdeptVarChar(20)default(,计算机系)Course表构造列名说明数据类型约束Cno课程号字符串,长度为10主码Cname课程名字符串,长度为20非空Ccredit学分整数取值大于0Semester学期整数取值大于0Period学时整数取值大于0CreatetablecourseCnovarchar(10)primarykey,Cnamevarchar(20)notnul1,Ccreditintcheck(ScteditO),Semesterintcheck(SemesterO),Periodintcheck(Period0)SC表构造列名说明数据类型约束Sno学号字符串

3、,长度为7主码,引用Student的外码Cno课程号字符串,长度为io主码,引用CoUrSe的外码Grade成绩整数取值0100CreatetableSCSnovarchar(7)foreignkeyreferencesstudent(Sno),Cnovarchar(10)foreignkeyreferencescourse(Cno),Gradeintcheck(GradebetweenOand100),Primarykey(Sno,Cno)1 .查询学生选课表中的全部数据。SELECT*FROMSCgo2 .查询计算机系学生的姓名、年龄。SelectSname,SageFromStudent

4、WhereSdept=,计算机系3 .查询成绩在7080分之间的学生的学号、课程号和成绩。SelectSno,Cno,GradeFromCourse,ScWherecourse,cno=sc.Cnoandsc.Gradebetween70and804 .查询计算机系年龄在1820之间且性别为“男的学生的姓名和年龄。SelectSname,SageFromStudentWhereSagebetween18and20andSsex=,男andSdept=计算机系go5 .查询课程号为“C01”的课程的最高分数。Selecttop1Gradeselectmax(Grade)as最高分FromScfr

5、omScWhereCno=,COl,whereCno=,COl,Order by Grade descorder by Grade desc6 .查询计算机系学生的最大年龄和最小年龄。Selectmax(Sage)as年龄最大,min(Sage)as年龄最小FromStudentWhereSdept三,计算机系7 .统计每个系的学生人数。Selectcount(Sdept)as学生人数,SdeptFromStudentGroupbySdept8 .统计每门课程的选课人数和考试最高分。Selectcount(Sno)as选课人数,c.Sno,max(Grade)as最高分FromCoursecl

6、eftjoinSo=s.CnoGroupbyc.Cno9 .统计每个学生的选课门数和考试平均成绩,并按学号的升序显示结果。Selectsno,avg(grade)as,平均成绩,count(cno)as,选课门数,FromscGroupbysnoOrderbysno10 .查询总成绩超过200分的学生,要求列出学号、总成绩。Selectsno,sum(grade)FromscGroupbysnoHavingsum(grade)20011 .查询选修了课程“C02”的学生的姓名和所在系。Selectsname,sdeptFromstudentsi,scs2Wheresi.sno=o三,c02,1

7、2 .查询成绩在80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。Selectsi.sname,o,s2.gradeFromstudentsi,scs2Wheresi.sno=s2.snoandgrade80Orderbygradedesc13 .查询哪些课程没有人选修、要求列出课程号和课程名。So,ameFo=oGo,ameHavingcount(s.sno)=014 .用子查询实现如下查询:(1)查询选修了课程“C01”的学生的姓名和所在系。Selectsname,sdept,snoFromstudentWheresnoin(SelectsnoFromscWherecno三,c

8、l,)(2)查询信息系成绩在80分以上的学生的学号、姓名。Selectsno,snameFromstudentWheresdopt三,外语系andsnoin(SelectsnoFromscWheregrade80)(3)查询计算机系考试成绩最高的学生的姓名。Selectsi.snamefromstudentsWheresdcpt三,计算机系,andsnoin(selectsnofromscWheregradein(selectmax(Gracle)fromsc)15 .删除选课成绩小于50分的学生的选课记录。DeletefromscWheregrade70Select*fromsc验证16 .

9、将所有选修了课程“C01”的学生的成绩加10分:UpdatescSetgrade=grade+10WhereCnO=cl,17 .将计算机系所有选修了课程“计算机文化根基课程的学生的成绩加10分。Select*fromscUpdatescSetgrade=grade+10Wherecnoin(selectcnofromcourseWhereCnanIC=计算机文化根基)18 .创立查询学生的学号、姓名、所在系、课程号、课程名、课程学分的视图。Select*fromcourseSelect*fromstudentsSelect*fromscCreateview学生基本信息AsSelectstud

10、ents,sno,snamc,sdcpt,o,cname,ccreditFromcourse,sc,studentsWherecourse,cno=oAo=students.sno19 .创立查询每个学生的平均成绩的视图,要求列出学生学号及平均成绩。Createviews_avgAsSelectsno,avg(Grade)as平均成绩fromscGroupbysno20 .创立查询每个学生的选课学分的视图,要求列出学生学号及总学分。Createviews_scAsSelectstudents,sno,sum(ccrcdit)as总学分fromStudents,sc,courseWherestu

11、dents,sno=sc.snoAo=oGroupbystudents,sno21 .用SQL语句创立一个名为f的函数,该函数能够求出3到100之间的所有素数之和。Createfunctionf_l()ReturnsintAsBeginDeclareaint,bint,iint,sumintSeti=3SetSUm=OWhilei101BeginSetb=0Whileax2ReturnmaxEndSelectdbo.f_2(2,6)23 .用SQL语句创立一个名为pro_get_stu_information的存储过程,该存储过程能够根据用户指定的Sno学号)求出与该学号对应的学生姓名、课程名

12、、成绩。Createprocedurepro_get_stu_informationchar(6)outputAsSelectsname,cname,gradefromstudents,sc,courseWherestudents,sno=o=oandsc.sno=mExecpro-get-stuinformation,0603002,24 .为“学生表创立一个依赖于“学号的唯一的、非聚集的索引Createuniquenonclusteredindexstu_intonstudents(sno)25 .通过游标逐行读取“学生表的记录Declarestu_curcursorforSelect*fromstudentsforreadonlyOpenstucurFetchstucurClosestucurDeallocatestucur

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据库

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!