77范文网 - 专业文章范例文档资料分享平台

SQL语句练习(2)

来源:网络收集 时间:2020-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

10、求出所有学生的总成绩。

SELECT SUM(成绩) AS 总成绩 FROM 选课 11、列出每个学生的平均成绩。

SELECT 学号,AVG(成绩) AS 平均成绩 FROM 选课 GROUP BY 学号 12、列出各科的平均成绩、最高成绩、最低成绩和选课人数。 SELECT 课号,AVG(成绩) AS 平均成绩,MAX(成绩) AS 最高分,;

MIN(成绩) AS 最低分,COUNT(学号) AS 选课人数 FROM 选课 GROUP BY 课号 二、连接查询

(一)简单连接

1、列出选修1号课的学生姓名及成绩。

SELECT 姓名,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课号=\ 2、列出选修1号课的学生的学号、姓名及成绩。

SELECT 学生.学号,姓名,成绩 FROM 学生 S,选课 X WHERE S.学号=X.学号 AND 课号=\

3、求出总分大于150的学生的学号、姓名及总成绩。

SELECT 学生.学号,姓名,SUM(成绩) AS 总成绩 FROM 学生,选课;

WHERE 学生.学号=选课.学号 GROUP BY 选课.学号 HAVING SUM(成绩)>150 (二)自连接查询

1、列出那些专业相同的学生相应的姓名及专业信息。

SELECT a.姓名,b.姓名,专业 FROM 学生 a,学生 b WHERE a.学号<>b.学号 AND a.专业=b.专业

2、求至少选修1号课和2号课的学生的学号。

SELECT X.学号 FROM 选课 X,选课 Y WHERE X.学号=Y.学号 AND X.课号=\课号=\

3、有以下表rate.dbf

币种1代码 C(2)、币种2代码 C(2)、买入价 N(8,4)、卖出价 N(8,4) 外汇汇率.dbf

币种1 C(4)、币种2 C(4)、买入价 N(8,4)、卖出价 N(8,4) 外汇代码.dbf

外汇名称 C(10)、外汇代码 C(10)

要求:将所有“外汇汇率”表中的数据插入rate表中并且顺序不变,由于“外汇汇率”中的币种1和币种2存放的是外币名称,而rate表中的币种1代码和币种2代码应该存放外币代码,所以插入时要做相应的改动,外币名称与外向代码的对应关系存储在“外汇代码”表中。

SELECT A.外币代码 AS 币种1代码,B.外币代码 AS 币种2代码,; 买入价,卖出价 FROM 外汇代码 A,外汇汇率,外汇代码 B;

WHERE A.外币名称=外汇汇率.币种1 AND B.外币名称=外汇汇率.币种2 INTO TABLE rate 4、假定有“雇员”表(雇员号 C(2),雇员姓名 C(6),经理号 C(2)),根据雇员关系列出上一级经理及其所领导的职员清单。(教案中的例题)

SELECT \领导\雇员姓名,\雇员\雇员姓名 FROM 雇员 S,雇员 E WHERE S.雇员号=E.经理

(三)超连接

1、列出选修1号课的学生姓名及成绩。 方法一:(使用简单连接查询格式)

SELECT 姓名,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课号=\ 方法二:(使用内部连接格式)

SELECT 姓名,成绩 FROM 学生 INNER JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号=\

方法三:内部连接的INNER短语可以省略。(与方法二等价)

SELECT 姓名,成绩 FROM 学生 JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号=\ 2、查询订货管理数据库中数据的仓库号、城市、供应商名和地址信息。 方法一:使用简单连接格式。

SELECT 仓库.仓库号,城市,供应商名,地址 FROM 供应商,订购单,职工,仓库; WHERE 供应商.供应商号=订购单.供应商号 AND订购单.职工号=职工.职工号 ; AND 职工.仓库号=仓库.仓库号

方法二:使用超连接的内部连接格式。(注意连接条件的顺序)

SELECT 仓库.仓库号,城市,供应商名,地址 FROM 供应商 JOIN 订购单 JOIN 职工 JOIN 仓库 ;

ON 职工.仓库号=仓库.仓库号 ON 订购单.职工号=职工.职工号 ON 供应商.供应商号=订购单.供应商号

3、查询没有选修任何课程的学生姓名。

方法一:使用嵌套查询

SELECT 姓名 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 选课) 方法二:使用超连接的右连接。

SELECT 姓名 FROM 选课 RIGHT JOIN 学生 ON 选课.学号=学生.学号 WHERE 选课.学号<>学生.学号

方法三:使用超连接的左连接。(注意表名顺序和方法二的不同)

SELECT 姓名 FROM 学生 LEFT JOIN 选课 ON 选课.学号=学生.学号 WHERE 选课.学号<>学生.学号

三、嵌套查询

(一)普通嵌套与谓词EXISTS

1、列出选修汇编语言课的学生的学号。 方法一:

SELECT 学号 FROM 选课 WHERE 课号=(SELECT 课号 FROM 课程 WHERE 课名=\汇编语言\

方法二:使用谓词EXISTS。注意和方法一格式上的不同。

SELECT 学号 FROM 选课 WHERE EXIST (SELECT * FROM 课程 ; WHERE 课名=\汇编语言\选课.课号=课程.课号) 2、求软件专业所有必修课的课程信息。 方法一:

SELECT * FROM 课程 WHERE 课号 IN; (SELECT 课号 FROM 必修课 WHERE 必修专业=\软件\

方法二:

SELECT * FROM 课程 WHERE EXIST (SELECT * FROM 必修课 WHERE 必修专业=\软件\

AND 课程.课号=必修课.课号) (二)量词ANY、SOME、ALL

1、求选修2号课的学生中,成绩比选修1号课的最低成绩要高的学生的学号和成绩。 方法一:

SELECT 学号,成绩 FROM 选课 WHERE 课号=\成绩>; (SELECT MIN(成绩) FROM 选课 WHERE 课号=\ 方法二:ANY等价于SOME,所以可将ANY换成SOME。

SELECT 学号,成绩 FROM 选课 WHERE 课号=\成绩>ANY ; (SELECT 成绩 FROM 选课 WHERE 课号=\

2、求选修2号课的学生中,成绩比选修1号课的任何学生的成绩都要高的那些学生的学号和成绩。

方法一:

SELECT 学号,成绩 FROM 选课 WHERE 课号=\成绩>; (SELECT MAX(成绩) FROM 选课 WHERE 课号=\ 方法二:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库SQL语句练习(2)在线全文阅读。

SQL语句练习(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/907898.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: