内容正文:
举一反三考点练
《数据库原理与应用技术-MySQL》数据查询-课后自测
知识点一 数据查询
1.假设student有 4 个字段,SELECT * FROM student;和SELECT id, name, gender, age FROM student;()返回结果完全相同。( )
【答案】√
2.WHERE子句中,AND的优先级高于OR,因此a OR b AND c等价于(a OR b) AND c。( )
【答案】×
【解析】AND优先级更高,a OR b AND c等价于a OR (b AND c),而非(a OR b) AND c。
3.查询字符串类型的字段时,条件值必须用单引号括起。( )
【答案】√
【解析】字符串和日期类型的条件值需用单引号,数值类型可不用(如age = 20)。
4.SELECT name FROM student WHERE age BETWEEN 18 TO 22;是正确的范围查询语句。( )
【答案】×
【解析】范围查询的关键字是BETWEEN ... AND ...,而非BETWEEN ... TO ...,正确语句为age BETWEEN 18 AND 22。
5.SELECT id, name FROM student WHERE gender = '男' AND gender = '女';会返回所有学生记录。( )
【答案】×
【解析】gender不可能同时为 “男” 和 “女”,条件恒为假,返回空结果。
6.SELECT语句中,字段名之间必须用逗号分隔,且最后一个字段后不能有逗号。( )
【答案】√
【解析】字段列表格式为 “字段 1, 字段 2, ..., 字段 n”,最后一个字段后加逗号会报错。
7.SELECT sid FROM score WHERE score IN (80, 90, 100);表示查询分数为 80、90 或 100 的学生 ID。( )
【答案】√
【解析】IN用于判断值是否在指定集合中,此处正确筛选分数为 80、90、100 的记录。
8.NULL值表示 “0” 或 “空字符串”,因此WHERE age = 0和WHERE age IS NULL效果相同。( )
【答案】×
【解析】NULL表示 “未知”,与 “0”“空字符串” 不同,age IS NULL和age = 0是完全不同的条件。
9.SELECT name, age + 1 AS new_age FROM student;表示查询姓名和 “年龄 + 1” 的结果。( )
【答案】√
【解析】SELECT中可对字段进行运算,结果用别名显示,此处正确。
10.SELECT * FROM student WHERE major = '计算机' WHERE age > 20;是正确的多条件查询语句。( )
【答案】×
【解析】一个SELECT语句中只能有一个WHERE子句,多条件需用AND/OR组合,正确语句为WHERE major = '计算机' AND age > 20。
11.查询teacher表中所有字段的 SQL 语句是:SELECT ______ FROM teacher;
【答案】*
12.查询product表中 “类别(category)为‘电子产品’且库存(stock)大于 100” 的商品名称和价格,WHERE条件为:WHERE category = '电子产品' ______ stock ______ 100;
【答案】AND;>
13.查询order表中 “订单日期(order_date)在 2023-05-01 到 2023-05-31 之间” 的订单号,条件表达式为:order_date ______ '2023-05-01' ______ '2023-05-31'
【答案】BETWEEN;AND
14.查询user表中 “邮箱(email)不为空” 的用户名,条件表达式为:email ______ ______ ______
【答案】IS NOT NULL
15.已知student表有id、name、gender、age字段,写出查询所有女生的姓名和年龄的 SQL 语句。
【答案】
SELECT name, age FROM student WHERE gender = '女';
16.已知book表有bid、bname、price、press字段,写出查询 “价格小于 50 元或出版社为‘清华出版社’” 的图书 ID 和名称的 SQL 语句。
【答案】
SELECT bid, bname FROM book WHERE price < 50 OR press = '清华出版社';
17.已知employee表有eid、ename、dept、salary字段,写出查询 “部门为‘技术部’且工资(salary)在 8000 到 10000 之间(含 8000 和 10000)” 的员工姓名和工资的 SQL 语句。
【答案】
SELECT ename, salary FROM employee WHERE dept = '技术部' AND salary BETWEEN 8000 AND 10000;
18.已知score表有sid、cid、score、exam_type(考试类型:期中 / 期末)字段,写出查询 “期末考且成绩不等于 0” 的学生 ID、课程 ID 和成绩的 SQL 语句。
【答案】
SELECT sid, cid, score FROM score WHERE exam_type = '期末' AND score <> 0;
19.已知customer表有cid、cname、phone、reg_date字段,写出查询 “注册日期在 2022-01-01 之前且手机号不为空” 的客户姓名和注册日期的 SQL 语句。
【答案】
SELECT cname, reg_date FROM customer WHERE reg_date < '2022-01-01' AND phone IS NOT NULL;
20.以下语句查询student表中 “年龄在 19 到 21 岁之间(含 19 和 21)且专业为‘英语’” 的学生 ID 和姓名,请补全:
SELECT id, name FROM student WHERE age ______ ______ ______ 19 ______ 21 AND major = '英语';
【答案】BETWEEN;AND
21.以下语句查询product表中 “类别(category)为‘服装’且价格大于 100 元” 的商品名称和类别,请补全字段列表:
SELECT bname , category FROM product WHERE ______ = '服装' ______ price > 100;
【答案】category;AND
22.以下语句查询order表中 “订单状态(status)为‘待发货’或‘待付款’” 的订单号和状态,请补全条件:
SELECT oid, status FROM `order` WHERE status ______ ('待发货', ______);
【答案】IN;' 待付款'
23.以下语句查询teacher表中 “性别为‘男’且教龄(years)大于 5 年” 的教师姓名和教龄,请补全逻辑运算符:
SELECT tname, years FROM teacher WHERE gender = '男' ______ years ______ 5;
【答案】AND;>
24.以下语句查询score表中 “成绩(score)为空或课程 ID(cid)为 101” 的学生 ID,请补全条件:
SELECT sid FROM score WHERE score ______ ______ cid = 101;
【答案】IS NULL OR
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
举一反三考点练
《数据库原理与应用技术-MySQL》数据查询-课后自测
知识点一 数据查询
1.假设student有 4 个字段,SELECT * FROM student;和SELECT id, name, gender, age FROM student;()返回结果完全相同。( )
2.WHERE子句中,AND的优先级高于OR,因此a OR b AND c等价于(a OR b) AND c。( )
3.查询字符串类型的字段时,条件值必须用单引号括起。( )
4.SELECT name FROM student WHERE age BETWEEN 18 TO 22;是正确的范围查询语句。( )
5.SELECT id, name FROM student WHERE gender = '男' AND gender = '女';会返回所有学生记录。( )
6.SELECT语句中,字段名之间必须用逗号分隔,且最后一个字段后不能有逗号。( )
7.SELECT sid FROM score WHERE score IN (80, 90, 100);表示查询分数为 80、90 或 100 的学生 ID。( )
8.NULL值表示 “0” 或 “空字符串”,因此WHERE age = 0和WHERE age IS NULL效果相同。( )
9.SELECT name, age + 1 AS new_age FROM student;表示查询姓名和 “年龄 + 1” 的结果。( )
10.SELECT * FROM student WHERE major = '计算机' WHERE age > 20;是正确的多条件查询语句。( )
11.查询teacher表中所有字段的 SQL 语句是:SELECT ______ FROM teacher;
12.查询product表中 “类别(category)为‘电子产品’且库存(stock)大于 100” 的商品名称和价格,WHERE条件为:WHERE category = '电子产品' ______ stock ______ 100;
13.查询order表中 “订单日期(order_date)在 2023-05-01 到 2023-05-31 之间” 的订单号,条件表达式为:order_date ______ '2023-05-01' ______ '2023-05-31'
14.查询user表中 “邮箱(email)不为空” 的用户名,条件表达式为:email ______ ______ ______
15.已知student表有id、name、gender、age字段,写出查询所有女生的姓名和年龄的 SQL 语句。
16.已知book表有bid、bname、price、press字段,写出查询 “价格小于 50 元或出版社为‘清华出版社’” 的图书 ID 和名称的 SQL 语句。
17.已知employee表有eid、ename、dept、salary字段,写出查询 “部门为‘技术部’且工资(salary)在 8000 到 10000 之间(含 8000 和 10000)” 的员工姓名和工资的 SQL 语句。
18.已知score表有sid、cid、score、exam_type(考试类型:期中 / 期末)字段,写出查询 “期末考且成绩不等于 0” 的学生 ID、课程 ID 和成绩的 SQL 语句。
19.已知customer表有cid、cname、phone、reg_date字段,写出查询 “注册日期在 2022-01-01 之前且手机号不为空” 的客户姓名和注册日期的 SQL 语句。
20.以下语句查询student表中 “年龄在 19 到 21 岁之间(含 19 和 21)且专业为‘英语’” 的学生 ID 和姓名,请补全:
SELECT id, name FROM student WHERE age ______ ______ ______ 19 ______ 21 AND major = '英语';
21.以下语句查询product表中 “类别(category)为‘服装’且价格大于 100 元” 的商品名称和类别,请补全字段列表:
SELECT bname , category FROM product WHERE ______ = '服装' ______ price > 100;
22.以下语句查询order表中 “订单状态(status)为‘待发货’或‘待付款’” 的订单号和状态,请补全条件:
SELECT oid, status FROM `order` WHERE status ______ ('待发货', ______);
23.以下语句查询teacher表中 “性别为‘男’且教龄(years)大于 5 年” 的教师姓名和教龄,请补全逻辑运算符:
SELECT tname, years FROM teacher WHERE gender = '男' ______ years ______ 5;
24.以下语句查询score表中 “成绩(score)为空或课程 ID(cid)为 101” 的学生 ID,请补全条件:
SELECT sid FROM score WHERE score ______ ______ cid = 101;
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$