第2课 检索数据
2.5 检索不同的值
SELECT DISTINCT vend_id
FROM Products;
注意:不能部分使用DISTINCT
,DISTINCT
关键字作用于所有的列,不仅仅是跟在其后的那一列。(即后面的的列组合不同就会显示)
2.6 限制结果
SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;
# 第一个数字是检索的行数,第二个数字是指从哪开始。
# 简写形式
SELECT prod_name
FROM Products
LIMIT 5, 5; # 注意数字是反着的,前面表示行数,后面表示起始位置。
第一个被检索的是第0行,而不是第一行。
第3课 排序检索数据
3.1 排序数据
注意:order by子句的位置。在指定一个一条ORDER BY 子句时,应该保证它是SELECT 语句中最后一条子句。
通过非选择列进行排序:通常,ORDER BY 子句中使用的列将是为显示而选择的列。但是,用非检索的列排序数据是完全合法的。
3.2 按多个列排序
select prod_id, prod_price, prod_name
from Products
order by prod_price, prod_name;
先按价格进行排序,价格相同的再按名称排序。
3.3 按列位置排序
select prod_id, prod_price, prod_name
from Products
order by 2, 3;
order by 2
表示按SELECT 清单中的第二个列prod_price 进行排序。好处在于不用重新输入列名,显然,当根据不出现在SELECT 清单中的列进行排序时,不能采用这项技术。
3.4 指定排序方向
order by
默认升序排序,关键字DESC
用于指定降序排序。
如果想在多个列上进行降序排序,必须对每一列指定DESC
关键字。
select prod_id, prod_price, prod_name
from products
order by prod_price desc, prod_name;
# 先按prod_price降序排序,prod_price相同的话按升序排序