MySQL基础(一):检索数据

检索数据


使用SELECT语句从表中检索一个或多个数据列。

SELECT语句


SQL语句是由简单的英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。大概,最经常使用的SQL语句就是SELECT语句了。它的用途是从一个或多个表中检索信息。
为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

检索单个列


先从简单的SQL SELECT语句开始介绍,此语句如下所示:

输入

SELECT prod_name
FROM products;

输出

 

分析

上述语句利用SELECT语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。

检索多个列


要想从一个表中检索多个列,使用相同的SELECT语句。唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。

下面的SELECT语句从products表中选择3列:

输入

SELECT prod_id, prod_name, prod_price
FROM products;

输出

分析

与前一个例子一样,这条语句使用SELECT语句从表products中选择数据。在这个例子中,指定了3个列名,列名之间用逗号分隔。

检索所有列


除了指定所需的列外(如上所述,一个或多个列),SELECT语句还可 以检索所有的列而不必逐个列出它们。这可以通过在实际列名的位置使 用星号(*)通配符来达到,如下所示:

输入

SELECT *
FROM products;

输出

分析

如果给定一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的顺序。但有时候并不是这样的,表的模式的变化(如添加或删除列)可能会导致顺序的变化。

检索不同的行 


使用DISTINCT关键字,顾名思义,此关键字指示MySQL只返回不同的值。

输入

SELECT DISTINCT vend_id
FROM products;

输出

分析

SELECT DISTINCT vend_id告诉MySQL只返回不同(唯一)的vend_id行,因此只返回4行,如下面的输出所示。如果使用DISTINCT关键字,它必须直接放在列名的前面。

限制结果


SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。下面举一个例子:

输入 

SELECT prod_name
FROM products
LIMIT 5;

输出

分析

此语句使用SELECT语句检索单个列。LIMIT 5指示MySQL返回 不多于5行。为得出下一个5行,可指定要检索的开始行和行数,如下所示:

输入

SELECT prod_name
FROM products
LIMIT 5,5;

输出

分析

LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始 位置,第二个数为要检索的行数。所以,带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。 带两个值的LIMIT可以指定从行号为第一个值的位置开始。在行数不够时 LIMIT中指定要检索的行数为检索的最大行 数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13 行),MySQL将只返回它能返回的那么多行。

MySQL 5的LIMIT语法 LIMIT 3, 4的含义是从行4开始的3 行还是从行3开始的4行?如前所述,它的意思是从行3开始的4 行,这容易把人搞糊涂。由于这个原因,MySQL 5支持LIMIT的另一种替代语法。LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。

使用完全限定的表名


迄今为止使用的SQL例子只通过列名引用列。也可能会使用完全限定的名字来引用列(同时使用表名和列字)。请看以下例子:

输入

SELECT products.prod_name
FROM products;

输出

 

分析

这条SQL语句在功能上等于本章最开始使用的那一条语句,但这里指定了一个完全限定的列名。 表名也可以是完全限定的。

原文地址:https://www.cnblogs.com/mxsf/p/12682867.html