在《MySql003——结构化查询语言SQL基础知识》中,我们学习了有关SQL的基础知识,也知道SQL中查询语句SELECT使用最为频繁
接下来我们将学习一些基本的SELECT查询语句
一、SELECT语句的通用语法
在MySQL数据库中,使用SELECT
语句可以查询数据库中的数据。以下是SELECT
语句的通用语法:
SELECT column1 [AS 别名], column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC|DESC]]
[LIMIT number][ OFFSET number];
其中,方括号表示可选部分。以下是对各个部分的解释:
column1, column2, ...
:要查询的列名,用逗号分隔。可以使用通配符*
表示选择所有列。AS 别名
:给当前列起别名。table_name
:要查询的表名。WHERE condition
(可选):选择满足指定条件的数据行。条件是一个逻辑表达式,可以使用比较运算符(如=
、<
、>
等)、逻辑运算符(如AND
、OR
等)和通配符(如%
)。ORDER BY column_name [ASC|DESC]
(可选):按指定的列对结果进行排序,可以选择升序(ASC,默认)或降序(DESC)。LIMIT number
(可选):限制返回结果的行数。OFFSET number
(可选)指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
二、基本SELECT语句的示例
2.1、 查询所有行
的指定列
的数据:
SELECT column1, column2, ...
FROM table_name;
实例:从user表中查询user_id和user_name字段对应的所有数据
2.2、 查询所有行
的所有列
的数据:
SELECT *
FROM table_name;
实例:查询user表中所有数据
2.3、 使用WHERE
子句查询满足条件的数据:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
实例:查询user表中index大于等于2的所有数据
2.4、 使用ORDER BY
子句查询并排序结果:
-- 结果按升序返回
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name ASC; -- 升序
/*
ORDER排序,BY通过,column_name列名,ASC按升序
连起来就是:查询的返回结果,通过column_name列,按升序排序
*/
实例:查询user表中index大于等于2的所有数据,结果按照user_id从小到大升序返回
-- 结果按降序返回
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name DESC; -- 降序
--连起来就是:查询的返回结果,通过column_name列,按降序排序
实例:查询user表中index大于等于2的所有数据,结果按照user_id从大到小降序返回
2.5、 使用LIMIT
限制返回结果的行数:
SELECT column1, column2, ...
FROM table_name
LIMIT number;
实例:查询user表中index大于等于2的所有数据,结果按照user_id从大到小降序,且限制只返回第一条数据
2.6、 使用AS
给列起别名
- 使用AS可以给查询结果列起别名
- AS可以省略(不推荐)
- 别名使用双引号引起来(也可以不使用,但是推荐使用)
2.7、使用关键字DISTINCT
去除重复行
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
如下图所示,原始表格中3,4,5行的index和user_name字段值重复了
SELECT DISTINCT 语法
SELECT DISTINCT column_name,column_name
FROM table_name;
现在我们使用关键字DISTINCT
去除重复行