亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区

當前位置:首頁 > 網站舊欄目 > 學習園地 > 程序開發教程 > 快速掌握MySQL數據庫中SELECT語句

快速掌握MySQL數據庫中SELECT語句
2010-01-17 11:01:11  作者:  來源:
 本文針對MySQL數據庫中的SELECT語句快速精細掌握。 
  MySQL中SELECT語句的基本語法是:

以下是引用片段:
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] 
[SQL_BIG_RESULT] [HIGH_PRIORITY] 
[DISTINCT|DISTINCTROW|ALL] 
select_list 
[INTO {OUTFILE|DUMPFILE} 'file_name' export_options]
 [FROM table_references [WHERE where_definition]
 [GROUP BY col_name,...] [HAVING where_definition] 
[ORDER BY {unsighed_integer|col_name|formura} [ASC|DESC],...] 
[LIMIT [offset,] rows] [PROCEDURE procedure_name]] 


  從這個基本語法可以看出,最簡單的SELECT語句是SELECT select_list,實際上利用這個最簡單的SELECT語句,你也可以完成許多你期待的功能,首先你能利用它進行MySQL所支持的任何運算,例如:SELECT 1+1,它將返回2;其次,你也能利用它給變量賦值,而在PHP中,運用SELECT語句的這種功能,你就可以自由地運用MySQL的函數為PHP程序進行各種運算,并賦值給變量。在很多的時候,你會發現MySQL擁有許多比PHP更為功能強大的函數。

  STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、HIGH_PRIORITY是MySQL對ANSI SQL92的擴展。如果優化器以非最佳次序聯結表,使用STRAIGHT_JOIN可以加快查詢

  SQL_SMALL_RESULT和SQL_BIG_RESULT是一組相對的關鍵詞。它們必須與GROUP BY、DISTINCT或DISTINCTROW一起使用。SQL_SMALL_RESULT告知優化器結果會很小,要求MySQL使用臨時表存儲最終的表而不是使用排序;反之,SQL_BIG_RESULT告知優化器結果會很小,要求MySQL使用排序而不是做臨時表。

  HIGH_PRIORITY將賦予SELECT比一個更新表的語句更高的優先級,使之可以進行一次優先的快速的查詢。

  以上四個關鍵詞的使用方法的確比較晦澀。幸運的是,在絕大多數情況下,在MySQL中我們完全可以選擇不使用這四個關鍵詞。

  DISTINCT、DISTINCTROW對查詢返回的結果集提供了一個最基本但是很有用的過濾。那就是結果集中只含非重復行。在這里要注意的是,對關鍵詞DISTINCT、DISTINCTROW來說,空值都是相等的,無論有多少NULL值,只選擇一個。而ALL的用法就有畫蛇添足之嫌了。它對結果集的產生沒有任何影響。

  INTO {OUTFILE|DUMPFILE} 'file_name' export_options,將結果集寫入一個文件。文件在服務器主機上被創建,并且不能是已經存在的。語句中的export_options部分的語法與用在LOAD DATAINFILE語句中的FIELDS和LINES子句中的相同,我們將在MySQL進階_LOAD DATA篇中詳細討論它。而OUTFILE與DUMPFILE的關鍵字的區別是:后前只寫一行到文件,并沒有任何列或行結束。

  select list:其中可以包含一項或多項下列內容: 


  1、“*”,表示按照create table的順序排列的所有列。

  2、按照用戶所需順序排列的列名的清單。

  3、可以使用別名取代列名,形式如下:column name as column_heading。

  4、表達式(列名、常量、函數,或以算術或逐位運算符連接的列名、常量和函數的任何組合)。

  5、內部函數或集合函數。

  6、上述各項的任何一種組合。

  FROM:決定SELECT命令中使用哪些表。一般都要求有此項,除非select_list中不含列名(例如,只有常量、算術表達式等)。如果表項中有多個表,用逗號將之分開。在關鍵詞FROM后面的表的順序不影響結果。

  表名可以給出相關別名,以便使表達清晰。這里的語法是tbl_name [AS] alias_name。例如:

  select t1.name,t2.salary from employee as t1,info as t2 where t1.name=t2.name與select t1.name,t2.salary from employee t1,info t2 where t1.name=t2.name是完全等價的。

  所有對該表的其他引用,例如在where子句和having子句中,都要用別名,別名不能以數字開頭。
 
  where子句設置了搜索條件,它在insert,update,delete語句中的應用方法也與在select語句中的應用方法完全相同。搜索條件緊跟在關鍵詞where的后面。如果用戶要在語句中使用多個搜索條件,則可用and或or連接。搜索條件的基本語法是[not] expression comparison_operator expression;[not] expression [not] like “match_string”;[not] expression is [not] null;[not] expression [not] between expression and expression;[not] column_name join_operator column_name;[not] boolean_expression。

  and:用來聯結兩個條件,并在兩個條件都是TRUE的時候返回結果。當在同一語句中使用多個邏輯運算符時,and運算符總是最優先,除非用戶用括號改變了運算順序。

  or:用來聯結兩個條件,當兩個條件中有任一條件是TRUE的時候返回結果。當在同一語句中使用多個邏輯運算符時,運算符or通常在運算符and之后進行運算。當然用戶可以使用括號改變運算的順序。

  between:用來標識范圍下限的關鍵詞,and后面跟范圍上限的值。范圍where @val between x and y包含首尾值。如果between后面指定的第一個值大于第二個值,則該查詢不返回任何行。

  column_name:在比較中使用的列名。在會產生歧義時,一定要指明列所在的表名。

  comparison_operator:比較運算符。見下表:

