数据查询是数据库应用的核心操作,也是数据库技术中最基础、最常用的功能之一。在实际工作与学习中,无论是企业员工提取业务数据、分析师挖掘数据价值,还是普通用户获取所需信息,本质上都是通过数据查询实现对数据库中存储数据的检索、筛选、整理与展示。本项目作为数据库学习的重点模块,承接前文数据定义、数据操纵的相关知识,聚焦"如何高效、准确地从数据库中获取所需数据"这一核心问题,引导学习者系统掌握数据查询的基本方法、语法规则与应用技巧,为后续复杂数据处理、数据库优化等内容的学习奠定坚实基础。
岗位需求: 提取所有图书的"书名、作者、ISBN"3个核心字段,生成纸质馆藏清单,要求信息简洁、无冗余,方便师生快速查阅。
-- 语法工具箱:基础查询 -- 格式1:提取指定字段(推荐,精准适配岗位需求,避免冗余) SELECT 字段1, 字段2, ... -- 需提取的字段,用逗号分隔 FROM 数据表名; -- 数据所在的表名 -- 格式2:提取所有字段(仅用于快速查看数据,不推荐正式工作场景) SELECT * -- * 是通配符,代表所有字段 FROM 数据表名;
岗位提醒: 正式工作中,尽量不用*查询所有字段(如图书表中可能包含"备注""录入时间"等无关信息),避免导出的清单杂乱,增加后续整理工作量。
-- 导出馆藏清单:提取书名、作者、出版社
SELECT BookName, Author, ISBN FROM Books;岗位需求: ① 从Books表中筛选出"图书分类=中职"的所有图书,显示完整信息;② 管理员需要计算每本中职教材的库存价值(单价×库存);③ 筛选"中职教材"且"价格低于50元"的图书。
-- 语法工具箱:条件筛选 SELECT 字段1, 字段2 FROM 数据表名 WHERE 条件表达式;
| 运算符 | 作用 | 岗位应用示例 | 条件表达式写法 |
|---|---|---|---|
| = | 等于 | 筛选"中职教材类"图书 | Category = '中职教材' |
| > | 大于 | 筛选"价格超过50元"的图书 | Price > 50 |
| < | 小于 | 筛选低价图书 | Price < 50 |
| != | 不等于 | 非中职教材类图书 | Category != '中职教材' |
| >= | 大于等于 | 筛选"2022年及以后出版"的图书 | PublishDate >= '2022-01-01' |
| <= | 小于等于 | 筛选"价格不超过60元"的图书 | Price <= 60 |
关键提醒: 字符串类型的条件值必须用英文单引号包裹。
| 运算符 | 作用 | 岗位应用示例 | 表达式写法 |
|---|---|---|---|
| + | 加法 | 计算图书调价后的新价格(原价+5元) | Price + 5 |
| - | 减法 | 计算图书打折后的价格(原价-10元) | Price - 10 |
| * | 乘法 | 计算图书的总价(单价×库存数量) | Price * StockQuantity |
| / | 除法 | 计算图书的平均库存成本 | Price / StockQuantity |
| % | 取余 | 读者借阅权限分级管理 | ReaderID % 2 = 1 |
别名使用: 字段名称 AS 别名 / 字段名称 别名 / 别名 = 字段名称
| 运算符 | 作用 | 岗位应用示例 | 条件表达式写法 |
|---|---|---|---|
| AND | 且 | 筛选"中职教材"且"价格低于50元" | Category='中职教材' AND Price<50 |
| OR | 或 | 筛选"中职教材"或"文学"类 | Category='中职教材' OR Category='文学' |
| NOT | 非 | 筛选不是"中职教材"的 | NOT Category='中职教材' |
SELECT * FROM Books WHERE Category = '中职教材';SELECT BookName,Price, StockQuantity,(Price * StockQuantity) AS 库存价值 FROM Books WHERE Category = '中职教材';SELECT BookName, Category, Price FROM Books WHERE Category = '中职教材' AND Price < 50;岗位需求: 查询"文学类"图书的"书名、作者、价格",按价格从低到高排序,筛选出价格最低的5本图书,为贫困生推荐低价图书。
-- 语法工具箱:结果排序 -- SELECT TOP 记录数 字段1, 字段2 -- FROM 数据表名 -- WHERE 条件表达式 -- ORDER BY 排序字段 ASC/DESC; -- ASC:升序(默认),DESC:降序 -- 查询返回限制的行数:SELECT TOP 3 字段 或 SELECT TOP 20 PERCENT 字段
SELECT TOP 5 BookName, Author, Price FROM Books WHERE Category='文学' ORDER BY Price ASC;岗位需求:① 书名包含"基础";② 价格20~50元;③ 分类为"编程"或"数据库"。
-- 1.模糊查询 LIKE -- 2.范围查询 BETWEEN ... AND ... -- 3.列举值查询 IN (...)
SELECT BookName, Author, Category FROM Books WHERE BookName LIKE '%基础%';SELECT BookName, Author, Price FROM Books WHERE Price BETWEEN 20 AND 50;SELECT BookName, Author, Category, Price FROM Books WHERE Category IN ('编程', '数据库');请根据 Products 表(已为您初始化)编写SQL语句完成以下8个任务,每个任务可以在下方练习区编写并执行,也可点击“提交检查”验证答案。
| ProductID | ProductName | Category | Stock | Price | ProductionDate |
|---|---|---|---|---|---|
| 2001 | 矿泉水 | 饮料 | 100 | 2.50 | 2024-01-10 |
| 2002 | 方便面 | 食品 | 50 | 4.80 | 2024-02-15 |
| 2003 | 薯片 | 零食 | 30 | 6.50 | 2024-03-01 |
| 2004 | 洗衣液 | 日用品 | 20 | 25.00 | 2023-11-20 |
| 2005 | 可乐 | 饮料 | 80 | 3.50 | 2024-04-05 |
| 2006 | 火腿肠 | 食品 | 15 | 2.00 | 2024-01-25 |
| 2007 | 饼干 | 零食 | 60 | 8.00 | 2024-05-10 |
| 2008 | 洗发水 | 日用品 | 10 | 35.00 | 2023-12-01 |
| 2009 | 牛奶 | 饮料 | 40 | 12.00 | 2024-06-01 |
| 2010 | 面包 | 食品 | 5 | 5.00 | 2024-06-15 |