數據庫中的表結構確立后,表中的數據代表的意義就已經確定。而通過MySQL運算符進行運算,就可以獲取到表結構以外的另一種數據。例如,學生表中存在一個birth字段,這個字段表示學生的出生年份。而運用MySQL的算術運算符用當前的年份減學生出生的年份,那么得到的就是這個學生的實際年齡數據。這就是MySQL的運算符,所以熟悉並掌握運算符的應用,對於操作MySQL數據庫中的數據是非常有用的。下面就來熟悉一下MySQL支持的4種運算符都具備哪些功能。
算術運算符:執行算術運算,例如:加、減、乘、除等。
比較運算符:包括大於、小於、等於或者不等於,等等。主要用於數值的比較、字符串的匹配等方面。例如:LIKE、IN、BETWEEN AND和IS NULL等都是比較運算符,還包括正則表達式的REGEXP也是比較運算符。
邏輯運算符:包括與、或、非和異或等邏輯運算符。其返回值為布爾型,真值(1或true)和假值(0或false)。
位運算符:包括按位與、按位或、按位取反、按位異或、按位左移和按位右移等位運算符。位運算必須先將數據轉換為二進制,然后在二進制格式下進行操作,運算完成后,將二進制的值轉換為原來的類型,返回給用戶。
算術運算符
算術運算符是MySQL中最常用的一類運算符。MySQL支持的算術運算符包括:加、減、乘、除、求余。
加(+)、減(-)和乘(*)可以同時計算多個操作數。除號(/)和求余運算符(%)也可以同時計算多個操作數,但是這兩個符號計算多個操作數不太好。DIV和MOD這兩個運算符只有兩個參數。進行除法和求余的運算時,如果x2參數是0或者null,計算結果將是空值(NULL)。
比較運算符
比較運算符是查詢數據時最常用的一類運算符。SELECT語句中的條件語句經常要使用比較運算符。通過這些比較運算符,可以判斷表中的哪些記錄是符合條件的。
下面對幾種較常用的比較運算符進行詳解。
1.運算符“=”,“=”用來判斷數字、字符串和表達式等是否相等。如果相等,返回1,否則返回0。
說明:在運用“=”運算符判斷兩個字符是否相同時,數據庫系統都是根據字符的ASCII碼進行判斷的。如果ASCII碼相等,則表示這兩個字符相同。如果ASCII碼不相等,則表示這兩個字符不相同。注意,空值(NULL)不能使用“=”來判斷。
2.運算符“<>”和“!=”,“<>”和“!=”用來判斷數字、字符串、表達式等是否不相等。如果不相等,則返回1;否則,返回0。這兩個符號也不能用來判斷空值(NULL)。
3.運算符“>”,“>”用來判斷左邊的操作數是否大於右邊的操作數。如果大於,返回1;否則,返回0。同樣,空值(NULL)不能使用“>”來判斷。
4.運算符“IS NULL”,“IS NULL”用來判斷操作數是否為空值(NULL)。操作數為NULL時,結果返回1;否則,返回0。IS NOT NULL剛好與IS NULL相反。
說明:“=”、“<>”、“!=”、“>”、“>=”、“<”、“<=”等運算符都不能用來判斷空值(NULL)。一旦使用,結果將返回NULL。如果要判斷一個值是否為空值,可以使用IS NULL和IS NOT NULL來判斷。注意:NULL和'NULL'是不同的,前者表示為空值,后者表示一個由4個字母組成的字符串。
5.運算符“BETWEEN AND”,“BETWEEN AND”用於判斷數據是否在某個取值范圍內。
其表達式如下:
x1 BETWEEN m AND n
如果x1大於等於m,且小於等於n,結果將返回1,否則將返回0。
6.運算符“IN”,“IN”用於判斷數據是否存在於某個集合中。
其表達式如下:
x1 IN(值1,值2,……,值n)
如果x1等於值1到值n中的任何一個值,結果將返回1。如果不是,結果將返回0。
7.運算符“LIKE”,“LIKE”用來匹配字符串。
其表達式如下:
x1 LIKE s1
如果x1與字符串s1匹配,結果將返回1。否則返回0。
8.運算符“REGEXP” ,REGEXP”同樣用於匹配字符串,但其使用的是正則表達式進行匹配。
其表達式格式如下:
x1 REGEXP'匹配方式'
如果x1滿足匹配方式,結果將返回1;否則將返回0。
說明:使用REGEXP運算符匹配字符串,其使用方法非常簡單。REGEXP運算符經常與“^”、“$”和“.”一起使用。“^”用來匹配字符串的開始部分;“$”用來匹配字符串的結尾部分;“.”用來代表字符串中的一個字符。
邏輯運算符
邏輯運算符用來判斷表達式的真假。如果表達式是真,結果返回1。如果表達式是假,結果返回0。邏輯運算符又稱為布爾運算符。MySQL中支持4種邏輯運算符,分別是與、或、非和異或。
1.“與”運算
“&&”或者“AND”是“與”運算的兩種表達方式。如果所有數據不為0且不為空值(NULL),則結果返回1;如果存在任何一個數據為0,則結果返回0;如果存在一個數據為NULL且沒有數據為0,則結果返回NULL。“與”運算符支持多個數據同時進行運算。
2.“或”運算
“||”或者“OR”表示“或”運算。所有數據中存在任何一個數據為非0的數字時,結果返回1;如果數據中不包含非0的數字,但包含NULL時,結果返回NULL;如果操作數中只有0時,結果返回0。“或”運算符“||”可以同時操作多個數據。
3.“非”運算
“!”或者NOT表示“非”運算。通過“非”運算,將返回與操作數據相反的結果。如果操作數據是非0的數字,結果返回0;如果操作數據是0,結果返回1;如果操作數據是NULL,結果返回NULL。
4.“異或”運算
XOR表示“異或”運算。當其中一個表達式是真而另外一個表達式是假時,該表達式返回的結果才是真;當兩個表達式的計算結果都是真或者都是假時,則返回的結果為假。
位運算符
位運算符是在二進制數上進行計算的運算符。位運算會先將操作數變成二進制數,進行位運算。然后再將計算結果從二進制數變回十進制數。MySQL中支持6種位運算符,分別是:按位與、按位或、按位取反、按位異或、按位左移和按位右移。
運算符的優先級