---------------------------------------------------------------最新资料推荐------------------------------------------------------1/5实验二交互式sql河南工业大学实验报告课程数据库原理_实验名称实验二交互式SQL院系________专业班级__计科F1202_____姓名_______________学号_______指导老师:日期2019.10.12一.实验目的1.熟悉SQL的数据定义、数据操纵功能;掌握利用SQL语句进行多表内/外连接查询和嵌套查询的方法;掌握GROUPBY子句、HAVING子句、ORDERBY子句的用法;掌握(NOT)IN、(NOT)EXISTS等谓词的用法;掌握SUM、AVG、COUNT、MAX、MIN等集合函数的用法;掌握SQL语句中数据更新相关操作;熟悉视图基本操作:定义、查询、更新视图。2.3.4.5.6.7.二.实验内容及要求本实验的表结构如下所示:Student(sno,sname,sex,sage,dept,oldgrade,advisor)Teacher(tno,tname,dept,salary,title)Course(cno,cname,descry,dept,credit)SC(sno,cno,grade)以上数据库表的含义为:Student学生:sno(学号),sname(学生姓名),sex(性别),sage(年龄),dept(所在院系),oldgrade(高考成绩),advisor(导师)Teacher教师:tno(教师编号),tname(教师姓名),dept(所在院系),salary(工资),title(职称)Course课程:cno(课程号),cname(课程名),descry(课程说明),dept(开课院系),credits(学分)SC成绩:sno(学号),cno(课程号),grade(成绩)根据上述情况完成:1.使用SQL语句定义上述各表。2.查询选修了105323号课程的学生姓名。3.查询所有的学生及其选课信息。4.分别利用内连接、左连接和右连接实现上题,观察异同。5.查询工资不在2019到3000的教师姓名,按工资排序。6.查询高考平均成绩大于700分的学生所在院系。7.查询所有院系的平均高考成绩,并按平均成绩排序。8.查询所有学生的学号及成绩,并计算总成绩。9.查询每个院系教师的最高工资。10.把Teacher表中dept字段值为计算机科学系的记录修改为信息科学与工程学院。11.新建一个视图,并依此查询课程编号为205323,成绩大于80分的学生姓名。12.为Teacher表增加一个字段,电话(Phone),数据---------------------------------------------------------------最新资料推荐------------------------------------------------------3/5类型char(12),允许为空。三.实验过程及结果(说明:要写出相关SQL语句,实验结果可以是运行画面的抓屏,抓屏图片要尽可能的小。)1、使用SQL语句定义上述各表。CREATETABLEteacher(tnochar(3)primarykey,tnamechar(8),deptvarchar(20),salaryint,titlechar(6))CREATETABLEstudent(snochar(7)primarykey,snamechar(8),sexchar(2),deptvarchar(20),oldgradeint,tnochar(3))CREATETABLECourse(cnochar(6)primarykey,cnamevarchar(20),descryvarchar(50),deptvarchar(20),creditfloat)CREATETABLESC(snochar(7),cnochar(6),gradeint,primarykey(sno,cno))2、查询选修了105323号课程的学生姓名。Selectsnamefromstudentwhereexists(select*fromSCwheresno=student.snoandcno=‘105323’)3、查询所有的学生及其选课信息。Selectstudent.no,sname,sex,dept,oldgrade,tno,cno,gradefromstudent,scwherestudent.sno=sc.sno4、分别利用内连接、左连接和右连接实现上题,观察异同。内连接:Selectstudent.sno,sname,sex,dept,oldgrade,tno,gradefromstudentinnerjoinSConstudent.sno=SC.sno左连接:Selectstudent.sname,sex,dept,oldgrade,tno,gradefromstudentleftjoinSConstudent.sno=SC.sno右连接:selectstudent.sno,sname,sex,dept,oldgrade,tno,gradefromstudentrightjoinsconstudent.sno=sc.sno5、查询工资不在2019到3000的教师姓名,按工资排序。selecttnamefromteacherwheresalarynotbetween2019and3000orderbysalary6,、查询高考平均成绩大于700分的学生所在院系。selectdeptfromstudentwhereoldgrade7007、查询所有院系的平均高考成绩,并按平均成绩排序。selectdept,AVG(oldgrade)asavgoldgradefromstudentgroupbydeptorderbyavg(oldgrade)8、查询所有学生的学号及成绩,并计算总成绩。selectstudent.sno,SC.cno,SC.gradefromstudent,SCwherestudent.sno=SC.snoselectstudent.sno,SUM(grade)assumgradefromstudent,SCwherestudent.sno=SC.snogroupbyStudent.sno9、selectdept,MAX(salary)asmaxsalaryfromteachergroupbydept10、查询每个院系教师的最高工资。updateteachersetdept=信息科学与工程学院---------------------------------------------------------------最新资料推荐------------------------------------------------------5/5wheredept=计算机科学系12、为Teacher表增加一个字段,电话(Phone),数据类型char(12),允许为空。altertableteacheraddphonechar(12)select*fromteacher四.实验中的问题及心得通过本次实验利用SQL语句进行多表内、外连接查询和嵌套查询,自己了解到了各种连接的差异,熟悉了使用SQL语句中的数据更新等相关操作,以及按照不同的方法进行查询。