查询单列
SELECT prod_name
FROM products;
查询多列
SELECT prod_id, vend_id
FROM products;
各个列之间以逗号分隔,最后一列的后面不加逗号。
查询所有列
SELECT prod_id, vend_id, prod_name, prod_price, prod_desc FROM products;
除了列出所有的列名之外,我们还可以使用 * 号通配符来做到这点。
SELECT *
FROM products;
一般而言,除非需要表中的每一列,否则最好不要使用 * 通配符。因为查询不需要的列通常会降低查询和应用程序的性能。「阿里java开发手册」中也明确指出,在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。
去重
前面的查询中,SELECT
语句会返回所有匹配的行,但是,有时候我们不希望每个值每次都出现。这时可以使用 DISTINCT
关键字进行去重,顾名思义,它表示数据库只返回不同的值。
SELECT DISTINCT vend_id
FROM products;
DISTINCT
关键字作用于所有的列,不仅仅是跟在其后的那一列。例如:
SELECT DISTINCT vend_id, prod_price
FROM products;
DISTINCT
关键字作用于多列时,要放在所有要查询的列的最前面,不可以放在中间位置。
限制每次返回的记录数
有时候,我们并不想一次返回所有的结果,而是返回一定数量的记录。我们可以使用 LIMIT
子句来实现这一目的。
SELECT prod_name
FROM products LIMIT 5;
LIMIT
子句默认从第 0 行开始,我们还可以指定从哪行开始以及返回的行数。
SELECT prod_name
FROM products
LIMIT 5 OFFSET 5;
注释
随着 SQL 语句越来越复杂,我们需要添加一些注释,便于自己以及别人参考。有两种不同类型的注释:
- 单行注释,和 SQL 语句在同一行。
SELECT prod_name -- 这是一条注释
FROM products;
- 多行注释
/*
这是一条注释
这是一条注释
这是一条注释
*/
SELECT prod_name
FROM products;
小结
- 使用
SELECT
语句检索单个列、多个列以及所有表列。 - 如何返回不同的值,如何注释代码。
- 如何限制结果集返回的数量
备注:示例中用到的表和数据可以通过链接(https://github.com/songw/sql)下载。
本系列目录:零基础入门 SQL 系列之(一)查询数据
零基础入门 SQL 系列之(二)排序
零基础入门 SQL 系列之(三)过滤数据
零基础入门 SQL 系列之(四)内置函数
零基础入门 SQL 系列之(五)数据汇总
零基础入门 SQL 系列之(六)表连接
零基础入门 SQL 系列之(七)组合
零基础入门 SQL 系列之(八)插入、更新、删除
零基础入门 SQL 系列之(九)创建和操作表
零基础入门 SQL 系列之(十)视图