内容正文:
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第60卷,为专题训练卷,按“查询”专题范围和要求编写。具体内容为:(1)了解查询的概念。(2)掌握查询条件表达式的表示方法;(3)理解使用查询向导创建查询。(4)掌握使用查询设计视图创建简单查询;(5)掌握参数查询、计算查询和汇总查询。(6)掌握更新查询、追加查询、删除查询和生成表查询。(7)掌握SQL查询的应用。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第60卷 专题训练——查询
(考试时间:45分钟 满分:100分)
一、选择题(共25题,每题2分,共50分)
1.在Access中,需要按指定字段和条件查看数据时,应建立( )
A.报表标题
B.查询对象
C.表格主键
D.窗体控件
【答案】B
【解析】查询用于从一个或多个数据源中按照需要选择、筛选或组织数据,通常不会改变源表数据。
2.在学生表中只查看姓名和成绩两列,查询应主要设置( )
A.两个字段
B.两个主键
C.两个数据库
D.两个窗体
【答案】A
【解析】查询设计中选择需要显示的字段即可只返回姓名和成绩等指定列。
3.在查询设计视图中,用来限制记录显示范围的区域通常是( )
A.字段行
B.排序行
C.标题行
D.条件行
【答案】D
【解析】条件行用于输入筛选记录的表达式,只有满足条件的记录才会出现在结果中。
4.运行选择查询后,界面通常显示( )
A.被删除的源表
B.符合条件的记录集
C.新的用户账户
D.打印机驱动列表
【答案】A
【解析】选择查询根据字段和条件生成结果集,源表中的原始记录通常不会因此被删除。
5.若要筛选成绩不低于60分的记录,条件表达式应为( )
A.Score < 60
B.Score = 60
C.Score >= 60
D.Score <> 60
【答案】C
【解析】大于等于60应使用 >= 运算符,因此条件为 Score >= 60。
6.若只筛选C01班且成绩达到80分的学生,应使用( )
A.ClassID = 'C01' OR Score >= 80
B.ClassID <> 'C01' AND Score < 80
C.ClassID = 'C01' AND Score < 80
D.ClassID = 'C01' AND Score >= 80
【答案】D
【解析】两个条件必须同时满足,应使用AND连接ClassID = 'C01'和Score >= 80。
7.逻辑运算符OR的含义是( )
A.至少一个条件成立
B.两个条件都必须成立
C.两个条件都不能成立
D.只比较字段类型
【答案】A
【解析】OR表示多个条件中至少有一个成立即可满足整个逻辑条件。
8.条件表达式中的NOT通常用于( )
A.把文本转换成日期
B.自动建立主键
C.对条件结果取反
D.把记录复制到新表
【答案】C
【解析】NOT用于否定后面的逻辑条件,例如NOT (Score < 60)表示不满足成绩低于60。
9.若要筛选姓名以“张”开头的记录,使用Like时较合适的条件是( )
A.Name Like '张*'
B.Name Like '*张'
C.Name = '#张#'
D.Name > '张*'
【答案】A
【解析】在Access通配符中,*表示任意长度的字符序列,'张*'可匹配以张开头的姓名。
10.条件Score Between 60 And 90通常表示( )
A.成绩低于60或高于90分
B.成绩介于60和90含端点
C.成绩仅等于60和90两值
D.成绩按60和90两值分组
【答案】B
【解析】Between...And...表示值处于给定范围内,通常包括两个边界值。
11.若要找出未填写联系电话的学生,较合适的条件是( )
A.Phone无值
B.Phone为0
C.Phone为空文本
D.Phone不为0
【答案】A
【解析】NULL表示没有值,判断字段是否为空应使用IS NULL,而不是把NULL当作数字0。
12.若只保留已填写联系电话的记录,条件应为( )
A.Phone为空
B.Phone非空
C.Phone无值
D.Phone等于0
【答案】B
【解析】IS NOT NULL用于筛选字段中存在值的记录,适合判断联系电话已填写。
13.给Name字段设置精确文本条件“王强”,可写成( )
A.Name=王强
B.Name=#王强#
C.Name='王强'
D.Name=[王强]
【答案】C
【解析】SQL中的文本常量通常用单引号或符合语法要求的文本界定符括起,示例中使用单引号。
14.Score字段为数值型,条件值80在表达式中通常( )
A.必须写成文本常量
B.必须写成日期常量
C.可直接写数值
D.必须写成字段名称
【答案】C
【解析】数值型常量可直接参与比较,例如Score >= 80,不需要使用文本引号。
15.Access中日期型条件值通常使用( )界定
A.单引号
B.井号
C.圆括号
D.花括号
【答案】B
【解析】Access SQL中日期/时间常量通常使用井号界定,例如#2026-01-01#。
16.在查询设计网格中,同一条件行的两个限制通常要求( )
A.任一限制成立即可
B.两项限制均被忽略
C.只执行后一项限制
D.两项限制同时成立
【答案】D
【解析】同一行中的多个字段条件要求记录同时满足,逻辑上相当于AND。
17.在查询设计网格中,把两个条件分列到不同条件行,通常表示( )
A.两个条件同时成立
B.任一条件成立即可
C.字段自动设为主键
D.记录自动按日期删除
【答案】B
【解析】不同条件行通常表示满足其中任一行即可,逻辑上相当于OR。
18.通配符?在Access条件中通常表示( )
A.任意长度的字符
B.一个数字字段
C.一个空值
D.一个字符
【答案】D
【解析】在常用Access通配符中,?表示任意单个字符,*表示任意长度的字符序列。
19.没有设置筛选条件的选择查询,通常会( )
A.返回选定字段的全部记录
B.删除数据表中的全部记录
C.只显示主键为空的记录
D.拒绝打开数据表查看记录
【答案】A
【解析】选择查询未设置条件时,会返回数据源中所有记录的指定字段。
20.要查询C02班且成绩处于70至90分的学生,条件应为( )
A.ClassID='C02' AND Score BETWEEN 70 AND 90
B.ClassID='C02' OR Score BETWEEN 70 AND 90
C.ClassID<>'C02' AND Score BETWEEN 70 AND 90
D.ClassID='C02' AND Score BETWEEN 0 AND 69
【答案】A
【解析】班级条件和成绩范围必须同时满足,应使用AND连接ClassID = 'C02'与Score Between 70 And 90。
21.若只查询ClassID为C01的记录,条件表达式可写为( )
A.ClassID <> 'C01'
B.ClassID = 'C01'
C.ClassID > 'C01'
D.ClassID IS NULL
【答案】B
【解析】等号用于匹配字段值,文本条件需用引号界定。
22.筛选成绩在80至90分之间且包含80和90,条件应写为( )
A.Score > 80 And Score < 90
B.Score < 80 Or Score > 90
C.Score Between 80 And 90
D.Score = 80 And 90
【答案】C
【解析】Between包含起止值,适合表示闭区间80到90。
23.Access的Like条件中,通配符*通常表示( )
A.恰好一个字符
B.一个数字
C.任意个字符
D.一个空值
【答案】C
【解析】星号可以匹配任意长度的字符序列。
24.若查询条件要求“班级为C01或C02”,应使用( )逻辑关系
A.AND
B.NOT
C.IS NULL
D.OR
【答案】D
【解析】两个班级满足其中一个即可,属于OR关系。
25.把查询结果按Score从高到低排列,应使用( )
A.ORDER BY Score ASC
B.WHERE Score DESC
C.GROUP BY Score DESC
D.ORDER BY Score DESC
【答案】D
【解析】ORDER BY指定排序字段,DESC表示降序。
二、简答题(共5题,每题6分,共30分)
1.阅读下面的学生数据和查询,写出查询结果并说明条件执行顺序。
CREATE TABLE Students (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER
);
INSERT INTO Students VALUES ('S01', '林晓', 'C01', 86);
INSERT INTO Students VALUES ('S02', '陈宇', 'C02', 78);
INSERT INTO Students VALUES ('S03', '吴涛', 'C01', 92);
INSERT INTO Students VALUES ('S04', '赵安', 'C03', 95);
SELECT StudentID, StudentName, Score
FROM Students
WHERE ClassID = 'C01' AND Score >= 90
ORDER BY Score DESC;
写出返回的记录,并说明WHERE和ORDER BY各自的作用。
【答案】返回记录:('S03', ' 吴涛 ', 92)
【解析】
1) WHERE 子句作用:从 Students 表中筛选满足班级为 C01 并且 分数≥90的原始数据行;
2) ·ORDER BY 子句作用:对 WHERE 筛选完成后的结果集,按照 Score 字段从高到低(降序)排序;
3) ·执行顺序:先执行 FROM 加载整张表 → 执行 WHERE 条件过滤有效行 → 最后执行 ORDER BY 对筛选后的结果排序,排序仅改变展示顺序,不修改数据表原始存储顺序。 原始数据中仅 S03 同时满足 ClassID='C01'、Score≥90,排序后仅此一条记录输出。
2.根据下面的表和查询目标补写WHERE子句。
CREATE TABLE Students (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER,
Phone TEXT(20)
);
SELECT StudentID, StudentName, Score
FROM Students
WHERE ______________________________
ORDER BY Score DESC;
目标:查询C01或C02班、成绩70至90分且电话已填写的学生。
【答案】
(ClassID = 'C01' OR ClassID = 'C02')
AND Score Between 70 And 90
AND Phone Is Not Null
【解析】
1) (ClassID = 'C01' OR ClassID = 'C02'):括号分组,匹配 C01 或 C02 任意一个班级;OR 代表满足任一条件即可;
2) Score Between 70 And 90:数值闭区间筛选,包含 70 分、90 分两端分数;
3) Phone Is Not Null:判断电话字段不为空,空值不能用=判断,必须搭配 IS / IS NOT NULL;
4) 逻辑优先级:括号提升内部 OR 优先级,三个大条件用 AND 连接,要求班级符合、分数区间、电话填写三者同时成立。
3.阅读下面的图书查询,分析通配符、逻辑运算符和数值条件。
CREATE TABLE Books (
BookID TEXT(10),
BookName TEXT(40),
Category TEXT(20),
Stock INTEGER
);
INSERT INTO Books VALUES ('B01', '数据库基础', '教材', 8);
INSERT INTO Books VALUES ('B02', '程序设计练习', '参考书', 0);
INSERT INTO Books VALUES ('B03', '网络基础', '教材', 5);
SELECT BookID, BookName
FROM Books
WHERE BookName Like '*数据*'
AND (Category = '教材' OR Category = '参考书')
AND Stock > 0;
写出符合条件的图书,并解释LIKE、星号、括号和Stock > 0的作用。
【答案】符合条件图书记录:('B01', ' 数据库基础 ')
【解析】
1) LIKE '*数据*':模糊匹配关键字,Access 中通配符*代表任意长度任意字符;含义匹配书名中包含 “数据” 二字的记录;
2) (Category = '教材' OR Category = '参考书'):括号分组,图书分类为教材、参考书二者其一;
3) Stock > 0:数值条件,要求库存数量大于 0,排除无库存书籍;
4) 逐条校验数据:B01 书名含 “数据”、分类教材、库存 8>0,全部满足;B02 无 “数据”、库存 0;B03 不含 “数据”,均不满足筛选条件。
4.阅读下面的成绩表和查询,写出查询结果并判断Between的边界。
CREATE TABLE Exams (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER
);
INSERT INTO Exams VALUES ('S01', '林晓', 'C01', 76);
INSERT INTO Exams VALUES ('S02', '陈宇', 'C02', 88);
INSERT INTO Exams VALUES ('S03', '吴涛', 'C01', 91);
SELECT StudentName, Score
FROM Exams
WHERE Score Between 80 And 90
ORDER BY Score ASC;
写出查询结果,并说明80和90是否包含在查询范围内。
【答案】输出记录:(' 陈宇 ', 88)
【解析】
1) Between 80 And 90为闭区间,包含边界值 80、90;仅分数落在 80~90(含两端)的记录会被筛选;
2) 原始成绩校验:林晓 76(小于 80,排除)、陈宇 88(区间内)、吴涛 91(大于 90,排除);仅陈宇符合条件;
3) ORDER BY Score ASC:对筛选结果按分数从小到大升序排列,本题仅一条结果,排序无视觉变化。
5.根据下面的查询设计网格要求写出完整WHERE子句,并说明括号作用。
CREATE TABLE Tasks (
TaskID TEXT(10),
Dept TEXT(20),
Amount DOUBLE,
FinishDate DATETIME
);
SELECT TaskID, Dept, Amount
FROM Tasks
WHERE ______________________________
ORDER BY Amount DESC;
财务部任务金额不低于500,或技术部任务金额在300至600之间;两类任务都要求FinishDate为空。
【答案】
(Dept = '财务部' AND Amount >= 500
AND FinishDate Is Null)
OR (Dept = '技术部'
AND Amount Between 300 And 600
AND FinishDate Is Null)
【解析】
1) 括号作用:划分两组独立业务条件,规避 AND 运算优先级高于 OR 带来的逻辑错误;
2) 第一组括号:财务部任务,同时满足金额≥500、完成日期为空;
3) 第二组括号:技术部任务,同时满足金额 300~600(含两端)、完成日期为空;
4) 外层 OR:两组条件满足任意一组即可;所有记录必须统一满足 FinishDate 为空,分组写在括号内保证逻辑完整。
三、案例分析题(共1题,共10分)
1.某校要查询C01或C02班且成绩不低于80分的学生,下面的SQL存在逻辑优先级问题。请找出错误并改正。
【答案】
CREATE TABLE Students (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER
);
INSERT INTO Students VALUES ('S01', '林晓', 'C01', 86);
INSERT INTO Students VALUES ('S02', '陈宇', 'C02', 78);
INSERT INTO Students VALUES ('S03', '吴涛', 'C02', 92);
INSERT INTO Students VALUES ('S04', '赵安', 'C03', 95);
SELECT StudentID, StudentName, ClassID, Score
FROM Students
WHERE ClassID = 'C01' OR ClassID = 'C02'
AND Score >= 80
ORDER BY Score DESC;
说明当前条件可能产生的错误结果,写出修正后的WHERE子句,并解释括号、AND和OR的作用。
SELECT StudentID, StudentName, ClassID, Score
FROM Students
WHERE (ClassID = 'C01' OR ClassID = 'C02')
AND Score >= 80
ORDER BY Score DESC;
原式中AND优先于OR,C01班条件可能绕过成绩限制;括号把两个班级条件组成一组,再与成绩条件同时成立。结果为S03、S01。
四、综合应用题(共1题,共10分)
1.建立成绩查询数据库,综合使用OR、AND、Between、IS NOT NULL、计算字段和排序完成查询。
【答案】
CREATE TABLE Students (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER,
Phone TEXT(20)
);
SELECT StudentID, StudentName, ClassID, Score,
Score + 5 AS FinalScore
FROM Students
WHERE (ClassID = 'C01' OR ClassID = 'C02')
AND Score Between 70 And 90
AND Phone Is Not Null
ORDER BY FinalScore DESC;
学生样例:
S01 林晓 C01 86 13800000001
S02 陈宇 C02 78 13800000002
S03 吴涛 C01 92 NULL
S04 赵安 C03 88 13800000004
S05 周宁 C02 90 13800000005
任务:
①建立Students表并录入五条记录;
②查询C01或C02班;
③筛选成绩70至90分且电话非空;
④计算Score+5为FinalScore;
⑤按FinalScore降序排列并说明结果。
SQL应体现括号分组、闭区间、非空判断、计算字段和排序字段。
CREATE TABLE Students (
StudentID TEXT(10) PRIMARY KEY,
StudentName TEXT(20) NOT NULL,
ClassID TEXT(5) NOT NULL,
Score INTEGER,
Phone TEXT(20)
);
INSERT INTO Students VALUES ('S01', '林晓', 'C01', 86, '13800000001');
INSERT INTO Students VALUES ('S02', '陈宇', 'C02', 78, '13800000002');
INSERT INTO Students VALUES ('S03', '吴涛', 'C01', 92, NULL);
INSERT INTO Students VALUES ('S04', '赵安', 'C03', 88, '13800000004');
INSERT INTO Students VALUES ('S05', '周宁', 'C02', 90, '13800000005');
SELECT StudentID, StudentName, ClassID, Score,
Score + 5 AS FinalScore
FROM Students
WHERE (ClassID = 'C01' OR ClassID = 'C02')
AND Score Between 70 And 90
AND Phone Is Not Null
ORDER BY FinalScore DESC;
【解析】符合条件的是S05、S01、S02,FinalScore分别为95、91、83;括号确定班级范围,Between包含边界,IS NOT NULL排除无电话记录。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第60卷,为专题训练卷,按“查询”专题范围和要求编写。具体内容为:(1)了解查询的概念。(2)掌握查询条件表达式的表示方法;(3)理解使用查询向导创建查询。(4)掌握使用查询设计视图创建简单查询;(5)掌握参数查询、计算查询和汇总查询。(6)掌握更新查询、追加查询、删除查询和生成表查询。(7)掌握SQL查询的应用。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第60卷 专题训练——查询
(考试时间:45分钟 满分:100分)
一、选择题(共25题,每题2分,共50分)
1.在Access中,需要按指定字段和条件查看数据时,应建立( )
A.报表标题
B.查询对象
C.表格主键
D.窗体控件
2.在学生表中只查看姓名和成绩两列,查询应主要设置( )
A.两个字段
B.两个主键
C.两个数据库
D.两个窗体
3.在查询设计视图中,用来限制记录显示范围的区域通常是( )
A.字段行
B.排序行
C.标题行
D.条件行
4.运行选择查询后,界面通常显示( )
A.被删除的源表
B.符合条件的记录集
C.新的用户账户
D.打印机驱动列表
5.若要筛选成绩不低于60分的记录,条件表达式应为( )
A.Score < 60
B.Score = 60
C.Score >= 60
D.Score <> 60
6.若只筛选C01班且成绩达到80分的学生,应使用( )
A.ClassID = 'C01' OR Score >= 80
B.ClassID <> 'C01' AND Score < 80
C.ClassID = 'C01' AND Score < 80
D.ClassID = 'C01' AND Score >= 80
7.逻辑运算符OR的含义是( )
A.至少一个条件成立
B.两个条件都必须成立
C.两个条件都不能成立
D.只比较字段类型
8.条件表达式中的NOT通常用于( )
A.把文本转换成日期
B.自动建立主键
C.对条件结果取反
D.把记录复制到新表
9.若要筛选姓名以“张”开头的记录,使用Like时较合适的条件是( )
A.Name Like '张*'
B.Name Like '*张'
C.Name = '#张#'
D.Name > '张*'
10.条件Score Between 60 And 90通常表示( )
A.成绩低于60或高于90分
B.成绩介于60和90含端点
C.成绩仅等于60和90两值
D.成绩按60和90两值分组
11.若要找出未填写联系电话的学生,较合适的条件是( )
A.Phone无值
B.Phone为0
C.Phone为空文本
D.Phone不为0
12.若只保留已填写联系电话的记录,条件应为( )
A.Phone为空
B.Phone非空
C.Phone无值
D.Phone等于0
13.给Name字段设置精确文本条件“王强”,可写成( )
A.Name=王强
B.Name=#王强#
C.Name='王强'
D.Name=[王强]
14.Score字段为数值型,条件值80在表达式中通常( )
A.必须写成文本常量
B.必须写成日期常量
C.可直接写数值
D.必须写成字段名称
15.Access中日期型条件值通常使用( )界定
A.单引号
B.井号
C.圆括号
D.花括号
16.在查询设计网格中,同一条件行的两个限制通常要求( )
A.任一限制成立即可
B.两项限制均被忽略
C.只执行后一项限制
D.两项限制同时成立
17.在查询设计网格中,把两个条件分列到不同条件行,通常表示( )
A.两个条件同时成立
B.任一条件成立即可
C.字段自动设为主键
D.记录自动按日期删除
18.通配符?在Access条件中通常表示( )
A.任意长度的字符
B.一个数字字段
C.一个空值
D.一个字符
19.没有设置筛选条件的选择查询,通常会( )
A.返回选定字段的全部记录
B.删除数据表中的全部记录
C.只显示主键为空的记录
D.拒绝打开数据表查看记录
20.要查询C02班且成绩处于70至90分的学生,条件应为( )
A.ClassID='C02' AND Score BETWEEN 70 AND 90
B.ClassID='C02' OR Score BETWEEN 70 AND 90
C.ClassID<>'C02' AND Score BETWEEN 70 AND 90
D.ClassID='C02' AND Score BETWEEN 0 AND 69
21.若只查询ClassID为C01的记录,条件表达式可写为( )
A.ClassID <> 'C01'
B.ClassID = 'C01'
C.ClassID > 'C01'
D.ClassID IS NULL
22.筛选成绩在80至90分之间且包含80和90,条件应写为( )
A.Score > 80 And Score < 90
B.Score < 80 Or Score > 90
C.Score Between 80 And 90
D.Score = 80 And 90
23.Access的Like条件中,通配符*通常表示( )
A.恰好一个字符
B.一个数字
C.任意个字符
D.一个空值
24.若查询条件要求“班级为C01或C02”,应使用( )逻辑关系
A.AND
B.NOT
C.IS NULL
D.OR
25.把查询结果按Score从高到低排列,应使用( )
A.ORDER BY Score ASC
B.WHERE Score DESC
C.GROUP BY Score DESC
D.ORDER BY Score DESC
二、简答题(共5题,每题6分,共30分)
1.阅读下面的学生数据和查询,写出查询结果并说明条件执行顺序。
CREATE TABLE Students (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER
);
INSERT INTO Students VALUES ('S01', '林晓', 'C01', 86);
INSERT INTO Students VALUES ('S02', '陈宇', 'C02', 78);
INSERT INTO Students VALUES ('S03', '吴涛', 'C01', 92);
INSERT INTO Students VALUES ('S04', '赵安', 'C03', 95);
SELECT StudentID, StudentName, Score
FROM Students
WHERE ClassID = 'C01' AND Score >= 90
ORDER BY Score DESC;
写出返回的记录,并说明WHERE和ORDER BY各自的作用。
查询先按条件筛选记录,再按指定字段排序;排序不会改变表中原始记录的存储顺序。
2.根据下面的表和查询目标补写WHERE子句。
CREATE TABLE Students (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER,
Phone TEXT(20)
);
SELECT StudentID, StudentName, Score
FROM Students
WHERE ______________________________
ORDER BY Score DESC;
目标:查询C01或C02班、成绩70至90分且电话已填写的学生。
多条件表达式要根据业务逻辑分组;OR表示满足任一条件,AND表示同时满足,空值必须用IS NULL或IS NOT NULL判断。
3.阅读下面的图书查询,分析通配符、逻辑运算符和数值条件。
CREATE TABLE Books (
BookID TEXT(10),
BookName TEXT(40),
Category TEXT(20),
Stock INTEGER
);
INSERT INTO Books VALUES ('B01', '数据库基础', '教材', 8);
INSERT INTO Books VALUES ('B02', '程序设计练习', '参考书', 0);
INSERT INTO Books VALUES ('B03', '网络基础', '教材', 5);
SELECT BookID, BookName
FROM Books
WHERE BookName Like '*数据*'
AND (Category = '教材' OR Category = '参考书')
AND Stock > 0;
写出符合条件的图书,并解释LIKE、星号、括号和Stock > 0的作用。
文本模糊匹配与分类条件组合时,应使用通配符和括号明确逻辑范围,数值条件直接比较字段值。
4.阅读下面的成绩表和查询,写出查询结果并判断Between的边界。
CREATE TABLE Exams (
StudentID TEXT(10),
StudentName TEXT(20),
ClassID TEXT(5),
Score INTEGER
);
INSERT INTO Exams VALUES ('S01', '林晓', 'C01', 76);
INSERT INTO Exams VALUES ('S02', '陈宇', 'C02', 88);
INSERT INTO Exams VALUES ('S03', '吴涛', 'C01', 91);
SELECT StudentName, Score
FROM Exams
WHERE Score Between 80 And 90
ORDER BY Score ASC;
写出查询结果,并说明80和90是否包含在查询范围内。
范围条件要注意边界是否包含;Access中的Between...And通常表示从起始值到结束值的闭区间。
5.根据下面的查询设计网格要求写出完整WHERE子句,并说明括号作用。
CREATE TABLE Tasks (
TaskID TEXT(10),
Dept TEXT(20),
Amount DOUBLE,
FinishDate DATETIME
);
SELECT TaskID, Dept, Amount
FROM Tasks
WHERE ______________________________
ORDER BY Amount DESC;
财务部任务金额不低于500,或技术部任务金额在300至600之间;两类任务都要求FinishDate为空。
复杂条件应先按业务对象分组,再用OR连接组,用AND连接同一组内必须同时满足的条件。
三、案例分析题(共1题,共10分)
1.某校要查询C01或C02班且成绩不低于80分的学生,下面的SQL存在逻辑优先级问题。请找出错误并改正。
SELECT StudentID, StudentName, ClassID, Score
FROM Students
WHERE (ClassID = 'C01' OR ClassID = 'C02')
AND Score >= 80
ORDER BY Score DESC;
原式中AND优先于OR,C01班条件可能绕过成绩限制;括号把两个班级条件组成一组,再与成绩条件同时成立。结果为S03、S01。
四、综合应用题(共1题,共10分)
1.建立成绩查询数据库,综合使用OR、AND、Between、IS NOT NULL、计算字段和排序完成查询。
CREATE TABLE Students (
StudentID TEXT(10) PRIMARY KEY,
StudentName TEXT(20) NOT NULL,
ClassID TEXT(5) NOT NULL,
Score INTEGER,
Phone TEXT(20)
);
INSERT INTO Students VALUES ('S01', '林晓', 'C01', 86, '13800000001');
INSERT INTO Students VALUES ('S02', '陈宇', 'C02', 78, '13800000002');
INSERT INTO Students VALUES ('S03', '吴涛', 'C01', 92, NULL);
INSERT INTO Students VALUES ('S04', '赵安', 'C03', 88, '13800000004');
INSERT INTO Students VALUES ('S05', '周宁', 'C02', 90, '13800000005');
SELECT StudentID, StudentName, ClassID, Score,
Score + 5 AS FinalScore
FROM Students
WHERE (ClassID = 'C01' OR ClassID = 'C02')
AND Score Between 70 And 90
AND Phone Is Not Null
ORDER BY FinalScore DESC;
符合条件的是S05、S01、S02,FinalScore分别为95、91、83;括号确定班级范围,Between包含边界,IS NOT NULL排除无电话记录。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$