以下是引用片段:
符號   意義 
=      等于 
>      大于 
<      小于 
>=     大于等于 
<=     小于等于 
!=     不等于 
<>     不等于 


  在比較char,varchar型數據時,“<”的意思是更接近字母表頭部,“>”代表更接近字母表尾部。一般來說,小寫字母大于大寫字母,大寫字母大于數字,但是這可能依賴于服務器上操作系統的比較順序。

  在比較時,末尾的空格是被忽略的。例如,“Dirk”等于“Dirk ”。

  在比較日期時,“<”表示早于,“>”表示晚于。

  在使用比較運算符比較character和datetime數據時,需用引號將所有數據引起來。

  expression:可能是列名、常數、函數或者是列名或常數的任意組合,以及以算術運算符或逐位運算符連接的函數。算術運算符如下表所示:

以下是引用片段:
符號   意義 
+      加號 
-      減號    
*      乘號 
/      除號 


  is null:在搜索一個NULL值時使用。 

  like:關鍵詞,對char、varchar和datetime(不包括秒和毫秒)可以使用like,在MySQL中like也可以用在數字的表達式上。

  當用戶在搜索datetime型數據時,最好是使用關鍵詞like,因為完整的datetime記錄包含各種各樣的日期組件。例如用戶在列arrival_time中加入一個值“9:20”,而子句where arrival_time=“9:20”卻沒有發現它,因為MySQL把錄入的數據轉換成了“Jan 1,1900 9:20AM”。然而子句where arrival_time like“%9:20%”就能找到它。

  boolean_expression:返回“true”或“false”值的表達式。

  match_string:由字符和通配符組成的串,用單引號或雙引號引起來,是匹配模式。通配符如下表所示:

以下是引用片段:
符號       意義 
%          0或多個字符的字符串 
_           任何一單個字符 
not:     否定任何邏輯表達式,或是關鍵詞,
             如like,null,between等。 
group    by和having子句在select語句中使用,
              可以將表劃分成組并返回匹配having子句條件的組。 
