(四)数据查询(1)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)

2025-11-03
| 6页
| 148人阅读
| 0人下载
精品

内容正文:

举一反三考点练 《数据库原理与应用技术-MySQL》数据查询-讲义 (四)数据查询 1. 掌握基本查询语句SELECT的使用; 2. 掌握单表查询的相关操作: a.查询所有字段:SELECT * FROM <表名> b.查询部分字段:SELECT <字段名1>[,字段名2,… ] FROM <表名> c.按条件查询:SELECT <字段名1>[,字段名2,… ] FROM <表名> WHERE <条件表达式> SELECT语句是数据查询的核心,用于从数据表中提取所需数据。单表查询是基础,主要包括查询所有字段、查询部分字段和按条件查询。 1. 查询所有字段 SELECT * FROM 表名; 作用:返回表中所有字段的所有记录(*表示 “所有字段”)。 示例: 查询student表的所有字段和记录: SELECT * FROM student; 注意: 效率较低:*会返回所有字段,包括不需要的字段,浪费资源,实际开发中建议指定所需字段。 字段顺序:返回字段的顺序与表定义时的字段顺序一致。 2.查询部分字段 语法: SELECT 字段名1, 字段名2, ... FROM 表名; 作用:返回指定字段的所有记录,减少数据传输量,提高效率。 示例: 查询student表中id、name、age字段的所有记录: SELECT id, name, age FROM student; 注意事项: 字段名之间用逗号分隔,最后一个字段后无逗号。 可通过AS为字段起别名。 3.按条件查询 语法: SELECT 字段列表 FROM 表名 WHERE 条件表达式; 作用:返回表中符合条件表达式的记录,实现数据筛选。 条件表达式的常用运算符: 运算符类型 具体运算符 / 关键字 说明 比较运算符 =(等于)、<>/!=(不等于)、>、<、>=、<= 用于数值、字符串、日期的比较(字符串和日期需用单引号括起,如name = '张三')。 逻辑运算符 AND(且)、OR(或)、NOT(非) 组合多个条件(AND优先级高于OR,可加括号改变优先级)。 范围运算符 BETWEEN ... AND ...(在范围内)、NOT BETWEEN ... AND ...(不在范围内) 用于数值或日期的范围判断(如age BETWEEN 18 AND 22等价于age >=18 AND age <=22)。 集合运算符 IN(在集合中)、NOT IN(不在集合中) 判断值是否在指定集合内(如gender IN ('男', '女'))。 空值判断 IS NULL(为空)、IS NOT NULL(不为空) 判断字段是否为NULL(不能用= NULL,NULL表示 “未知”,需用IS NULL)。 示例: ① 查询student表中年龄大于 18 的女生的name和age: SELECT name, age FROM student WHERE age > 18 AND gender = '女'; ② 查询score表中分数在 80 到 100 之间(含 80 和 100)的sid和score: SELECT sid, score FROM score WHERE score BETWEEN 80 AND 100; 1.已知student表结构如下: 字段名 类型 说明 id INT 学号(主键) name VARCHAR(20) 姓名 gender CHAR(1) 性别(男 / 女) age INT 年龄 major VARCHAR(30) 专业 请写出查询 “计算机专业中年龄在 20 到 22 岁(含 20 和 22 岁)的男生姓名和年龄” 的 SQL 语句。 【答案】 SELECT name, age FROM student WHERE major = '计算机' AND gender = '男' AND age BETWEEN 20 AND 22; 【解析】 SELECT name, age:指定返回 “姓名” 和 “年龄” 字段; FROM student:从student表查询; WHERE子句组合三个条件: major = '计算机':专业为 “计算机”(字符串用单引号); gender = '男':性别为 “男”; age BETWEEN 20 AND 22:年龄在 20 到 22 岁之间(等价于age >=20 AND age <=22); 条件间用AND连接,表示 “同时满足”。 1.(判断题)SELECT id, name FROM student WHERE age > 18 OR gender = '女' AND major = '中文';与SELECT id, name FROM student WHERE (age > 18 OR gender = '女') AND major = '中文';查询结果相同。( ) 【答案】× 【解析】逻辑运算符中AND优先级高于OR,第一个语句等价于age > 18 OR (gender = '女' AND major = '中文'),与第二个语句(先算括号内的OR)条件不同,结果不同。 2.(填空题)查询score表中所有分数不等于 60 的记录,WHERE条件应为:WHERE score ______ 60。 【答案】<>(或!=) 【解析】<>和!=均表示 “不等于”,用于筛选分数不是 60 的记录。 3.(单项选择题)下列语句中,用于查询employee表中 “部门为‘销售部’且入职时间在 2020-01-01 之后” 的员工姓名和入职时间的是( ) A. SELECT name, hire_date FROM employee WHERE dept = 销售部 AND hire_date > 2020-01-01; B. SELECT name, hire_date FROM employee WHERE dept = '销售部' OR hire_date > '2020-01-01'; C. SELECT name, hire_date FROM employee WHERE dept = '销售部' AND hire_date > '2020-01-01'; D. SELECT * FROM employee WHERE dept = '销售部' AND hire_date > '2020-01-01'; 【答案】C 【解析】A 错误(字符串和日期未用单引号);B 错误(用OR而非AND,条件不符);C 正确(指定字段,条件正确);D 错误(查询所有字段,不符合需求)。 4.(读程序填空题)以下语句查询book表中 “价格在 50 到 100 元之间(不含 50 和 100)且出版社为‘人民邮电’” 的图书名称和价格,请补全条件: SELECT bname, price FROM book ______ price > 50 AND price ______ 100 ______ publisher = '人民邮电'; 【答案】WHERE;<;AND 1.(单项选择题)下列语句中,用于查询product表所有字段的是( ) A. SELECT ALL FROM product; B. SELECT * FROM product; C. SELECT 字段名 FROM product; D. SELECT product FROM *; 【答案】B 【解析】SELECT * FROM 表名是查询所有字段的标准语法;A、D 语法错误,C 是查询部分字段。 2.(判断题)查询student表中 “年龄为空” 的记录,条件表达式应为WHERE age = NULL。( ) 【答案】× 【解析】NULL表示 “未知”,不能用=判断,需用IS NULL,正确条件为WHERE age IS NULL。 3.(填空题)查询order表中 “订单状态为‘已完成’或‘已取消’” 的订单号和状态,WHERE条件应为:WHERE status ______ ('已完成', '已取消')。 【答案】IN 【解析】IN用于判断值是否在指定集合中,status IN ('已完成', '已取消')等价于status = '已完成' OR status = '已取消'。 4.(SQL 语句题)已知course表结构如下: 字段名 类型 说明 cid INT 课程号 cname VARCHAR(30) 课程名 credit INT 学分 teacher VARCHAR(20) 授课教师 写出查询 “学分大于 3 且授课教师为‘张三’” 的课程名和学分的 SQL 语句。 【答案】 SELECT cname, credit FROM course WHERE credit > 3 AND teacher = '张三'; 5.(单项选择题)下列关于SELECT name AS 姓名 FROM student;的说法,正确的是( ) A. AS必须省略 B. 结果中字段名显示为 “姓名” C. 只能查询name字段 D. 会返回所有记录的所有字段 【答案】B 【解析】AS用于给字段起别名,结果中字段名显示为别名 “姓名”;A 错误(AS可省略,如name 姓名);C 错误(可同时查询多个字段);D 错误(仅查询name字段)。 6.(判断题)SELECT id, name FROM student WHERE gender = '男' AND age BETWEEN 18 AND 20;与SELECT id, name FROM student WHERE gender = '男' AND age >=18 AND age <=20;结果相同。( ) 【答案】√ 【解析】BETWEEN a AND b等价于>=a AND <=b,两语句条件完全一致,结果相同。 7.(填空题)查询user表中 “注册时间在 2023-01-01 之前且未注销(status为 1)” 的用户名和注册时间,SQL 语句为:SELECT username, reg_time FROM user WHERE reg_time ______ '2023-01-01' AND status ______ 1; 【答案】<;= 【解析】“2023-01-01 之前” 用reg_time < '2023-01-01',“未注销(status 为 1)” 用status = 1。 8.(SQL 语句题)已知score表结构如下: 字段名 类型 说明 sid INT 学生 ID cid INT 课程 ID score DECIMAL(5,2) 成绩 exam_date DATE 考试日期 写出查询 “成绩在 60 到 70 分之间(不含 60,含 70)且考试日期为 2023-06-30” 的学生 ID、课程 ID 和成绩的 SQL 语句。 【答案】 SELECT sid, cid, score FROM score WHERE score > 60 AND score <= 70 AND exam_date = '2023-06-30'; 原创精品资源学科网独家享有版权,侵权必究!2 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

(四)数据查询(1)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)
1
(四)数据查询(1)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)
2
(四)数据查询(1)-讲义《数据库原理与应用技术-MySQL》(举一反三考点练)(河北省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。