- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL语句强化练习题及答案一、简单查询
1、列出全部学生的信息。
SELECT * FROM 学生
2、列出软件专业全部学生的学号及姓名。
SELECT 学号,姓名 FROM 学生 WHERE 专业=软件
3、列出所有必修课的课号。
4、求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。
5、列出非软件专业学生的名单。
方法一:
方法二:
方法三:
6、查询成绩在70~80分之间的学生选课得分情况
方法一:方法二:
不在此范围内的查询:(注意写出和以下语句等价的语句)
7、列出选修1号课或3号课的全体学生的学号和成绩。
方法一:方法二:
相反条件查询:
8、列出所有级学生的学生成绩情况。
SELECT * FROM 选课 WHERE 学号 LIKE %
SELECT * FROM 选课 WHERE 学号 LIKE _ _ _ _ _ _
相反条件查询:SELECT * FROM 选课 WHERE 学号 NOT LIKE %
9、列出成绩为空值(或不为空值)的学生的学号和课号。
答案一:SELECT 学号,课号 FROM 选课 WHERE 成绩 IS NULL
答案二:SELECT 学号,课号 FROM 选课 WHERE 成绩 IS NOT NULL
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 课号=1
2、列出选修1号课的学生的学号、姓名及成绩。
SELECT .学号,姓名,成绩 FROM 学生 S,选课 X WHERE S.学号=X.学号 AND 课号=1
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.课号=1AND Y.课号=2
(三)超连接
1、列出选修1号课的学生姓名及成绩。
方法一:(使用简单连接查询格式)
SELECT 姓名,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课号=1
方法二:(使用内部连接格式)
SELECT 姓名,成绩 FROM 学生 INNER JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号=1
方法三:内部连接的INNER短语可以省略。(与方法二等价)
SELECT 姓名,成绩 FROM 学生 JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号=1
2、查询没有选修任何课程的学生姓名。
方法一:使用嵌套查询
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。注意和方法一格式上的不同。
(二)量词ANY、SOME、ALL
1、求选修2号课的学生中,成绩比选修1号课的最低成绩要高的学生的学号和成绩。
方法一:
SELECT 学号,成绩 FROM 选课 WHERE 课号=2 AND 成绩
(SELECT MIN(成绩) F
文档评论(0)