简单查询语法


# 简单查询语法

# 查询列的语句

# 查询单个列

查看某个表中的某一列的数据,语法格式如下:

SELECT 列名 FROM 表名;
1

列名为星号(*)表示把记录中的所有列都查出来。有时候会很方便,但是查询不需要的列通常会降低性能,视情况而用吧。

# 列的别名

可以为结果集中的列重新定义一个别名,语法格式如下:

SELECT 列名 [AS] 列的别名 FROM 表名;
1

这里的 AS 加了个中括号,意思是这个指定别名的语法中,AS 这个单词是可有可无的(不过我觉得加上这个单词可以增加可读性)。

定义别名后,用 SELECT 语法查询出来的结果里,原列名就被别名替代了。不过别名只在本次查询得到的结果集中展示,并不会改变真实表中的列名。下一次查询中取其他的别名也可以。

# 查询多个列

如果想查询多个列的数据,可以在 SELECT 后边写多个列名,用逗号 , 分隔开就好:

SELECT 列名1, 列名2, ... 列名n FROM 表名;
1

查询语句中的列名可以按任意顺序摆放,结果集将按照我们指定的列名顺序显示。

# 查询结果去重

# 去除单列的重复结果

有的时候我们查询某个列的数据时会有一些重复的结果,比如我们查询 student_info 表的学院信息,会有重复的学院名。

如果想去除重复结果的话,可以将 DISTINCT 放在被查询的列前面,语法格式如下:

SELECT DISTINCT 列名 FROM 表名;
1

这样的结果集里,就只剩下不重复的信息了,比如从学生表里查一下这个学校一共有哪些学院。

# 去除多列的重复结果

对于查询多列的情况,两条结果重复的意思是:两条结果的每一个列中的值都相同。比如查询学院和专业信息,这两个列的值都相同(都是 计算机学院 下面的 软件工程 专业)。

如果想对多列查询的结果去重的话,可以直接把 DISTINCT 放在被查询的列的最前面:

SELECT DISTINCT 列名1, 列名2, ... 列名n FROM 表名;
1

# 限制查询结果条数

在查询语句的末尾使用 LIMIT 关键字可以限制结果集中的记录条数。

LIMIT 开始行, 限制条数;
1
  • 开始行 指的是我们想从第几行数据开始查询,从 0 开始计数
  • 限制条数 是结果集中最多包含多少条记录

LIMIT 后面也可以只有一个参数,那这个参数就代表着限制行数,此时默认的开始行就是第 0 行。

# 对查询结果排序

MySQL 默认会按照数据底层存储的顺序来给我们返回数据,如果想让返回结果中的记录按照某种特定的规则排序,就必须显式地指定排序规则。

# 按照单个列的值进行排序

ORDER BY 列名 ASC|DESC
1
  • ASC 指按照指定列的值进行由小到大进行排序,也叫做升序
  • DESC 指按照指定列的值进行由大到小进行排序,也叫做降序
  • 省略排序方向时默认时升序,即 ASC

# 按照多个列的值进行排序

同时指定多个排序的列,多个排序列之间用逗号 , 隔开。

ORDER BY1 ASC|DESC,2 ASC|DESC ...
1

表示查询结果先按照 列1 排序,再按照 列2 排序。

# ORDER BY 结合 LIMIT

这两个语句结合使用时,ORDER BY 语句必须放在 LIMIT 语句前面:

SELECT * FROM 表名 ORDER BY1 LIMIT 1;
1

比如这条语句可以找出 列1 值最小的那条记录。

(完)