【MySQL必知必会】:检索语句

137 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

一、前言

大家好,今天文章的内容是:

  • 【如何使用 SELECT 语句从表中检索一个或多个数据列】

二、内容

2.1、SELECT

最常用的 SQL 语句就是 SELECT 语句了,其用于从一个或多个表中检索信息。

使用 SELECT 语句检索表数据时,至少需要给出两条信息:

  • 想选择什么数据:使用 SELECT 关键字
  • 从哪个地方(表)选择:使用 FROM 关键字

2.2、检索语句

(1) 检索单个列

在 MySQL 中,检索单个列的语法如下:

SELECT 列名(字段) FROM 表名;

比如,下面代码使用了 SELECT 语句来检索单个列:

-- 从 products 表中检索一个名为 prod_name 的列
SELECT prod_name FROM products;

需要注意的是,上述语句返回的是表中的所有行,也就是说,检索后返回的数据并没有过滤,也没有排序(如果过滤,则会得出结果集的一个子集)。

(2) 检索多个列

要想从一个表中检索多个列,我们只需要在SELECT关键字后给出多个列名,列名之间用逗号隔开。

比如下述语句指定从表1中检索三个列名:

SELECT1, 列2, 列3
FROM1;

(3) 检索所有列

前面记录的是检索表中的单个列或者多个列,如果你想一次性检索出表中的所有数据,那么可以尝试使用通配符 * 。我们使用通配符 * 来检索表中的所有字段信息。

语法如下:

SELECT * FROM 表名;

举个例子,我们从品牌表中检索所有字段的信息,代码如下:

SELECT * FROM tb_brand;

(4) 检索不同的行

在前面记录的检索语句中,返回的结果可以具有相同的值。如果我们想避免这种情况的发生,那么可以使用使用 DISTINCT 关键字。该关键字可以用于检索出具有不同值的列表。

语法为:

SELECT DISTINCT 列(字段) FROM 表名;

上述语句用于返回唯一的列,也就是说,返回的每一行数据都是不同的。

(5) 检索并限制结果

在前面的检索语句中,会返回所有匹配的行。

如果我们希望限制返回结果的数目,那么可以使用 LIMIT 关键字。该关键字可以有两种写法:

写法一举例:

-- 返回不多于 5 行的数据
SELECT1 FROM1 LIMIT 5;

写法二举例:

-- 返回从第 5 行开始的 5 行数据数据
SELECT2 FROM2 LIMIT 5, 5;

备注:

  • LIMIT 1, 1 将检索出第二行而不是第一行
  • 这是因为检索出来的第一行是 行0 而不是 行1

需要注意,MySQL 支持 LIMIT 的另一种替代语法:

  • 比如 LIMIT 4 OFFSET 3
  • 这条子句表示:从行 3 开始,取 4 行数据。效果等同于 LIMIT 3, 4

(6) 使用完全限定的表名

我们既可以使用列名来引用列,也可以使用完全限定的名字来引用列,也就是同时使用表名和列名。

SELECT1.1 FROM1;

上述的语句等同于下面的语句:

SELECT1 FROM1;

三、后话

好了,今天的文章内容就到这里,感谢观看。