= 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于
<> 不等于
在比較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本身不支持存儲過程,看來是為了將來擴充的需要而保留的吧。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/