第三節:排序檢索資料
3.1 單個列的排序
上面一章說了檢索資料,也提了一下排序檢索資料,我們需要他們的靈活是使用,來完成我們需求,包括後面的條件,連表查詢等。
其實,檢索的資料的顯示並不是純粹的隨機顯示。如果不排序,它會從他的底層的檢索出來的順序進行顯示,還可以是資料當初新增到表中的資料。但是資料經過後面的刪除和更新,則此順序將受到dbms重用**記憶體空間的影響。因此,如果不明確控制的話,不能依賴該排序。關聯式資料庫設計理論認為,如果不明確規定排序順序,則不應該假定檢索出的資料的順序有意義。
子句(clause) sql語句有子句構成,有些子句是必須的,而有些是可選的。乙個子句通常是由乙個關鍵字加上所提供的資料組成。子句的例子有select語句和from子句。
為了明確地排序用select語句檢索出資料,可使用order by 子句。order by 子句取乙個或多個列的名字。根據子句進行排序。
格式;select * from table_name order by prod_name;
分析:這條sql語句會根據prod_name 列以字母順序進行排序,如果是資料型別, 是按照資料的大小進行排序的
注意:1.order by 子句的位置只能在子句的最後面,該語句次序不對將會出現錯誤資訊
2.通過非選擇器進行排序 通常order by子句中指定使用的列是為顯示所選擇的列,也就是必須查出來。
3.2 多個列的排序
理論:其實在我們工作中,有時候會出現這中情況,我們進行顯示雇員的名單的時候,我們要先根據姓去排序,但是公司裡面很多是同乙個姓的人,在這個時候,我就在根據名去排序,對於這中情況,我們需要對多個表進行排序
我們為了實現這中排序,我們需要多個排序多個列名,列名與列名之間用逗號去隔開
格式:select * from table_name order by prod_price,prod_name;
分析:這條sql語句表示,我們先根據prod_price 進行排序,然後在根據prod_name 進行排序;
注意:對於多個列的排序,對於prod_name 進行排序的話,只能是prod_price排序的時候,有資料相同的時候,才會執行後面的排序,如果沒有,這prod_name 則不進行排序
3.3 按照指定位置進行排序
除了能用列名進行排序外,我們的order by 還支援相對列位置進行排序
格式:select * from table_name order by 2,4;
分析:上面的語句表示,order by 2,4 指定是列名的相對位置而不是列名,order by 表示按照select清單中的第二個列進行排序;order by 2,4 表示先按照第二列進行排序,然後相同的在按照第四列進行排序。
注意:1.這樣的技術好處在與不寫列名.
2.但是缺點比較明顯,那就是後面增加了列名和指定錯誤的列名,當進行更改的時容易錯誤地資料庫進行排序(忘記對order by 語句的改動)
3.4 指定排序順序
上面排序的時候沒有寫方向,也就是公升序,(a-->z),這就是預設的排序的方式(asc),當我們沒有寫排序方向時候,就會按照公升序進行排序;但是裡面還有一種排序方式那就是降序(z-->a) 必須用desc去表明,去指定
格式:select * from table_name order by prod_name desc;
分析:上面的sql就會根據prod_name 的降序進行排序;
注意:1.如果多個列進行排序,並且按照不同的排序方式進行排序,這個時候我們需要在不通的列名進行指定排序方式
2.區分大小寫和排序順序
a和a相同嗎?a在b前面還是在z後面?這個問題你是否想過,其實這個答案是基於資料庫管理員進行設定,
在字典中,a和a是相同的,簡單的order by 是無法改變這中情況的,必須聯絡dbms資料庫管理員進行改變
SQL語句第三節
這裡以student表為例 解釋 select是關鍵字,表示將要執行乙個查詢,代表 全部字段 from表示將要從哪個表查詢 注意 查詢結果也是乙個二維表,它包含列名和每一行的資料 select語句其實並不要求一定要有from子句。我們來試試下面的select語句 具體查詢 select name,a...
第三節 控制流語句
1,迴圈控制語句 while格式 while 判斷條件 執行過程 先判斷 判斷條件 是否為真,如果為真則執行 迴圈體執行內容 執行完之後再回來判斷 判斷條件 是否為真,以此一直執行判斷,直到 判斷條件 為假的時候退出while ps 判斷條件它支援bool型別,float.0則為假,非0為真 也支援...
編譯原理 第三節
我們知道世界上存在很多種語言 我們可以把他們分為自然語言 人們日常交流的工具 和程式語言。自然語言複雜且難以描述,程式語言結構規整,便於處理。但兩者又有共性,即核心都由語法和語義兩部分組成。那什麼是語言呢?首先來看一下字母表定義 字母表是元素的非空有窮集合。字母表包含了語言中允許出現的全部符號。例如...