SQL 註釋 排序檢索數據

1.使用註釋
SQL語句是由DBMS處理的指令,如果你希望不進行處理和執行的文本,你就需要註釋.
隨着SQL語句變長,複雜度增加,你會想添加一些描述性的註釋,供別人參考.
你也可以使用它註釋代碼,可以可以暫時停止要執行的代碼.

2.列如
2.1註釋使用–(l兩個連字符)嵌在行內,-- 之後就是文本註釋.描述create table語句中列.

SELECT couname   -- 這是一條註釋
FROM course;

2.2在開頭使用#,這一整行都將爲註釋,

#這是一條註釋
SELECT couname   
FROM course;

2.3也可以進行多行註釋
在這裏插入圖片描述

3.排序檢索數據
使用select語句的ORDER BY子句,根據需要排序檢索出的數據.

排序數據
SQL語句返回某個數據庫表的單個列,但看輸出,並沒有特定的順序

SELECT OrderID
FROM `order details`;

輸出
在這裏插入圖片描述

檢索的數據並不是隨機顯示的,如果不排序,數據一般將以它在底層表中出現的順序顯示,這有可能是數據最初添加到表中的順序,但是,如果數據隨後進行過更新或刪除,那麼這個順序將會受到DBMS重用回收存儲空間的方式影響,因此,如果不明確控制,則最終的結果不能依賴該排序順序.
關係數據庫認爲,如果不明確規定排序順序,則不應該假定檢索出的數據的順序有任何意義.

爲了明確排序用SELECT語句檢索出的數據,可以使用ORDER BY子句,ORDER BY子句取一個或多個列的名字,據此對輸出進行排序.

對OrderID列以字母順序排序數據的ORDER BY子句外,這語句與前面的語句相同.

SELECT OrderID
FROM `order details`
ORDER BY OrderID;

輸出
在這裏插入圖片描述

ORDER BY子句的位置,在指定一條ORDER BY子句時,應該保證它是SELECT語句中最後一條子句,如果它不是最後的子句,會報錯.

通過非選擇列進行排序
ORDER BY子句中使用的列將是爲顯示而選擇的列,但是,實際上並不一定這樣,用非檢索的列排序數據是完全合法的.

4.按多個列排序
經常需要不止一個列進行數據排序.如果有張僱員表(首先按姓排序,然後在每個姓中再按名排序),如果多個僱員相同的姓,這樣做很有幫助.

按多個列排序,簡單指定列名,列名之間用逗號隔開(選擇多個列那樣).

SELECT OrderID,ProductID,Quantity
FROM `order details`
ORDER BY ProductID,Quantity;

輸出
其中兩個列對結果進行排序–首先按ProductID,在按Quantity排序.
在這裏插入圖片描述
重要的理解按多個列排序時,排序順序完全按規定進行,對於上面來講,僅在多個行具有相同的 ProductID值時纔對產品按Quantity進行排序,如果ProductID所有的值都是唯一的,則不會按Quantity排序.

5.按列位置排序
這裏輸出與上面的查詢相同,不同在於ORDER BY子句,SELECT清單中指定的是選擇列的相對位置而不是列名.ORDER BY 2表示按SELECT清單的第二個列ProductID進行排序,ORDER BY 2,3表示先按ProductID,在按Quantity進行排序.
這裏好處是不用重新輸入列名,但是也有缺點,首先,不明確出列名有可能造成錯用列名排序,其次,在對SELECT清單進行更改時容易錯誤地對數據進行排序(忘記對ORDER BY子句做相應的改動),最後,如果進行排序的列不在SELECT清單中,顯然不能使用這些技術.
在這裏插入圖片描述

6.指定排序方向
數據排序不限於升序排序(從A到Z),這只是默認的排序順序,還可以使用ORDER BY子句進行降序(從Z到A)排序,爲了進行降序排序,必須指定DESC關鍵字.

下列以OrderID降序來排序產品(最貴的排在最前面)

SELECT OrderID,ProductID,Quantity
FROM `order details`
ORDER BY OrderID DESC;

在這裏插入圖片描述
如果打算用多個列排序,怎麼辦,下面列子以降序排序產品(最貴的在前面),在加上產品名;

SELECT OrderID,ProductID,Quantity
FROM `order details`
ORDER BY OrderID DESC, ProductID;

DESC關鍵字只應用到直接位於其前面的列名,在上列中,只對OrderID列指定DESC,對ProductID列不指定,因此,OrderID列以降序排序,而ProductID列任按標準升序排序.
在這裏插入圖片描述

想在多個列上降序排序
如果想在多個列上進行降序排序,必須對每一列指定DESC關鍵字.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章