SQL语言学习笔记——排序检索数据

在数据库中,如果检索出的数据没有明确规定排序顺序,则不应该假定检索的数据顺序有任何意义。

我们排序数据,一般用ORDER BY 关键字,并且使用在SELECT语句中的最后一条字句。

例如想要在productS表中,按prod_name对数据进行排序:

SELECT PROD_NAME
FROM PODUCTS
ORDER BY PROD_NAME;

这样prod_name列就会按照字母顺序输出。

若想对多列进行排序,像这样:

SELECT PRO_ID,PROD_PRICE,PROD_NAME
FROM PRODUCTS
ORDER BY PROD_PRICE,PROD_NAME;

对多列进行排序时, 先按照prod_price进行排序,遇到prod_price一样的产品,则按照prod_name字母顺序排序,若没有相同价格的产品,则不会按照产品名进行排序。

一般排序结果都是按升序输出(如A到Z,1-9),这是因为数据库系统默认使用ASC(ASCENDING),所以在需要按降序输出结果时,需要在ORDER BY字句中列名后面使用DESC(DESCENDING),如下面代码显示:

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC, prod_name;

当然,如果产品名也需要使用降序,则也需要在后面加上DESC。


挑战题
1. 编写SQL 语句,从Customers 中检索所有的顾客名称(cust_names),
并按从Z 到A 的顺序显示结果。

SELECT cust_names
FROM Customers
ORDER BY cust_names DESC;


2. 编写SQL 语句,从Orders 表中检索顾客 ID(cust_id)和订单号
(order_num),并先按顾客ID 对结果进行排序,再按订单日期倒序
排列。

SELECT cust,id,order_num
FROM Orders
ORDER BY cust_id,order_date DESC;


3. 显然,我们的虚拟商店更喜欢出售比较贵的物品,而且这类物品有很多。
编写SQL 语句,显示OrderItems 表中的数量和价格(item_price),
并按数量由多到少、价格由高到低排序。

SELECT quantity,item_price
FROM OrderItems
ORDER BY quantity DESC,item_price DESC;


4. 下面的SQL 语句有问题吗?(尝试在不运行的情况下指出。)
SELECT vend_name,
FROM Vendors
ORDER vend_name DESC;

1)vend_name后面加了逗号 ,一般只有在列名之间使用逗号;

2)ORDER 后面少了BY,不能漏掉。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值