《SQL必知必会》| 第2-3课 检索数据 学习笔记

第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实现并不相同。
如果使用MysqlMariaDBPostgreSQL或者SQLite,需要使用LIMIT子句。

  • LIMIT 5;指示MySQLDBMS返回不超过5行的数据。
  • LIMIT 5 OFFSET 5;指示MySQLDBMS返回从第5行起的5行数据。第一个数字是检索的行数,第二个数字是指从哪儿开始。
  • LIMIT指定返回的行数。LIMIT带的OFFSET指定从哪儿开始。
提示:MySQLMariaDBSQLite捷径

MySQLMariaDBSQLite支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT3,4。使用这个语法,逗号之前的值对应OFFSET,逗号之后的值对应LIMIT

2.7 使用注释

  • 注释使用--(两个连字符)嵌在行内。--之后的文本就是注释。
  • 在一行的开始处使用#,这一整行都将作为注释。
  • 多行注释,注释可以在脚本的任何位置停止和开始。注释从/* 开始,到 /结束,/* 和 */之间的任何内容都是注释。

2.8 小结

这一课学习了如何使用SQLSELECT语句来检索单个表列、多个表列以及所有表列。你也学习了如何返回不同的值,如何注释代码。


第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关键字。

DESCDESCENDING的缩写,这两个关键字都可以使用。与DESC相对的是ASC(或ASCENDING),在升序排序时可以指定它。默认是升序。

3.5 小结

这一课学习了如何用SELECT语句的ORDER BY子句对检索出的数据进行排序。这个子句必须是SELECT语句中的最后一条子句。根据需要,可以利用它在一个或多个列上对数据进行排序。

发布了137 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_34170700/article/details/103987887