列的查询
从表中选取数据时需要使用 SELECT 语句,也就是只从表中选出 (SELECT)必要数据的意思。通过 SELECT 语句查询并选取出必要数据 的过程称为匹配查询或查询(query)。
基本的SELECT语句
该 SELECT 语句包含了 SELECT 和 FROM 两个子句(clause)。子句 是 SQL 语句的组成要素,是以 SELECT 或者 FROM 等作为起始的 短语。
SELECT 子句中列举了希望从表中查询出的列的名称,而 FROM 子句 则指定了选取出数据的表的名称。
举例
代码如下
执行的结果如下
SELECT 语句第一行的 SELECT product_id,product_name, purchase_price 就是 SELECT 子句。查询出的列的顺序可以任意指定。查询多列时,需要使用逗号进行分隔。查询结果中列的顺序和 SELECT 子句中的顺序相同。
查询出表中所有的列
想要查询出全部列时,可以使用代表所有列的星号(*)。
星号(*)代表全部列的意思。但是,如果使用星号的话,就无法设定列的显示顺序了。这时就会按 照 CREATE TABLE 语句的定义对列进行排序。
为列设定别名
SQL 语句可以使用 AS 关键字为列设定别名。
别名可以使用中文,使用中文时需要用双引号(")括起来。请注意 不是单引号(')。
通过执行结果来理解就更加容易了。像这样使用别名可以让 SELECT 语句的执行结果更加容易理解和操作。
常数的查询
SELECT 子句中不仅可以书写列名,还可以书写常数。下表中的 SELECT 子句中的第一列 '商品' 是字符串常数,第 2 列 38 是数字 常数,第 3 列 '2009-02-24' 是日期常数,它们将与 product_id 列和 product_name 列一起被查询出来。
如上述执行结果所示,所有的行中都显示出了 SELECT 子句中的常数。(此次操作相当于筛选)
从结果中删除重复行
想知道下表中保存了哪些商品种类(product_type)时
想要删除重复行时,可以通过在 SELECT 子句中使用 DISTINCT 来实现。语句如下
另外又空值(NULL)的话,结果一样会显示出来。
DISTINCT 也可以在多列之前使用。此时,会 将多个列的数据进行组合,将重复的数据合并为一条。下图中的 SELECT 语句,对 product_type(商品种类)列和 regist_date (登记日期)列的数据进行组合,将重复的数据合并为一条。
如上述执行结果所示,product_type 列为 '厨房用具',同时 regist_date 列为 '2009-09-20' 的两条数据被合并成了一条。
DISTINCT 关键字只能用在第一个列名之前。因此,请大家注意不 能写成 regist_date, DISTINCT product_type。
根据WHERE语句来选择记录
前面的例子都是将表中存储的数据全都选取出来,但实际上并不是每 次都需要选取出全部数据,大部分情况都是要选取出满足“商品种类为衣 服”“销售单价在 1000 日元以上”等某些条件的数据。
SELECT 语句通过 WHERE 子句来指定查询数据的条件。在 WHERE 子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于 这个数字”等条件。执行含有这些条件的 SELECT 语句,就可以查询出 只符合该条件的记录了。
选取商品种类为'衣服'的记录
语句如下
WHERE 子句中的“product_type = '衣服'”就是用来表示查询 条件的表达式(条件表达式)。等号是比较两边的内容是否相等的符号, 上述条件就是将 product_type 列的值和 '衣服' 进行比较,判断是否 相等。Product 表的所有记录都会被进行比较。
接下来会从查询出的记录中选取出 SELECT 语句指定的 product_ name 列和 product_type 列,如执行结果所示,也就是首先通过 WHERE 子句查询出符合指定条件的记录,然后再选取出 SELECT 语句指 定的列。
SQL 中子句的书写顺序是固定的,不能随意更改。WHERE 子句必须 紧跟在 FROM 子句之后,书写顺序发生改变的话会造成执行错误。
注释的书写方法
注释对 SQL 的执行没有任何影响。因此,无论是英文字母还是汉字 都可以随意使用。 注释的书写方法有如下两种。
● 1行注释 书写在“-- ”之后,只能写在同一行。***两个横杠后必须要加入一个空格键。
● 多行注释 书写在“/*”和“*/”之间,可以跨多行。
在SQL语句中插入1行注释
在SQL语句中插入多行注释
这些 SELECT 语句的执行结果与没有使用注释时完全一样。注释能 够帮助阅读者更好地理解 SQL 语句,特别是在书写复杂的 SQL 语句时, 希望大家能够尽量多加简明易懂的注释。注释不仅可以写在 SELECT 语 句中,而且可以写在任何 SQL 语句当中,写多少都可以。