《2023年实验二 交互式sql.pdf》由会员分享,可在线阅读,更多相关《2023年实验二 交互式sql.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-最新资料推荐-1/5 实验二 交互式 sql 河南工业大学实验报告 课程 数据库原理 _ 实验名称 实验二 交互式 SQL 院 系_ 专业班级_ 计科 F1202 _ 姓 名_ 学 号_ _ 指导老师:日 期 2019.10.12 一.实验目的 1.熟悉 SQL 的数据定义、数据操纵功能;掌握利用 SQL 语句进行多表内/外连接查询和嵌套查询的方法;掌握 GROUP BY 子句、HAVING 子句、ORDER BY 子句的用法;掌握(NOT)IN、(NOT)EXISTS 等谓词的用法;掌握 SUM、AVG、COUNT、MAX、MIN 等集合函数的用法;掌握 SQL 语句中数据更新相关操作;熟
2、悉视图基本操作:定义、查询、更新视图。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(
3、教师编号),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.
4、查询所有院系的平均高考成绩,并按平均成绩排序。8.查询所有学生的学号及成绩,并计算总成绩。9.查询每个院系教师的最高工资。10.把 Teacher 表中 dept 字段值为计算机科学系 的记录修改为信息科学与工程学院。11.新建一个视图,并依此查询课程编号为 205323,成绩大于 80 分的学生姓名。12.为 Teacher 表增加一个字段,电话(Phone),数据掌握子句子句子句的用法掌握等谓词的用法掌握等集合函数的用法掌握语句中数据更新相关操作熟悉视图基本操作定在院系高考成绩导师教师教师编号教师姓名所在院系工资职称课程课程号课程名课程说明开课院系学分成绩学号课程利用内连接左连接和右连接实
5、现上题观察异同查询工资不在到的教师姓名按工资排序查询高考平均成绩大于分的学生-最新资料推荐-3/5 类型 char(12),允许为空。三.实验过程及结果 (说明:要写出相关 SQL 语句,实验结果可以是运行画面的抓屏,抓屏图片要尽可能的小。)1、使用 SQL 语句定义上述各表。CREATE TABLE teacher(tno char(3)primary key,tname char(8),dept varchar(20),salary int,title char(6)CREATE TABLE student(sno char(7)primary key,sname char(8),sex
6、char(2),dept varchar(20),oldgrade int,tno char(3)CREATE TABLE Course(cno char(6)primary key,cname varchar(20),descry varchar(50),dept varchar(20),credit float )CREATE TABLE SC(sno char(7),cno char(6),grade int,primary key(sno,cno)2、查询选修了 105323 号课程的学生姓名。Select sname from student where exists (select
7、*from SC where sno=student.sno and cno=105323)3、查询所有的学生及其选课信息。Select student.no,sname,sex,dept,oldgrade,tno,cno,grade from student,sc where student.sno=sc.sno 4、分别利用内连接、左连接和右连接实现上题,观察异同。内连接:掌握子句子句子句的用法掌握等谓词的用法掌握等集合函数的用法掌握语句中数据更新相关操作熟悉视图基本操作定在院系高考成绩导师教师教师编号教师姓名所在院系工资职称课程课程号课程名课程说明开课院系学分成绩学号课程利用内连接左连接
8、和右连接实现上题观察异同查询工资不在到的教师姓名按工资排序查询高考平均成绩大于分的学生 Select student.sno,sname,sex,dept,oldgrade,tno,grade from student inner join SC on student.sno=SC.sno 左连接:Select student.sname,sex,dept,oldgrade,tno,grade from student left join SC on student.sno=SC.sno 右连接:select student.sno,sname,sex,dept,oldgrade,tno,gr
9、ade from student right join sc on student.sno=sc.sno 5、查询工资不在 2019 到 3000 的教师姓名,按工资排序。select tname from teacher where salary not between 2019 and 3000 order by salary 6,、查询高考平均成绩大于 700 分的学生所在院系。select dept from student where oldgrade700 7、查询所有院系的平均高考成绩,并按平均成绩排序。select dept,AVG(oldgrade)as avgoldgrad
10、e from student group by dept order by avg(oldgrade)8、查询所有学生的学号及成绩,并计算总成绩。select student.sno,SC.cno,SC.grade from student,SC where student.sno=SC.sno select student.sno,SUM(grade)as sumgrade from student,SC where student.sno=SC.sno group by Student.sno 9、select dept,MAX(salary)as maxsalary from teach
11、er group by dept 10、查询每个院系教师的最高工资。update teacher set dept=信息科学与工程学院 where 掌握子句子句子句的用法掌握等谓词的用法掌握等集合函数的用法掌握语句中数据更新相关操作熟悉视图基本操作定在院系高考成绩导师教师教师编号教师姓名所在院系工资职称课程课程号课程名课程说明开课院系学分成绩学号课程利用内连接左连接和右连接实现上题观察异同查询工资不在到的教师姓名按工资排序查询高考平均成绩大于分的学生-最新资料推荐-5/5 dept=计算机科学系 12、为 Teacher 表增加一个字段,电话(Phone),数据类型 char(12),允许为空
12、。alter table teacher add phone char(12)select*from teacher 四.实验中的问题及心得 通过本次实验利用 SQL 语句进行多表内、外连接查询和嵌套查询,自己了解到了各种连接的差异,熟悉了使用 SQL 语句中的数据更新等相关操作,以及按照不同的方法进行查询。掌握子句子句子句的用法掌握等谓词的用法掌握等集合函数的用法掌握语句中数据更新相关操作熟悉视图基本操作定在院系高考成绩导师教师教师编号教师姓名所在院系工资职称课程课程号课程名课程说明开课院系学分成绩学号课程利用内连接左连接和右连接实现上题观察异同查询工资不在到的教师姓名按工资排序查询高考平均成绩大于分的学生