学习笔记 | Ch02-03 检索数据 select
提示:
发布日期:2021-07-25 15:44:01
浏览次数:10
分类:技术文章
本文共 1812 字,大约阅读时间需要 6 分钟。
第2课 检索数据
- 介绍如何使用
SELECT
语句从表中检索一个或多个数据列。
2.1 SELECT语句
SELECT
语句,是从一个或多个表中检索信息。
关键字keyword
:作为SQL组成部分的保留字。关键字不能用作表或列的名字。- 为了使用
SELECT
检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。
2.2 检索单个列
列名写在SELECT
关键字之后,FROM
关键字指出从哪个表中检索数据。
- 多条
SQL
语句必须以分号;
分割。 - SQL语句不区分大小写。许多SQL开发人员喜欢对SQL关键字使用大写,而对列名和表名使用小写,这样做使代码更易于阅读和调试。
- 虽然
SQL
是不区分大小写的,但是表名、列名和值可能有所不同。 - 多数
SQL
开发人员认为,将SQL
语句分成多行更容易阅读和调试。
2.3 检索多个列
唯一不同的是必须在SELECT
关键字后给出多个列名,列名之间必须以逗号分割。
- ⚠️提示:当心逗号 | 在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。
- ⚠️提示:数据表示 |
SQL
语句一般返回原始的、无格式的数据。数据的格式化是表示问题,而不是检索问题。
2.4 检索所有列
- 在实际列名的位置使用星号
*
通配符,则返回表中所有列。 - 列的顺序一般是列在表定义中出现的物理顺序,但并不总是如此。
2.5 检索不同的值
使用DISTINCT
关键字,指示数据库只返回不同的值。
DISTINCT
关键字,它必须直接放在列名的前面。 - ⚠️注意:不能部分使用
DISTINCT
|DISTINCT
作用于所有列,不仅仅是跟在其后的那一列。
2.6 限制结果
- 各种数据库中的这一
SQL
实现并不相同。
如果使用Mysql
、MariaDB
、PostgreSQL
或者SQLite
,需要使用LIMIT
子句。
LIMIT 5;
指示MySQL
等DBMS
返回不超过5行的数据。LIMIT 5 OFFSET 5;
指示MySQL
等DBMS
返回从第5行起的5行数据。第一个数字是检索的行数,第二个数字是指从哪儿开始。LIMIT
指定返回的行数。LIMIT
带的OFFSET
指定从哪儿开始。
提示:MySQL
、MariaDB
和SQLite
捷径
MySQL
、MariaDB
和SQLite
支持简化版的LIMIT 4 OFFSET 3
语句,即LIMIT3,4
。使用这个语法,逗号之前的值对应OFFSET
,逗号之后的值对应LIMIT
。
2.7 使用注释
- 注释使用
--
(两个连字符)嵌在行内。--
之后的文本就是注释。 - 在一行的开始处使用
#
,这一整行都将作为注释。 - 多行注释,注释可以在脚本的任何位置停止和开始。注释从/* 开始,到 /结束,/* 和 */之间的任何内容都是注释。
2.8 小结
- 这一课学习了如何使用
SQL
的SELECT
语句来检索单个表列、多个表列以及所有表列。你也学习了如何返回不同的值,如何注释代码。
第3课 排序检索数据
3.1 排序数据
ORDER BY
子句取一个或多个列的名字,据此对输出进行排序。
- ⚠️注意:
ORDER BY
子句的位置 | 在指定一条ORDER BY
子句时,应该保证它是SELECT语句中最后一条子句。 - 提示:通过非选择列进行排序 | 通常,
ORDER BY
子句中使用的列将是为显示而选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。
3.2 按多个列排序
- 要按多个列排序,简单指定列名,列名之间用逗号分开即可。
3.3 按列位置排序
- 除了能用列名指出排序顺序外,
ORDER BY
还支持按相对列位置进行排序。 ORDER BY 2,3;
对应前面的列。- 如果有必要,可以混合使用实际列名和相对列位置。
3.4 指定排序方向
- 为了进行降序排列,必须指定
DESC
关键字。
DESC
关键字只应用到直接位于其前面的列名。
-
⚠️警告:在多个列上降序排序 | 必须对每一列指定
DESC
关键字。 -
DESC
是DESCENDING
的缩写,这两个关键字都可以使用。与DESC
相对的是ASC
(或ASCENDING
),在升序排序时可以指定它。默认是升序。
3.5 小结
- 这一课学习了如何用
SELECT
语句的ORDER BY
子句对检索出的数据进行排序。 - 这个子句必须是
SELECT
语句中的最后一条子句。根据需要,可以利用它在一个或多个列上对数据进行排序。
参考资料
- 《SQL必知必会》第2-3课
转载地址:https://blog.csdn.net/qq_34170700/article/details/103987887 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月13日 22时58分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode题解(0781):森林中的兔子(Python)
2019-04-26
LeetCode题解(0930):和相同的二元子数组(Python)
2019-04-26
LeetCode题解(0939):最小面积矩形(Python)
2019-04-26
LeetCode题解(0954):二倍数对数组(Python)
2021-06-29
LeetCode题解(0957):N天后的牢房(Python)
2021-06-29
LeetCode题解(0974):和可被K整除的子数组(Python)
2021-06-29
LeetCode题解(0981):基于时间的键值存储(Python)
2021-06-29
LeetCode题解(0992):K个不同呢的子数组(Python)
2021-06-29
LeetCode题解(1001):网格照明(Python)
2021-06-29
LeetCode题解(1044):最长重复子串(Python)
2021-06-29
LeetCode题解(1048):最长字符串链(Python)
2021-06-29
LeetCode题解(1072):按列翻转得到最大值等行数(Python)
2021-06-29
LeetCode题解(1086):前五科的均分(Python)
2021-06-29
LeetCode题解(1364):顾客的可信联系人数量(SQL)
2021-06-29
LeetCode题解(1369):获取最近第二次的活动(SQL)
2021-06-29
LeetCode题解(1378):使用唯一标识码替换员工ID(SQL)
2021-06-29
LeetCode题解(1384):按年度列出销售总额(SQL)
2019-04-26
LeetCode题解(1393):股票的资本损益(SQL)
2019-04-26
LeetCode题解(1398):购买了产品A和产品B却没有购买产品C的顾客(SQL)
2019-04-26
LeetCode题解(1407):排名靠前的旅行者(SQL)
2019-04-26