版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SQL语句强化练习题及答案一、简单查询1、列出全部学生的信息。SELECT * FROM 学生2、列出软件专业全部学生的学号及姓名。SELECT 学号,姓名 FROM 学生 WHERE 专业="软件"3、列出所有必修课的课号。SELECT DISTINCT 课号 FROM 必修课4、求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。SELECT 学号,成绩 FROM 选课 WHERE 课号="1" AND 成绩>80 ORDER BY 成绩 DESC5、列出非软件专业学生的名单。方法一:SELECT 姓名 FROM 学生 WHERE
2、专业<>"软件"方法二:SELECT 姓名 FROM 学生 WHERE NOT 专业="软件"方法三:SELECT 姓名 FROM 学生 WHERE 专业!="软件"6、查询成绩在7080分之间的学生选课得分情况方法一:SELECT * FROM 选课 WHERE 成绩>=70 AND 成绩<=80方法二:SELECT * FROM 选课 WHERE 成绩 BETWEEN 70 AND 80不在此范围内的查询:(注意写出和以下语句等价的语句)SELECT * FROM 选课 WHERE 成绩 NOT BETWE
3、EN 70 AND 807、列出选修1号课或3号课的全体学生的学号和成绩。方法一:SELECT 学号,成绩 FROM 选课 WHERE 课号="1" OR 课号="3"方法二:SELECT 学号,成绩 FROM 选课 WHERE 课号 IN ("1","3")相反条件查询:SELECT 学号,成绩 FROM 选课 WHERE 课号 NOT IN ("1","3")8、列出所有98级学生的学生成绩情况。SELECT * FROM 选课 WHERE 学号 LIKE "9
4、8%"SELECT * FROM 选课 WHERE 学号 LIKE "98_ _ _ _"相反条件查询:SELECT * FROM 选课 WHERE 学号 NOT LIKE "98%"9、列出成绩为空值(或不为空值)的学生的学号和课号。答案一:SELECT 学号,课号 FROM 选课 WHERE 成绩 IS NULL答案二:SELECT 学号,课号 FROM 选课 WHERE 成绩 IS NOT NULL10、求出所有学生的总成绩。SELECT SUM(成绩) AS 总成绩 FROM 选课11、列出每个学生的平均成绩。SELECT 学号,AVG
5、(成绩) 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,选课
6、 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
7、 选课 X,选课 Y WHERE X.学号=Y.学号 AND X.课号="1" AND Y.课号="2"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代码应该存放外币代码,所以插入时要做相应
8、的改动,外币名称与外向代码的对应关系存储在“外汇代码”表中。SELECT A.外币代码 AS 币种1代码,B.外币代码 AS 币种2代码,;买入价,卖出价 FROM 外汇代码 A,外汇汇率,外汇代码 B;WHERE A.外币名称=外汇汇率.币种1 AND B.外币名称=外汇汇率.币种2 INTO TABLE rate4、假定有“雇员”表(雇员号 C(2),雇员姓名 C(6),经理号 C(2),根据雇员关系列出上一级经理及其所领导的职员清单。(教案中的例题)SELECT "领导",S.雇员姓名,"雇员",E.雇员姓名 FROM 雇员 S,雇员 E WHER
9、E S.雇员号=E.经理(三)超连接1、列出选修1号课的学生姓名及成绩。方法一:(使用简单连接查询格式)SELECT 姓名,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课号="1"方法二:(使用内部连接格式)SELECT 姓名,成绩 FROM 学生 INNER JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号="1" 方法三:内部连接的INNER短语可以省略。(与方法二等价)SELECT 姓名,成绩 FROM 学生 JOIN 选课 ON 学生.学号=选课.学号 WHERE 课号="1"2、查询
10、订货管理数据库中数据的仓库号、城市、供应商名和地址信息。方法一:使用简单连接格式。SELECT 仓库.仓库号,城市,供应商名,地址 FROM 供应商,订购单,职工,仓库;WHERE 供应商.供应商号=订购单.供应商号 AND订购单.职工号=职工.职工号 ;AND 职工.仓库号=仓库.仓库号方法二:使用超连接的内部连接格式。(注意连接条件的顺序)SELECT 仓库.仓库号,城市,供应商名,地址 FROM 供应商 JOIN 订购单 JOIN 职工 JOIN 仓库 ;ON 职工.仓库号=仓库.仓库号 ON 订购单.职工号=职工.职工号 ON 供应商.供应商号=订购单.供应商号3、查询没有选修任何课程
11、的学生姓名。方法一:使用嵌套查询SELECT 姓名 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 选课)方法二:使用超连接的右连接。SELECT 姓名 FROM 选课 RIGHT JOIN 学生 ON 选课.学号=学生.学号 WHERE 选课.学号<>学生.学号方法三:使用超连接的左连接。(注意表名顺序和方法二的不同)SELECT 姓名 FROM 学生 LEFT JOIN 选课 ON 选课.学号=学生.学号 WHERE 选课.学号<>学生.学号三、嵌套查询(一)普通嵌套与谓词EXISTS1、列出选修汇编语言课的学生的学号。方法一:SEL
12、ECT 学号 FROM 选课 WHERE 课号=(SELECT 课号 FROM 课程 WHERE 课名="汇编语言") 方法二:使用谓词EXISTS。注意和方法一格式上的不同。SELECT 学号 FROM 选课 WHERE EXIST (SELECT * FROM 课程 ;WHERE 课名="汇编语言" AND 选课.课号=课程.课号)2、求软件专业所有必修课的课程信息。方法一:SELECT * FROM 课程 WHERE 课号 IN; (SELECT 课号 FROM 必修课 WHERE 必修专业="软件") 方法二:SELECT *
13、 FROM 课程 WHERE EXIST (SELECT * FROM 必修课 WHERE 必修专业="软件" ; AND 课程.课号=必修课.课号)(二)量词ANY、SOME、ALL1、求选修2号课的学生中,成绩比选修1号课的最低成绩要高的学生的学号和成绩。方法一:SELECT 学号,成绩 FROM 选课 WHERE 课号="2" AND 成绩>(SELECT MIN(成绩) FROM 选课 WHERE 课号="1")方法二:ANY等价于SOME,所以可将ANY换成SOME。SELECT 学号,成绩 FROM 选课 WHERE
14、 课号="2" AND 成绩>ANY ;(SELECT 成绩 FROM 选课 WHERE 课号="1")2、求选修2号课的学生中,成绩比选修1号课的任何学生的成绩都要高的那些学生的学号和成绩。 方法一:SELECT 学号,成绩 FROM 选课 WHERE 课号="2" AND 成绩>(SELECT MAX(成绩) FROM 选课 WHERE 课号="1")方法二:SELECT 学号,成绩 FROM 选课 WHERE 课号="2" AND 成绩>ALL ;(SELECT 成绩 F
15、ROM 选课 WHERE 课号="1")(三)内外层互相关嵌套(外层依赖于内层的查询结果,内层依赖于外层来进一步查询)1、列出每门课程中成绩最高的选课信息。SELECT * FROM 选课 A WHERE 成绩=(SELECT MAX(成绩) FROM 选课 B WHERE A.课号=B.课号)2、列出每个学生中成绩低于本人平均成绩的选课信息。SELECT * FROM 选课 A WHERE 成绩<(SELECT AVG(成绩) FROM 选课 B WHERE A.学号=B.学号)3、列出表“订购单2.dbf”(其内容就是在订购单表的基础上增加一个总金额字段)中每个职
16、工经手的具有最高总金额的订购单信息。(教案中例题)SELECT out.职工号,out.供应商号,out.订货单号,out.订货日期,out.总金额;FROM 订购单 out WHERE 总金额=(SELECT MAX(总金额) FROM 订购单 inner1;Where out.职工号=inner1.职工号)四、操作功能1、在课程表中插入新的元组(5,大学英语)。INSERT INTO 课程(课号,课名) VALUES("5","大学英语")ALTER TABLE 课程1 ALTER 开课学期 SET DEFAULT "1"4、删除
17、“课程1”表中的开课学期字段。修改课程名字段为“课名”字段。 ALTER TABLE 课程1 DROP 开课学期 RENAME 课程名 TO 课名5、在“学生1”表的“年龄”字段上建立候选索引。ALTER TABLE 学生1 ADD UNIQUE 年龄 TAG 年龄6、在“学生1”表中添加一个出生日期字段,删除年龄字段。ALTER TABLE 学生1 ADD 出生日期 DALTER TABLE 学生1 DROP UNIQUE TAG 年龄 DROP 年龄七、补充练习利用订货管理数据库中表数据,用SQL完成查询。1、检索在北京的供应商的名称。SELECT 供应商名 FROM 供应商 WHERE
18、地址="北京"2、检索出向供应商S3发过订购单的职工的职工号和仓库号。 方法一(嵌套查询):SELECT 职工号,仓库号 FROM 职工 WHERE 职工号 IN;(SELECT 职工号 FROM 订购单 WHERE 供应商号="S3")方法二(连接查询):SELECT 职工.职工号,仓库号 FROM 职工,订购单 ;WHERE 职工.职工号=订购单.职工号 AND 供应商号="S3"3、检索出和职工E1、E3都有联系的北京的供应商信息。SELECT * FROM 供应商 WHERE 地址="北京" AND 供应商号 IN;(SELECT 供应商号 FROM 订购单 WHERE 职工号="E1") AND 供应商号 IN;(SELECT 供应商号 FROM 订购单 WHERE 职工号="E3")4、检索出向S4供应商发出订购单的仓库所在的城市。SELECT 城市 FROM 仓库,职工,订购单 WHERE 仓库.仓库号=职工.仓库号 ;AND 职工.职工号=订购单.职工号 AND 供应商号="S4"5、检索出由工资多于1230元的职工向北京的供应商发出的订购单号。SELECT 订货单号 FROM 职工,订购单,供应商 WHERE 职工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海医疗考试题型及答案
- 2026五年级数学上册 用字母表示数
- 中国地理环境与资源保护考试及答案
- 2026九年级上语文评价技巧指导方法
- 体育俱乐部会员制度
- 专转本电子试题及答案
- 人口普查入户调查制度
- 五级三阶制奖金制度
- 客运诚信建设奖惩制度
- 学校花样跳绳队奖惩制度
- 乡镇卫生健康知识培训班课件
- 马克思宗教观课件
- GB/T 17616-2025钢铁及合金牌号统一数字代号体系
- 2025年军考化学试卷真题及答案
- 鲁交安A、B、C证题库
- 【《基于遗传算法的多车型运输路径优化实证研究》15000字(论文)】
- 维吾尔医常见病诊疗指南
- 2025运政业务考试题库及答案
- 升降车安全操作培训课件
- 药品经营法规培训
- 如何教学幼儿跑酷课件
评论
0/150
提交评论