列的查询

从表中选取数据时需要使用 SELECT 语句,也就是只从表中选出 (SELECT)必要数据的意思。通过 SELECT 语句查询并选取出必要数据 的过程称为匹配查询或查询(query)。

基本的SELECT语句

Select语句例子 lua mysql select语句的基本用法举例_SQL

该 SELECT 语句包含了 SELECT 和 FROM 两个子句(clause)。子句 是 SQL 语句的组成要素,是以 SELECT 或者 FROM 等作为起始的 短语。

SELECT 子句中列举了希望从表中查询出的列的名称,而 FROM 子句 则指定了选取出数据的表的名称。

举例

Select语句例子 lua mysql select语句的基本用法举例_数据_02

代码如下

Select语句例子 lua mysql select语句的基本用法举例_SQL_03

执行的结果如下

Select语句例子 lua mysql select语句的基本用法举例_数据_04

SELECT 语句第一行的 SELECT product_id,product_name, purchase_price 就是 SELECT 子句。查询出的列的顺序可以任意指定。查询多列时,需要使用逗号进行分隔。查询结果中列的顺序和 SELECT 子句中的顺序相同。

 

查询出表中所有的列

想要查询出全部列时,可以使用代表所有列的星号(*)。

Select语句例子 lua mysql select语句的基本用法举例_字符串_05

星号(*)代表全部列的意思。但是,如果使用星号的话,就无法设定列的显示顺序了。这时就会按 照 CREATE TABLE 语句的定义对列进行排序。

 

 为列设定别名

SQL 语句可以使用 AS 关键字为列设定别名。

Select语句例子 lua mysql select语句的基本用法举例_字符串_06

Select语句例子 lua mysql select语句的基本用法举例_SQL_07

别名可以使用中文,使用中文时需要用双引号(")括起来。请注意 不是单引号(')。

Select语句例子 lua mysql select语句的基本用法举例_字符串_08

Select语句例子 lua mysql select语句的基本用法举例_数据_09

通过执行结果来理解就更加容易了。像这样使用别名可以让 SELECT 语句的执行结果更加容易理解和操作。

 

 常数的查询

 SELECT 子句中不仅可以书写列名,还可以书写常数。下表中的 SELECT 子句中的第一列 '商品' 是字符串常数,第 2 列 38 是数字 常数,第 3 列 '2009-02-24' 是日期常数,它们将与 product_id 列和 product_name 列一起被查询出来。

 

Select语句例子 lua mysql select语句的基本用法举例_数据_10

 

Select语句例子 lua mysql select语句的基本用法举例_数据_11

如上述执行结果所示,所有的行中都显示出了 SELECT 子句中的常数。(此次操作相当于筛选)

 

从结果中删除重复行

想知道下表中保存了哪些商品种类(product_type)时

Select语句例子 lua mysql select语句的基本用法举例_数据_12

想要删除重复行时,可以通过在 SELECT 子句中使用 DISTINCT 来实现。语句如下

Select语句例子 lua mysql select语句的基本用法举例_SQL_13

Select语句例子 lua mysql select语句的基本用法举例_字符串_14

另外又空值(NULL)的话,结果一样会显示出来。

 

Select语句例子 lua mysql select语句的基本用法举例_SQL_15

DISTINCT 也可以在多列之前使用。此时,会 将多个列的数据进行组合,将重复的数据合并为一条。下图中的 SELECT 语句,对 product_type(商品种类)列和 regist_date (登记日期)列的数据进行组合,将重复的数据合并为一条。

 

Select语句例子 lua mysql select语句的基本用法举例_SQL_16

Select语句例子 lua mysql select语句的基本用法举例_SQL_17

如上述执行结果所示,product_type 列为 '厨房用具',同时 regist_date 列为 '2009-09-20' 的两条数据被合并成了一条。

DISTINCT 关键字只能用在第一个列名之前。因此,请大家注意不 能写成 regist_date, DISTINCT product_type。

 

根据WHERE语句来选择记录

前面的例子都是将表中存储的数据全都选取出来,但实际上并不是每 次都需要选取出全部数据,大部分情况都是要选取出满足“商品种类为衣 服”“销售单价在 1000 日元以上”等某些条件的数据。

SELECT 语句通过 WHERE 子句来指定查询数据的条件。在 WHERE 子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于 这个数字”等条件。执行含有这些条件的 SELECT 语句,就可以查询出 只符合该条件的记录了。

Select语句例子 lua mysql select语句的基本用法举例_SQL_18

选取商品种类为'衣服'的记录

Select语句例子 lua mysql select语句的基本用法举例_字符串_19

语句如下

Select语句例子 lua mysql select语句的基本用法举例_字符串_20

Select语句例子 lua mysql select语句的基本用法举例_SQL_21

WHERE 子句中的“product_type = '衣服'”就是用来表示查询 条件的表达式(条件表达式)。等号是比较两边的内容是否相等的符号, 上述条件就是将 product_type 列的值和 '衣服' 进行比较,判断是否 相等。Product 表的所有记录都会被进行比较。

接下来会从查询出的记录中选取出 SELECT 语句指定的 product_ name 列和 product_type 列,如执行结果所示,也就是首先通过 WHERE 子句查询出符合指定条件的记录,然后再选取出 SELECT 语句指 定的列。

Select语句例子 lua mysql select语句的基本用法举例_字符串_22

SQL 中子句的书写顺序是固定的,不能随意更改。WHERE 子句必须 紧跟在 FROM 子句之后,书写顺序发生改变的话会造成执行错误。

Select语句例子 lua mysql select语句的基本用法举例_SQL_23

Select语句例子 lua mysql select语句的基本用法举例_数据_24

 

注释的书写方法

注释对 SQL 的执行没有任何影响。因此,无论是英文字母还是汉字 都可以随意使用。 注释的书写方法有如下两种。

● 1行注释 书写在“-- ”之后,只能写在同一行。***两个横杠后必须要加入一个空格键。

● 多行注释 书写在“/*”和“*/”之间,可以跨多行。

 在SQL语句中插入1行注释

Select语句例子 lua mysql select语句的基本用法举例_数据_25

在SQL语句中插入多行注释

 

Select语句例子 lua mysql select语句的基本用法举例_SQL_26

这些 SELECT 语句的执行结果与没有使用注释时完全一样。注释能 够帮助阅读者更好地理解 SQL 语句,特别是在书写复杂的 SQL 语句时, 希望大家能够尽量多加简明易懂的注释。注释不仅可以写在 SELECT 语 句中,而且可以写在任何 SQL 语句当中,写多少都可以。