SQL语句创建学生信息数据库表的示例_第1页
SQL语句创建学生信息数据库表的示例_第2页
SQL语句创建学生信息数据库表的示例_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

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

2、gebetween15and45),Sdeptvarchar(20)default('计算机系')Course表结构列名说明数据类型约束Cno课程号字符串,长度为10主码Cname课程名字符串,长度为20非空Ccredit学分整数取值大于0Semester学期整数取值大于0Period学时整数取值大于0Createtablecourse(Cnovarchar(10)primarykey,Cnamevarchar(20)notnull,Ccreditintcheck(Sctedit>0),Semesterintcheck(Semester>0),Periodintch

3、eck(Period>0)SC表结构列名说明数据类型约束Sno学号字符串,长度为7主码,引用Student的外码Cno课程号字符串,长度为10主码,引用Course的外码Grade成绩整数取值0?100Snovarchar(7)foreignkeyreferencesstudent(Sno),Cnovarchar(10)foreignkeyreferencescourse(Cno),Gradeintcheck(Gradebetween0and100),Primarykey(Sno,Cno)1. 查询学生选课表中的全部数据。SELECT*FROMSCgo2. 查询计算机系学生的姓名、年龄。

4、SelectSname,SageFromStudentWhereSdept='计算机系'3. 查询成绩在70?80分之间的学生的学号、课程号和成绩。SelectSno,Cno,GradeFromCourse,ScWo=sc.Cnoandsc.Gradebetween70and804. 查询计算机系年龄在18?20之间且性别为“男”的学生的姓名和年龄。SelectSname,SageFromStudentWhereSagebetween18and20andSsex='男'andSdept='计算机系,go5. 查询课程号为“C01”的课程的最高分数。Sel

5、ecttop1Gradeselectmax(Grade)as最高分FromScfromScWhereCno='C01'whereCno='C01'OrderbyGradedescorderbyGradedesc6. 查询计算机系学生的最大年龄和最小年龄Selectmax(Sage)as年龄最大,min(Sage)as年龄最小FromStudentWhereSdept='计算机系,乙统计每个系的学生人数。Selectcount(Sdept)as学生人数,SdeptFromStudentGroupbySdeptSelectcount(Sno)as选课人数,c

6、.Sno,max(Grade)as最高分FromCoursecleftjoinSo=s.CnoGroupbyc.Cno9.统计每个学生的选课门数和考试平均成绩,并按学号的升序显示结果。Selectsno,avg(grade)as'平均成绩',count(cno)as'选课门数,FromscGroupbysnoOrderbysno10. 查询总成绩超过200分的学生,要求列出学号、总成绩。Selectsno,sum(grade)FromscGroupbysnoHavingsum(grade)>20011. 查询选修了课程“C02'的学生的姓名和所在系。Sel

7、ectsname,sdeptFromstudents1,scs2Wheres1.sno=o='c02'12.查询成绩在80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。13. Selects1.sname,o,s2.gradeFromstudents1,scs2Wheres1.sno=s2.snoandgrade>80Orderbygradedesc查询哪些课程没有人选修、要求列出课程号和课程名So,ameFo=oGo,ameHavingcount(s.sno)=0用子查询实现如下查询:查询选修了课程“Selectsname,sdept,snoFromstud

8、entWheresnoin(SelectsnoFromscWherecno=)查询信息系成绩在Selectsno,snameFromstudentWheresdept='夕卜语系'andsnoin(COT勺学生的姓名和所在系c01'8O分以上的学生的学号、姓名SelectsnoFromscWheregrade>8O查询计算机系考试成绩最局的学生的姓名Selects1.snamefromstudentsWheresdept='计算机系'andsnoin(selectsnofromscWheregradein(selectmax(Grade)froms

9、c)15.删除选课成绩小于50分的学生的选课记录DeletefromscWheregrade<70Select*fromsc验证16. 将所有选修了课程“C01”的学生的成绩加10分:UpdatescSetgrade=grade+10Wherecno='c01'17. 将计算机系所有选修了课程“计算机文化基础”课程的学生的成绩加10分。Select*fromscUpdatescSetgrade=grade+10Wherecnoin(selectcnofromcourseWherecname='计算机文化基础)18. 创建查询学生的学号、姓名、所在系、课程号、课程名

10、、课程学分的视图。Select*fromcourseSelect*fromstudentsSelect*fromscCreateview学生基本信息AsSelectstudents.sno,sname,sdept,o,cname,ccreditFromcourse,sc,studentsWo=oAo=students.sno19. 创建查询每个学生的平均成绩的视图,要求列出学生学号及平均成绩。Createviews_avgAsSelectsno,avg(Grade)as平均成绩fromscGroupbysno20.创建查询每个学生的选课学分的视图,要求列出学生学号及总学分。Createview

11、s_scAsSelectstudents.sno,sum(ccredit)as总学分fromStudents,sc,courseWherestudents.sno=sc.snoAo=oGroupbystudents.sno21.用SQL语句创建一个名为f1的函数,该函数能够求出3到100之间的所有素数之和。Createfunctionf_1()ReturnsintAsBeginDeclareaint,bint,iint,sumintSeti=3Setsum=0Whilei<101BeginSetb=0Whilea<=i/2BeginIfi%a=0BeginSetb=1BreakEn

12、dSeta=a+1EndIfb=0-b为0说明之前没有比i小的数字可以把i整除BeginSetsum=sum+iEndSeti=i+1EndReturnsumEndGoSelectdbo.f_1()22.用SQL语句创建一个名为f2的函数,该函数能够求出任意两个数的最大值。Createfunctionf_2(x1int,x2int)returnsintAsBeginDeclaremaxintIfx1>x2ReturnmaxEndSelectdbo.f_2(2,6)23.用SQL语句创建一个名为pro_get_stu_information的存储过程,该存储过程能够根据用户指定的Sno(学号)求出与该学号对应的学生姓名、课程名、成绩。Createprocedurepro_get_stu_informationmchar(6)outputAsSelectsname,cname,gradefromstudents,sc,courseWherestudents.sno=o=oandsc.sno=mExecpro_get_stu_information'0603002'集的索24.

温馨提示

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

最新文档

评论

0/150

提交评论