SQL 注釋 排序檢索資料

2021-10-03 22:27:35 字數 3399 閱讀 7580

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

byorderid

;

輸出

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

通過非選擇列進行排序

order by子句中使用的列將是為顯示而選擇的列,但是,實際上並不一定這樣,用非檢索的列排序資料是完全合法的.

4.按多個列排序

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

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

select

orderid

,productid

,quantity

from

`order

details

`order

byproductid

,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

byorderid

desc

,productid

;

desc關鍵字只應用到直接位於其前面的列名,在上列中,只對orderid列指定desc,對productid列不指定,因此,orderid列以降序排序,而productid列任按標準公升序排序.

想在多個列上降序排序

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

SQL 排序檢索資料

select prod name from products 返回的資料 prod name fish bean bag toy bird bean bag toy rabbit bean bag toy 8 inch teddy bear 12 inch teddy bear 18 inch te...

SQL檢索列排序

對檢索列進行排序 select column a from table a order by column a 使用order by語句對column a排序對檢索的多列進行排序 先排column a,後排column b select column a,column b from table a ...

SQL 檢索排序資料(ORDER BY子句)

order by 子句用於對結果集按照乙個列或者多個列進行排序。order by 子句預設按照公升序對記錄進行排序。如果需要按照降序對記錄進行排序,您可以使用 desc 關鍵字。注意 order by 子句應該位於from子句之後,若使用limit關鍵字時,limit關鍵字必須要位於order by...