查询数据
SELECT是用来查询数据,从数据库中根据需求,使用不同的方式查询不同的数据。
语法格式:
SELECT 列名
FROM 表名
- 列名表时被查的列名,使用*号则查找所有的列。
- FROM表时被查的来源表,可以是多个表,中间用逗号隔开
去重
DISTINCT用于过滤重复数据,如果表中某些列没有唯一性约束,那么查询出来的数据存在重复值,使用DISTINCT语句将一个或多个列中的数据进行过滤,直返回其中一条数据。
语法格式:
SELECT DISTINCT 列名 FROM 表名;
注意:
- DISTINCT 关键字只能在 SELECT 语句中使用。
- 在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前面。
- 如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。
设置别名
AS关键字为表和列指定别名,在查询一些特殊数据时,为了方便自己操作,可以将表或者列设置其他名字,查询时就返回新名字。
表名 AS 别名
列名 AS 别名
AS 可以省略,省略后需将原名与别名用空格隔开。
注意: 表的别名不能与该数据库中其他的表同名,列的别名不能与该表中其他列同名。
限制查询的数目
当数据表中存在上万条数据时,一次性查询出表中的所有数据会降低查询速度,并且给服务器很大压力。LIMIT可以限制需要查询的数目。
指定初始位置
SELECT 列名 FROM 表名 LIMIT 起始位置,记录数;
- 初始位置表时从哪条记录开始,返回的位置=起始位置+1.
- 记录数是显示记录的条数。
- LIMIT关键字后的两个参数必须是整数。
不指定初始位置
LIMIT关键字不指定初始位置时,则会从第一条记录开始显示。
LIMIT 记录数
记录数是显示记录的条数,如果记录数大于表中行的总数,则会全部显示。
LIMIT和OFFSET一起使用
LIMIT 记录数 OFFSET 初始位置
其实与指定初始位置方式相同。
对查询结果排序
通过查询条件查询到需要的数据,但查询到的数据一般按照最初插入顺序显示的,为了对查询结果的顺序有要求, ORDER BY实现对查询结果进行排序。
语法格式:
ORDER BY 列名 [ASC|DESC]
- 表示需要进行排序的列名,多个列名使用逗号隔开
- ASC|DESC:ASC表示列数据按升序排序;DESC表示列数据按降序排序。其中ASC为默认值。
注意
- ORDER BY后可以跟子查询。
- 若排序的列表中出现空值时,会将空值作为最小值处理。
- ORDER BY 指定多个列进行排序时,MySQL 会按照字列的顺序从左到右依次进行排序。
|