国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费

當(dāng)前位置:首頁(yè) > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 程序開發(fā)教程 > 快速掌握MySQL數(shù)據(jù)庫(kù)中SELECT語(yǔ)句

快速掌握MySQL數(shù)據(jù)庫(kù)中SELECT語(yǔ)句
2010-01-17 11:01:11  作者:  來(lái)源:
 本文針對(duì)MySQL數(shù)據(jù)庫(kù)中的SELECT語(yǔ)句快速精細(xì)掌握。 
  MySQL中SELECT語(yǔ)句的基本語(yǔ)法是:

以下是引用片段:
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]] 


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

  STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、HIGH_PRIORITY是MySQL對(duì)ANSI SQL92的擴(kuò)展。如果優(yōu)化器以非最佳次序聯(lián)結(jié)表,使用STRAIGHT_JOIN可以加快查詢

  SQL_SMALL_RESULT和SQL_BIG_RESULT是一組相對(duì)的關(guān)鍵詞。它們必須與GROUP BY、DISTINCT或DISTINCTROW一起使用。SQL_SMALL_RESULT告知優(yōu)化器結(jié)果會(huì)很小,要求MySQL使用臨時(shí)表存儲(chǔ)最終的表而不是使用排序;反之,SQL_BIG_RESULT告知優(yōu)化器結(jié)果會(huì)很小,要求MySQL使用排序而不是做臨時(shí)表。

  HIGH_PRIORITY將賦予SELECT比一個(gè)更新表的語(yǔ)句更高的優(yōu)先級(jí),使之可以進(jìn)行一次優(yōu)先的快速的查詢。

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

  DISTINCT、DISTINCTROW對(duì)查詢返回的結(jié)果集提供了一個(gè)最基本但是很有用的過(guò)濾。那就是結(jié)果集中只含非重復(fù)行。在這里要注意的是,對(duì)關(guān)鍵詞DISTINCT、DISTINCTROW來(lái)說(shuō),空值都是相等的,無(wú)論有多少NULL值,只選擇一個(gè)。而ALL的用法就有畫蛇添足之嫌了。它對(duì)結(jié)果集的產(chǎn)生沒(méi)有任何影響。

  INTO {OUTFILE|DUMPFILE} 'file_name' export_options,將結(jié)果集寫入一個(gè)文件。文件在服務(wù)器主機(jī)上被創(chuàng)建,并且不能是已經(jīng)存在的。語(yǔ)句中的export_options部分的語(yǔ)法與用在LOAD DATAINFILE語(yǔ)句中的FIELDS和LINES子句中的相同,我們將在MySQL進(jìn)階_LOAD DATA篇中詳細(xì)討論它。而OUTFILE與DUMPFILE的關(guān)鍵字的區(qū)別是:后前只寫一行到文件,并沒(méi)有任何列或行結(jié)束。

  select list:其中可以包含一項(xiàng)或多項(xiàng)下列內(nèi)容: 


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

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

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

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

  5、內(nèi)部函數(shù)或集合函數(shù)。

  6、上述各項(xiàng)的任何一種組合。

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

  表名可以給出相關(guān)別名,以便使表達(dá)清晰。這里的語(yǔ)法是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是完全等價(jià)的。

  所有對(duì)該表的其他引用,例如在where子句和having子句中,都要用別名,別名不能以數(shù)字開頭。
 
  where子句設(shè)置了搜索條件,它在insert,update,delete語(yǔ)句中的應(yīng)用方法也與在select語(yǔ)句中的應(yīng)用方法完全相同。搜索條件緊跟在關(guān)鍵詞where的后面。如果用戶要在語(yǔ)句中使用多個(gè)搜索條件,則可用and或or連接。搜索條件的基本語(yǔ)法是[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:用來(lái)聯(lián)結(jié)兩個(gè)條件,并在兩個(gè)條件都是TRUE的時(shí)候返回結(jié)果。當(dāng)在同一語(yǔ)句中使用多個(gè)邏輯運(yùn)算符時(shí),and運(yùn)算符總是最優(yōu)先,除非用戶用括號(hào)改變了運(yùn)算順序。

  or:用來(lái)聯(lián)結(jié)兩個(gè)條件,當(dāng)兩個(gè)條件中有任一條件是TRUE的時(shí)候返回結(jié)果。當(dāng)在同一語(yǔ)句中使用多個(gè)邏輯運(yùn)算符時(shí),運(yùn)算符or通常在運(yùn)算符and之后進(jìn)行運(yùn)算。當(dāng)然用戶可以使用括號(hào)改變運(yùn)算的順序。

  between:用來(lái)標(biāo)識(shí)范圍下限的關(guān)鍵詞,and后面跟范圍上限的值。范圍where @val between x and y包含首尾值。如果between后面指定的第一個(gè)值大于第二個(gè)值,則該查詢不返回任何行。

  column_name:在比較中使用的列名。在會(huì)產(chǎn)生歧義時(shí),一定要指明列所在的表名。

  comparison_operator:比較運(yùn)算符。見下表:

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


  在比較char,varchar型數(shù)據(jù)時(shí),“<”的意思是更接近字母表頭部,“>”代表更接近字母表尾部。一般來(lái)說(shuō),小寫字母大于大寫字母,大寫字母大于數(shù)字,但是這可能依賴于服務(wù)器上操作系統(tǒng)的比較順序。

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

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

  在使用比較運(yùn)算符比較character和datetime數(shù)據(jù)時(shí),需用引號(hào)將所有數(shù)據(jù)引起來(lái)。

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

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


  is null:在搜索一個(gè)NULL值時(shí)使用。 

  like:關(guān)鍵詞,對(duì)char、varchar和datetime(不包括秒和毫秒)可以使用like,在MySQL中l(wèi)ike也可以用在數(shù)字的表達(dá)式上。

  當(dāng)用戶在搜索datetime型數(shù)據(jù)時(shí),最好是使用關(guān)鍵詞like,因?yàn)橥暾膁atetime記錄包含各種各樣的日期組件。例如用戶在列arrival_time中加入一個(gè)值“9:20”,而子句where arrival_time=“9:20”卻沒(méi)有發(fā)現(xiàn)它,因?yàn)镸ySQL把錄入的數(shù)據(jù)轉(zhuǎn)換成了“Jan 1,1900 9:20AM”。然而子句where arrival_time like“%9:20%”就能找到它。

  boolean_expression:返回“true”或“false”值的表達(dá)式。

  match_string:由字符和通配符組成的串,用單引號(hào)或雙引號(hào)引起來(lái),是匹配模式。通配符如下表所示:

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

  select語(yǔ)句結(jié)尾

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

  all:在結(jié)果中包含所有組群的Transact-SQL擴(kuò)展,這里的所有組群甚至包括那些被where子句所排除的組群。如果同時(shí)使用having子句,將對(duì)all的意義進(jìn)行否定。

  aggregate_free_expression:不包含集合函數(shù)的表達(dá)式,Transact-SQL擴(kuò)展允許在用列名稱分組的同時(shí),用無(wú)集合函數(shù)的表達(dá)式分組。

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

  order by:按列排列結(jié)果。對(duì)select輸出的列可以用列名、列別名或列位置來(lái)引用。例如: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這三句是完全等價(jià)的。當(dāng)然,我們不贊成用第三種用法,這將給程序的可讀性帶來(lái)不好的影響。 為了以降序排列,把DESC關(guān)鍵詞加到order by子句中你要排序的列名前。缺省是升序,你也可以用ASC關(guān)鍵詞明確指定。

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

  至于procedure關(guān)鍵詞的含義,我也沒(méi)搞得太清楚,好象是對(duì)存儲(chǔ)過(guò)程的支持,而MySQL本身不支持存儲(chǔ)過(guò)程,看來(lái)是為了將來(lái)擴(kuò)充的需要而保留的吧。

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费
<button id="0mgmq"><pre id="0mgmq"></pre></button>
  • <tr id="0mgmq"></tr>
  • <abbr id="0mgmq"><source id="0mgmq"></source></abbr> <button id="0mgmq"></button>
  • 精品久久久久久中文字幕动漫 | 欧美激情五月| 西西裸体人体做爰大胆久久久| 伊人久久青草| 免费精品视频一区| 丁香五月网久久综合| 国产精品久久久久久模特| 午夜精品美女久久久久av福利| 久久国产精品-国产精品| 久久精品午夜| 久久久久久九九九九| 亚洲开发第一视频在线播放| 欧美a级片网站| 亚洲日本精品国产第一区| 日本一区二区三区四区在线观看| 国产精品一区在线观看| 久久人人97超碰人人澡爱香蕉| 亚洲影视在线| 香蕉精品999视频一区二区| 激情综合中文娱乐网| 欧美+日本+国产+在线a∨观看| 亚洲永久一区二区三区在线| 亚洲欧洲另类精品久久综合| 性欧美大战久久久久久久免费观看| 欧美高清性xxxxhd| 日韩精品久久久毛片一区二区| 美乳视频一区二区| 日本精品二区| 牛牛国产精品| 亚洲高清二区| 亚洲欧美日韩国产综合精品二区 | 国产精品国产精品| 国产在线日韩| 国产精品免费一区二区三区在线观看| 亚洲欧洲日夜超级视频| 99av国产精品欲麻豆| 免费一级欧美片在线播放| 114国产精品久久免费观看| 国产精品久久久久久久久久久久冷 | 久久人人超碰| 国产日韩欧美一区二区三区四区| 精品伦精品一区二区三区视频| 日本在线成人一区二区| 日韩视频精品| 亚洲国产精品第一区二区| 香蕉精品999视频一区二区| 国产激情一区二区三区在线观看 | 亚洲第一黄色| 久久精品综合| 欧美主播一区二区三区美女 久久精品人 | 日韩亚洲视频| 亚洲福利免费| 成人午夜影院在线观看| 欧美日韩亚洲免费| 欧美日韩精品免费观看视一区二区 | 黄色另类av| 3d精品h动漫啪啪一区二区| 欧美二区在线看| 在线播放精品| 久久久久久久久一区| 中文字幕一区二区三区5566| 一区二区av| 蜜桃臀一区二区三区| 亚洲一级电影| 久久av一区二区三区漫画| 黑丝一区二区三区| 国产精品三区www17con| 亚洲最新在线| 国产91精品入口17c| 中文字幕日韩精品一区二区| 久久一日本道色综合久久| 亚洲一区二区三区免费观看| 久久婷婷av| 在线一区日本视频| 国产精品jizz视频| 伊人蜜桃色噜噜激情综合| 九色91国产| 亚洲免费婷婷| 欧美成人一区二免费视频软件| 91久久伊人青青碰碰婷婷| 欧美日韩系列| 蜜桃视频日韩| 久久中文在线| 亚洲国产日韩欧美| 午夜久久资源| 精品国产乱码久久久久久蜜柚| 日韩视频在线观看国产| 日韩一区国产在线观看| 不卡一区二区三区四区五区| 激情成人亚洲| 一区二区三区欧美成人| 国产原创精品| 久久精品五月| 99精品视频免费观看| 一区二区av| 欧美三日本三级少妇三99| 91成人免费视频| 亚洲一区二区四区| 精品不卡视频| 你懂的国产精品永久在线| 久久综合入口| 国语精品免费视频| www久久99| 久久久久久九九九九| 亚洲久久成人| 99av国产精品欲麻豆| 欧美体内she精视频在线观看| 日韩性感在线| 亚洲成人蜜桃| 午夜精品一区二区三区四区| 欧美另类网站| 欧美久久在线| 日本一区视频在线| 欧美亚洲一级二级| 久久99影院| 欧美日韩成人一区二区三区| 久久国产精品免费一区| 久久精品ww人人做人人爽| 国模一区二区三区私拍视频| 电影午夜精品一区二区三区| 国产成人av一区二区三区| 大波视频国产精品久久| 成人区精品一区二区| 国产欧美日韩亚洲| 国外成人免费视频| 久久综合入口| 亚洲三区在线| 欧美精品尤物在线| 亚洲精品影院在线观看| 在线亚洲成人| 99在线影院| 蜜桃91精品入口| 亚洲精品不卡| 一区在线免费| 亚洲专区免费| 国产精品一区二区三区精品| 精品一区久久| 亚洲精品一区二| 亚洲天堂黄色| 2022国产精品| 日本不卡一区二区三区视频| 亚洲无玛一区| 一区二区免费在线视频| 91九色偷拍| 青青草久久网络| 国内精品视频在线播放| 欧美专区18| 久久精品国产理论片免费| 一区二区不卡在线观看| 亚洲美女色禁图| 激情小说综合网| 女同性一区二区三区人了人一| 极品日韩久久| 国产成人亚洲欧美| 日韩精品久久久| 中文在线一区| 久久精品国产一区二区三区不卡| 一区二区成人国产精品| 国产乱码精品| 色女孩综合网| 亚洲免费影视| 性高潮久久久久久久久| 亚洲一区不卡| 亚洲成人自拍| 老司机精品福利视频| 一区二区不卡视频| 91超碰在线免费观看| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 一区二区激情| 亚洲啪啪av| 国产精品国产精品国产专区蜜臀ah| 亚洲人一区二区| 国产91色在线|亚洲| 韩国av一区| 日韩成人av网站| 7777精品久久久大香线蕉小说| 尤物国产精品| 国产在线欧美日韩| 国产亚洲一区在线| 亚洲一区二区高清视频| 91久久精品www人人做人人爽| 欧美不卡三区| 欧美精品亚洲| 超碰97在线资源| 亚洲国产一区二区三区在线播| 欧美久久久久久| 99国产高清| 国产日韩欧美一区在线| 一区二区高清视频| 久久www免费人成精品| 欧美专区一区二区三区| 激情久久综合| 欧美日本久久| 天堂精品视频| 欧美成ee人免费视频| 国产精品theporn88| 免费在线欧美黄色| 一本色道久久综合亚洲精品婷婷 | 影院欧美亚洲| 欧美日韩亚洲一区二区三区在线观看|