語法:select語句開頭 
group by [all] aggregate_free_expression [,aggregate_free_expression]* 
[having search_conditions] 

  select語句結尾

  group by:指定表將劃分的組群,如果在select表項中包含集合函數,則為各組計算一個總計值。這些總計值的結果以新的列顯示,而不是新的行。在having子句中用戶可以引用這些新的總計列。在group by之前的select_list中可以使用avg、count、max、min和sum等集合函數。表可以被任意列的組合分組。

  all:在結果中包含所有組群的Transact-SQL擴展,這里的所有組群甚至包括那些被where子句所排除的組群。如果同時使用having子句,將對all的意義進行否定。

  aggregate_free_expression:不包含集合函數的表達式,Transact-SQL擴展允許在用列名稱分組的同時,用無集合函數的表達式分組。

  having:為group by子句設置條件,類似于where為select語句設置條件的方法。having的查找條件可以包括集合函數表達式。除此之外,它的查找條件與where查找條件相同。

  order by:按列排列結果。對select輸出的列可以用列名、列別名或列位置來引用。例如:select id as myid,name as myname from mytable group by id、select id as myid,name as myname from mytable group by myid、select id as myid,name as myname from mytable group by 1這三句是完全等價的。當然,我們不贊成用第三種用法,這將給程序的可讀性帶來不好的影響。 為了以降序排列,把DESC關鍵詞加到order by子句中你要排序的列名前。缺省是升序,你也可以用ASC關鍵詞明確指定。

  limit 子句:用來限制select語句返回的行數。limit取1個或2個數字參數,如果給定2個參數,第一個指定要返回的第一行的偏移量,第二個指定返回行的最大數目。初始行的偏移量是0(不是1)。如果給定一個參數,它指出偏移量為0的返回行的最大數目。也就是說limit 5和limit 0,5完全等價。

  至于procedure關鍵詞的含義,我也沒搞得太清楚,好象是對存儲過程的支持,而MySQL本身不支持存儲過程,看來是為了將來擴充的需要而保留的吧。

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区
欧美资源在线观看| 久久av综合网| 青草青草久热精品视频在线观看| 川上优av一区二区线观看| 欧美黄网免费在线观看| 欧美日韩第一页| 一区二区精品在线| 亚洲黄色一区二区三区| 亚洲综合日韩在线| 亚洲精品乱码久久久久久蜜桃91 | 久久综合亚洲社区| 久久福利视频导航| 欧美激情日韩图片| 亚洲7777| 欧美亚洲日本在线观看| 国内精品在线观看视频| 国产欧美日韩中文字幕| 91福利视频导航| 久久久久久久久久久久久国产精品| 久久久久久有精品国产| 色妞一区二区三区| 国产精品精品久久久| 伊人色综合久久天天五月婷| 日韩中文在线字幕| 欧美 日韩 激情| 国产欧美久久久久| 久久婷婷国产综合尤物精品| www.日韩.com| 精品乱码一区二区三区| 亚洲一区二区三区乱码| 日韩国产一区久久| 国产一区二区四区| 777精品视频| 久热精品视频在线| 宅男噜噜99国产精品观看免费| 亚洲精品国产系列| 欧美日韩亚洲免费| 成人国产精品色哟哟| 久久久久久人妻一区二区三区| 国产精品久久久久9999小说| 亚洲最大福利网站| 黄色国产精品一区二区三区| 91久久精品视频| 国产精品久久一| 五月天综合婷婷| 国产在线一区二| 国产传媒一区| 中文字幕欧美日韩一区二区| 日韩精品无码一区二区三区| 国产欧美久久久久| 久久国产精品-国产精品| 精品乱码一区二区三区| 日韩无套无码精品| 国产免费黄视频| 日韩色av导航| 午夜免费久久久久| 国产日韩欧美在线视频观看| 久久国产精品免费观看| 欧美激情喷水视频| 精品日本一区二区三区在线观看| 91久久精品国产91性色| 操人视频在线观看欧美| 热99这里只有精品| 91精品国产免费久久久久久| 欧美精品在线免费播放| 欧美日韩视频免费在线观看| 91精品国产自产在线| 美女999久久久精品视频 | 日韩少妇中文字幕| 91九色极品视频| 欧美精品激情视频| 国产一区二区视频免费在线观看| 日韩视频中文字幕| 日本91av在线播放| 国产成人+综合亚洲+天堂| 亚洲欧美日韩精品在线 | 91久久久久久久久久久| 国产精品第8页| 黄色影视在线观看| 国产成人精品一区二区| 人妻夜夜添夜夜无码av| 久久久久高清| 天天综合五月天| 国产精品91久久久久久| 午夜精品久久久久久久99黑人| 成人精品一区二区三区| 中文字幕av日韩精品| 国产区亚洲区欧美区| 久久精品日韩精品| 日韩欧美视频免费在线观看| 久久久女女女女999久久| 午夜精品一区二区三区在线播放 | 国产精品自拍合集| 欧美激情视频一区二区| 国产一区 在线播放| 欧美猛少妇色xxxxx| 蜜桃精品久久久久久久免费影院 | 国产精品久久久久久久美男 | 亚洲精品欧美日韩专区| 91精品国产91久久久久久久久| 尤物一区二区三区| 97国产一区二区精品久久呦| 亚洲 日韩 国产第一区| 国产高清精品一区二区| 日本不卡高字幕在线2019| 久久久久久久久久久国产| 奇米888一区二区三区| 国产精品视频导航| www.日韩视频| 国产综合精品一区二区三区| 久久99视频免费| 7777精品久久久久久| 青青青免费在线| 欧美精品一区二区免费| 97久久精品在线| 日本在线观看不卡| 国产精品入口免费视频一| 麻豆一区二区三区在线观看| 欧美日韩国产999| 久久综合久久网| 欧美亚洲日本黄色| 宅男av一区二区三区| 久久久水蜜桃| 欧美视频在线观看网站| 九九精品视频在线| 91精品91久久久久久| 欧美日本亚洲| 亚洲永久一区二区三区在线| 色噜噜狠狠色综合网图区| 国产伦精品一区二区三区精品视频| 午夜精品久久久久久久无码 | y97精品国产97久久久久久| 麻豆久久久av免费| 亚洲二区三区四区| 国产精品视频中文字幕91| 国产午夜福利视频在线观看| 亚洲精品影院| 国产精品久久久久久久久久直播| 99久re热视频这里只有精品6| 欧美综合激情网| 亚洲欧美日韩不卡一区二区三区| 日韩视频在线一区| 国产精品亚洲第一区| 日本福利视频导航| 色综合久久88色综合天天看泰| 久久国产精品久久| 国产美女久久精品| 欧美婷婷久久| 日韩av免费看| 中文字幕日韩精品无码内射| 久久精品亚洲94久久精品| 丰满人妻中伦妇伦精品app| 欧美一区二区三区电影在线观看| 国产精品成人观看视频国产奇米 | 日本女人高潮视频| 欧美精品久久久久| 国产精品入口夜色视频大尺度| 91精品国产综合久久久久久丝袜| 国产综合第一页| 欧美综合国产精品久久丁香| 性欧美大战久久久久久久| 欧美激情视频一区| 国产精品美女av| 国产成人福利视频| 91成人福利在线| av观看免费在线| 国产男女在线观看| 国产一区在线免费| 狠狠色综合网站久久久久久久| 日本三级中文字幕在线观看| 亚洲国产日韩综合一区| 中文字幕欧美日韩一区二区| 精品免费国产| 欧美另类第一页| 国产精品二区二区三区| 国产精品免费一区二区三区 | 久久激情视频免费观看| 国产成人在线一区| 久久这里只有精品18| 99视频精品免费| 99久久久精品免费观看国产| 国产精品永久免费视频| 国产在线久久久| 免费日韩中文字幕| 国内精品视频久久| 国产日韩中文字幕| 国产欧美日韩中文字幕在线| 国产午夜伦鲁鲁| 麻豆av一区| 国产日韩av网站| 国产免费成人av| 99在线高清视频在线播放| 成人av.网址在线网站| www黄色av| 国产经品一区二区| 国产成人aa精品一区在线播放| 久久久久一区二区三区| 日韩在线视频中文字幕| 国产精品视频一区二区三区四| 国产精品久久久久99|