实验四 子查询

目录

一、第1关:子查询一

1.1 任务描述

1.2 SQL语句

二、第2关:子查询二

2.1 任务描述

2.2 SQL语句

三、第3关:子查询三

3.1 任务描述

3.2 SQL语句

四、第4关:带子查询的增删改

4.1 任务描述

4.2 SQL语句


一、第1关:子查询一

1.1 任务描述

1、查询CS系学生选择的课程,列出学号,课程号,成绩

2、查询没有选C06(课程号)课程的同学的学号,姓名,性别

3、查询成绩最高的选课信息,列出学号,课程号和成绩。

1.2 SQL语句

SELECT sno,cno,grade FROM SC 
WHERE sno IN (SELECT Sno FROM Student WHERE Sdept="CS");
SELECT sno,sname,ssex FROM Student 
WHERE sno NOT IN (SELECT sno FROM SC WHERE Cno = "C06"); 
SELECT sno,cno,grade FROM SC 
WHERE grade = (SELECT MAX(Grade) FROM SC);

二、第2关:子查询二

2.1 任务描述

1、查询CS系没有选择'DB'课程学生的姓名,列出学生姓名。

2、查询‘DB’课程考最高分的选课信息。列出学号,课程号,成绩

2.2 SQL语句

SELECT sname FROM Student WHERE sno NOT IN 
(SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE Cname='DB')) 
AND Sdept='CS';
SELECT sno,cno,grade FROM SC WHERE grade = 
(SELECT MAX(grade) FROM SC WHERE Cno IN (SELECT cno FROM Course WHERE Cname='DB'));

三、第3关:子查询三

3.1 任务描述

查询选修了先行课为'DB'的课程的学生,列出学生学号,姓名,性别,所在系。

3.2 SQL语句

SELECT sno,sname,ssex,sdept FROM Student WHERE Sno IN 
(SELECT Sno FROM SC WHERE Cno = 
(SELECT Cno FROM Course WHERE Cpno = 
(SELECT Cno FROM Course WHERE Cname='DB')));

四、第4关:带子查询的增删改

4.1 任务描述

1、将'DB'课程不及格的成绩加5分。

2、删除'English'(课程名)课程CS系学生的选课记录。

3、为CS系添加必修课'c02'。(即为CS系没有选c02课程的学生选c02课程)

4.2 SQL语句

UPDATE SC SET Grade=Grade+5 WHERE Cno=
(SELECT Cno FROM Course WHERE Cname='DB') 
AND Grade<60;
DELETE FROM SC WHERE Sno IN 
(SELECT Sno FROM Student WHERE Sdept='CS') 
AND Cno=(SELECT Cno FROM Course WHERE Cname='English');
INSERT INTO SC SELECT Sno,'C02',NULL FROM Student WHERE Sdept='CS' 
AND NOT EXISTS(SELECT * FROM SC WHERE SC.sno=Student.Sno AND Cno='C02');
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验三 数据查询实验 一. 实验目的 通过对实验二中建立的学生数据库关系表和视图的各种查询的操作,加深对SQL查询语言的了解,掌握相关查询语句的语法和使用方法。 二. 实验要求 (1) 用SQL语句完成以上操作 (2) 要求学生独立完成以上内容。 (3) 实验完成后完成要求的实验报告内容。 三. 实验环境 操作系统:Microsoft Windows 7旗舰版 (32位)。 硬件:容量足以满足Sybase 12.5.1安装及后续实验的使用。 软件:数据库版本:Sybase 12.5.1 。 实验内容 1. 数据库关系表查询: (1) 简单的查询操作,包括单表的查询、选择条件、结果排序等的练习; (2) 多表的连接查询,包括等值连接、自然连接等; (3) 复杂的查询操作,包括使用分组函数等库函数的查询操作; (4) 练习带有IN、比较符的嵌套查询。 具体内容包括: (1)在简单查询实验中,在sql语句完成以下查询操作: 查询“数据库原理”课程的学分; 查询选修了课程编号为“C01”的学生的学号和成绩,并将成绩按降序输出; 查询学号为“31401”的学生选修的课程编号和成绩; 查询选修了课程编号为“C01”且成绩高于85分的学生的学号和成绩。 (2)在多表连接的查询实验中,在SQL SERVER提供的交互式语言环境下用Transact SQL语句完成以下查询操作: 查询选修了课程编号为“C01”且成绩高于85分的学生的学号、姓名和成绩; 查询所有学生的学号、姓名、选修的课程名称和成绩; (3)在复杂查询实验中,用 SQL语句完成以下查询操作: 查询至少选修了三门课程的学生的学号和姓名; 查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的。 (4)在嵌套查询实验中,在MySQL 5.5提供的交互式语言环境下用iSQL语句完成以下查询操作,要求写嵌套查询语句 查询选修了数据库原理的学生的学号和姓名; 查询没有选修数据库原理的学生的学号和姓名; 查询至少选修了学号为“31401”的学生所选修的所有课程的学生的学号和姓名。 2. 视图查询: 对实验二建立的视图进行相关的查询操作,如: 查询选修了课程编号为“C01”的学生的学号和成绩; 查询所有学生的学号、姓名、选修的课程名称和成绩; 查询选修了数据库原理的学生的学号和姓名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值