基本SQL练习题--选课经典例题

为管理岗位业务培训信息,建立3个表:

S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩

  

1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名

--实现代码:

Select SN,SD
FROM S
Where [S#] IN(
    Select [S#]
    FROM C,SC
    Where C.[C#]=SC.[C#] AND CN=N‘税收基础‘)

  

2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位

--实现代码:

Select S.SN,S.SD
FROM S,SC
Where S.[S#]=SC.[S#] AND SC.[C#]=‘C2‘ 

3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位

--实现代码:

Select SN,SD
FROM S
Where [S#] NOT IN(
    Select [S#]
    FROM SC
    Where [C#]=‘C5‘)

  

4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

--实现代码:

Select SN,SD
FROM S
Where [S#] IN(
    Select [S#]
    FROM SC RIGHT JOIN C ON SC.[C#]=C.[C#]
        GROUP BY [S#] HAVING COUNT(*)=COUNT([S#]))

  

5. 查询选修了课程的学员人数

--实现代码:

Select 学员人数=COUNT(DISTINCT [S#])
FROM SC

  

6. 查询选修课程超过5门的学员学号和所属单位

--实现代码:

Select SN,SD
FROM S
Where [S#] IN(
    Select [S#]
    FROM SC
    GROUP BY [S#] HAVING COUNT(DISTINCT [C#])>5)

  

题目2:

问题描述:

S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

--实现代码:

Select SNAME
FROM S
Where NOT EXISTS( Select * FROM SC,C Where SC.CNO=C.CNO AND CNAME=‘李明‘ AND SC.SNO=S.SNO)

  

2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

--实现代码:

Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
FROM S,SC,
    ( Select SNO FROM SC Where SCGRADE<60 GROUP BY SNO HAVING     COUNT(DISTINCT CNO)>=2 ) A
Where S.SNO=A.SNO AND SC.SNO=A.SNO
    GROUP BY S.SNO,S.SNAME

  

3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

--实现代码:

Select S.SNO,S.SNAME
FROM S,
    (Select SC.SNO FROM SC,C Where SC.CNO=C.CNO AND C.CNAME IN(‘1‘,‘2‘) GROUP BY SNO HAVING COUNT(DISTINCT CNO)=2 ) SC
Where S.SNO=SC.SNO

  

4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

--实现代码:

Select S.SNO,S.SNAME
FROM S,
    ( Select SC1.SNO FROM SC SC1,C C1,SC SC2,C C2 Where SC1.CNO=C1.CNO AND C1.NAME=‘1‘ AND SC2.CNO=C2.CNO AND C2.NAME=‘2‘ AND SC1.SCGRADE>SC2.SCGRADE ) SC
Where S.SNO=SC.SNO

  

5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

--实现代码:

Select S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩]
FROM S,
    ( Select SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE FROM SC SC1,C C1,SC SC2,C C2 Where SC1.CNO=C1.CNO AND C1.NAME=‘1‘ AND SC2.CNO=C2.CNO AND C2.NAME=‘2‘ AND SC1.SCGRADE>SC2.SCGRADE ) SC
Where S.SNO=SC.SNO

  

基本SQL练习题--选课经典例题

时间: 2024-09-30 11:15:12

基本SQL练习题--选课经典例题的相关文章

经典SQL练习题

今天在网上找了几道经典的SQL练习题做了一下,虽然都不难,但是对打基础是很有好处的,在明白的基础上可以进一步做分析,来研究一下各种解法的优劣,甚至进行简单的优化..现在将题目和答案分享一下.我使用的是MYSQL 5.0,但是绝大部分都是标准SQL.表结构:CREATE TABLE STUDENT(SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME,CLASS

(转)经典SQL练习题

今天在网上找了几道经典的SQL练习题做了一下,虽然都不难,但是对打基础是很有好处的,在明白的基础上可以进一步做分析,来研究一下各种解法的优劣,甚至进行简单的优化..现在将题目和答案分享一下.我使用的是MySQL 5.0,但是绝大部分都是标准SQL.表结构:CREATE TABLE STUDENT(SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME,CLASS

接近50道经典SQL练习题,附建表SQL解题SQL

说明 本文章整理了47道常见sql联系题,包括建表语句,表结构,习题列表,解题答案都涵盖在本文章内.文末提供了所用SQL脚本下载链接.所有解题答案都是本人自己写的,广大读者如果在阅读使用中,有任何问题欢迎留言,对我写的有问题的,欢迎指正,谢谢. 数据库:oracle11g 表结构 可使用plsql-工具-导入表,导入如下sql脚本. 表结构与数据.sql 学生表 Student(SId,Sname,Sage,Ssex)SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别

数据库与信息系统经典例题

数据库与信息系统经典例题 @阆苑祁寒 更新时间:2020-01-03 此版本是最终版本. 经典例题取自<数据库与信息系统>课程,仅供学术交流和期末复习,如有错误请指出,转载时请注明出处! 一.基础概念核查(填空) 用户创建数据库时,其主要数据文件的初始大小必须不小于_______系统数据库的大小. 关系数据模型由关系_______.______和_________三部分组成. 设有某个文件,当向其中插入一条新记录时,首先读文件头,找到最末磁盘块的地址后将最末磁盘块读入内存缓冲区,在缓冲区内将新

50道sql练习题和答案

最近两年的工作没有写过多少SQL,感觉水平下降十分严重,网上找了50道练习题学习和复习 原文地址:50道SQL练习题及答案与详细分析 1.0数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教

[Python]Python 经典例题

Python 经典例题 1 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. #!/usr/bin/python # -*- coding: UTF-8 -*- from sys import stdout for j in range(2,1001): k = [] n = -1 s = j for i in range(1,j): if j % i == 0: n += 1 s -= i k.append(i) if

java--------动态的经典例题

多态一: 什么是动态: 同一行为的多种不同表达,或者同一行为的多种不同实现就叫做多态. 1)Person,Student,Teacher之间的关系 2)有一个"车"的父类,宝马继承自车,奔驰继承自车.那么反过来,车可以是宝马,也可以是奔驰,具有不同的形态,这种现象就叫多态.  如,我要上街买个东西,请你给我一辆车,这时你传给我的车(一个Car对象,形参)的一个实例(实参)就是多态(可以有不同的实现,宝马.奔驰.自行车等都可以). 3) "笔"是父类,钢笔.铅笔.圆珠

到底什么是dp思想(内含大量经典例题,附带详细解析)

期末了,通过写博客的方式复习一下dp,把自己理解的dp思想通过样例全部说出来 说说我所理解的dp思想 dp一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,要你求一个 最好的决策序列使得这个问题有最优解 将待求解的问题分为若干个相互联系的子问题,只在第一次遇到的时候求解,然后将这个子问题的答案保存 下来,下次又遇到的时候直接拿过来用即可 dp和分治的不同之处在于分治分解而成的子问题必须没有联系(有联系的话就包含大量重复的子问题,那 么这个问题就不适宜分治,虽然分治也

50道SQL练习题及答案与详细分析!!!

以前在学校还没有很认真地意识到,现在到了企业才发现sql是那么的重要,看到网上有很多的sql 练习题,特地拿来练练手! 数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教师编号,Tname