not:否定任何邏輯表達(dá)式,或是關(guān)鍵詞,如like,null,between等。
group by和having子句在select語句中使用,可以將表劃分成組并返回匹配having子句條件的組。
語法:select語句開頭
group by [all] aggregate_free_expression [,aggregate_free_expression]*
[having search_conditions]
select語句結(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í),用無集合函數(shù)的表達(dá)式分組。
having:為group by子句設(shè)置條件,類似于where為select語句設(shè)置條件的方法。having的查找條件可以包括集合函數(shù)表達(dá)式。除此之外,它的查找條件與where查找條件相同。
order by:按列排列結(jié)果。對(duì)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這三句是完全等價(jià)的。當(dāng)然,我們不贊成用第三種用法,這將給程序的可讀性帶來不好的影響。 為了以降序排列,把DESC關(guān)鍵詞加到order by子句中你要排序的列名前。缺省是升序,你也可以用ASC關(guān)鍵詞明確指定。
limit 子句:用來限制select語句返回的行數(shù)。limit取1個(gè)或2個(gè)數(shù)字參數(shù),如果給定2個(gè)參數(shù),第一個(gè)指定要返回的第一行的偏移量,第二個(gè)指定返回行的數(shù)目。初始行的偏移量是0(不是1)。如果給定一個(gè)參數(shù),它指出偏移量為0的返回行的數(shù)目。也就是說limit 5和limit 0,5完全等價(jià)。
至于procedure關(guān)鍵詞的含義,我也沒搞得太清楚,好象是對(duì)存儲(chǔ)過程的支持,而MySQL本身不支持存儲(chǔ)過程,看來是為了將來擴(kuò)充的需要而保留的吧。
group by和having子句在select語句中使用,可以將表劃分成組并返回匹配having子句條件的組。
語法:select語句開頭
group by [all] aggregate_free_expression [,aggregate_free_expression]*
[having search_conditions]
select語句結(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í),用無集合函數(shù)的表達(dá)式分組。
having:為group by子句設(shè)置條件,類似于where為select語句設(shè)置條件的方法。having的查找條件可以包括集合函數(shù)表達(dá)式。除此之外,它的查找條件與where查找條件相同。
order by:按列排列結(jié)果。對(duì)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這三句是完全等價(jià)的。當(dāng)然,我們不贊成用第三種用法,這將給程序的可讀性帶來不好的影響。 為了以降序排列,把DESC關(guān)鍵詞加到order by子句中你要排序的列名前。缺省是升序,你也可以用ASC關(guān)鍵詞明確指定。
limit 子句:用來限制select語句返回的行數(shù)。limit取1個(gè)或2個(gè)數(shù)字參數(shù),如果給定2個(gè)參數(shù),第一個(gè)指定要返回的第一行的偏移量,第二個(gè)指定返回行的數(shù)目。初始行的偏移量是0(不是1)。如果給定一個(gè)參數(shù),它指出偏移量為0的返回行的數(shù)目。也就是說limit 5和limit 0,5完全等價(jià)。
至于procedure關(guān)鍵詞的含義,我也沒搞得太清楚,好象是對(duì)存儲(chǔ)過程的支持,而MySQL本身不支持存儲(chǔ)過程,看來是為了將來擴(kuò)充的需要而保留的吧。

