学习笔记 | Ch02-03 检索数据 select

第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语句中的最后一条子句。根据需要,可以利用它在一个或多个列上对数据进行排序。
参考资料
  • 《SQL必知必会》第2-3课
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值