目錄
一、select語句
1.檢索單個列(SELECT 列名 FROM 表名;)
2.檢索多個列(SELECT 列名1,列名2,列名3? FROM 表名;)
?3.檢索所有的列(SELECT * FROM 表名;)
4.檢索不同的行(SELECT 列名 FROM 表名;)
5.限制結(jié)果(SELECT 列名 FROM 表名 LIMIT 行數(shù);)
6.使用完全限定的表名(SELECT 表名.列名 FROM 表名;)
二、排序檢索數(shù)據(jù)
1.排序數(shù)據(jù)
?2.按多個列排序
3.指定排序方向
4.limit和order by子句的結(jié)合使用
一、select語句
最經(jīng)常使用的語句就是select語句,它的作用是從一個或多個表中檢索信息。為了使用select檢索數(shù)據(jù),至少給出兩條信息-----想選擇什么以及從什么地方選擇。
1.檢索單個列(SELECT 列名 FROM 表名;)
輸入:select? prod_name from products;
輸出:
注意:結(jié)束SQL語句:如果使用mysql命令行,多條SQL語句必須以分號(;)分隔,且SQL語句必須加上分號來結(jié)束。
SQL語句的大小寫問題:SQL語句不區(qū)分大小寫!??!SELECT和select是相同的,寫成Select也沒有關(guān)系。但是把SQL的關(guān)鍵字使用大寫,表名等使用小寫,可以使代碼更易于閱讀和調(diào)試。
2.檢索多個列(SELECT 列名1,列名2,列名3? FROM 表名;)
使用同一個SELECT語句檢索多個列,需要在每個列名之后加上逗號,最后一個列名不需要加。
輸入:?select vend_id,vend_name from vendors;
?3.檢索所有的列(SELECT * FROM 表名;)
可以通過在實際列名的位置使用星號(*)通配符來檢索。
輸入:select * from vendors;
?注意:除非需要檢索表中的所有列,否則最好不使用(*)通配符,檢索不需要的列會降低檢索效率和應(yīng)用程序的性能。
4.檢索不同的行(SELECT 列名 FROM 表名;)
假如想要獲取所有的ID
輸入:select vend_id from vendors;
?注意:如果所獲取的數(shù)據(jù)有重復出現(xiàn)的,可以使用DISTINCT關(guān)鍵字,此關(guān)鍵字指示MySQL只返回不同的值。即(SELECT DISTINCT vend_id FROM vendors;)
5.限制結(jié)果(SELECT 列名 FROM 表名 LIMIT 行數(shù);)
為了返回第一行或者前幾行,可以使用LIMIT子句。
輸入:select vend_id ?from vendors limit 4;
注意: 如果要返回下一個4行,即從行4開始的4行,如下所示:
select vend_id ?from vendors limit 4,4;?
如果行數(shù)不夠,MySQL只返回能返回的行數(shù)。
6.使用完全限定的表名(SELECT 表名.列名 FROM 表名;)
使用完全限定的名字來引用列(同時使用表名和列名)。
輸入:?select vendors.vend_name from vendors;
?注意:表名也可以是限定的,前提是這個表名確實存在于某個數(shù)據(jù)庫中。
二、排序檢索數(shù)據(jù)
1.排序數(shù)據(jù)
一般來說返回表中的某個列沒有特定順序,但是檢索出來的數(shù)據(jù)也不是純粹的隨機顯示,而是以底層表中出現(xiàn)的順序顯示。如果數(shù)據(jù)后來進行過更新或刪除,這個順序就會受到MySQL重用回收存儲空間的影響。關(guān)系數(shù)據(jù)庫設(shè)計理論認為,如果不明確規(guī)定排序順序,則不應(yīng)該假定檢索出的數(shù)據(jù)的順序有意義。
為了明確的排序用SELECT檢索出來的數(shù)據(jù),可以使用ORDER BY 子句。ORDER BY子句取一個或多個列的名字對輸出進行排序。輸出結(jié)果將以字母順序進行排序
格式:SELECT 列名 FROM 表名 ORDER BY 列名;
輸入:?select vend_name from vendors order by vend_name;
?2.按多個列排序
為了按多個列進行排序,則需要指定列名,列名之間用逗號(,)分隔。
格式:SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 列名1,列名2,列名3;
輸入:select prod_price,prod_name from products order by prod_price,prod_name;
?以上排序按照價格進行排序。僅在多個行具有相同的prod_price值時才按照prod_price排序。如果prod_price列中的值是唯一的,則不會按照prod_price排序。
3.指定排序方向
數(shù)據(jù)排序不只是升序排序(A-Z),也有降序排序(Z-A),為了使用降序排序,可以使用DESC關(guān)鍵字。
格式:SELECT 列名1,列名2,列名3 FROM 表名 ORDER BY 列名1 DESC;
輸入:?select prod_price,prod_name from products order by prod_price desc;
?如果要使用多個列進行排序怎么辦?則可以降序進行排序之后再對產(chǎn)品進行排序。
desc只對prod_price有效,而其他的依舊以升序排序。
示例:
?注意:如果想要多個列都降序排序,則每個列后都要加上desc關(guān)鍵字。
4.limit和order by子句的結(jié)合使用
使用limit和order by的組合,可以找到某個列中最高或最低的值。
輸入:select prod_price,prod_name from products order by prod_price desc limit 1;
?注意:在給出order by子句時,要保證它位于from之后,如果使用limit,它必須位于order by之后。使用子句順序不對將會產(chǎn)生錯誤。文章來源:http://www.zghlxwxcb.cn/news/detail-615625.html
即from------>order by------->limit文章來源地址http://www.zghlxwxcb.cn/news/detail-615625.html
到了這里,關(guān)于MySQL檢索數(shù)據(jù)和排序數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!