程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MYSQL表達式操作符和數據類型轉換

MYSQL表達式操作符和數據類型轉換

編輯:關於MYSQL數據庫

    提示:表達式操作符,在MySQL的表達式中,如果某個數據值的類型與上下文所要求的類型不相符,MySQL則會根據將要進行的操作自動地對數據值進行類型轉換。


1.表達式操作符
Table 1 算術操作符

操作符 語法 含義
+ a + b 相加
- a - b 相減
- - a 求負
* a * b 乘法
/ a / b 除法
% a % b 求余

Table 2. 邏輯操作符

操作符 語法 含義
AND 或 && a AND b 或 a && b 邏輯與,若兩個操作數同時為真,則為真
OR 或 || a OR b 或 a || b 邏輯或,只要有一個操作數為真,則為真
XOR  a XOR b 邏輯異或,若有且僅有一個操作數為真,則為真
NOT 或 ! NOT a 或 !a 邏輯非,若操作數為假,則為真

Table 3. 位操作符

操作符 語法 含義
& a & b 按位與,若操作數同位同為1,則該位為1
| a | b 按位或,若操作數同位有一位為1,則該位為1
^ a ^ b 按拉異或,若操作數同一位分別為1和0,則該位為1
<< a << b 把a中的各個位左移b個位置
>> a >> b 把a中的各個位右移b個位置

Table 4. 比較操作符

操作符 語法 含義
= a = b 若兩個操作數相等,則為真
<=> a <=> b 若兩個操作數相等,則為真,可用於NULL值比較
!= 或 <> a != b 或 a <> b 若兩個操用數不等,則為真
< a < b 若a小於b,則為真
<= a <= b 若a小於或等於b,則為真
> a > b 若a大於b,則為真
>= a > b 若a大於或等於b,則為真
IN a IN (b1,b2,...) 若a等於b1,b2,...中的某一個,則為真
BETWEEN a BETWEEN b AND c 若a在b和c之間(包括b和c),則為真
NOT BETWEEN a NOT BETWEEN b AND c 若a不在b和c之間(包括b和c),則為真
LIKE a LIKE b SQL模式匹配,若a匹配b,則為真
NOT LIKE a NOT LIKE b SQL模式匹配,若a不匹配b,則為真
REGEXP a REGEXP b 正則表達式匹配,若a匹配b,則為真
NOT REGEXP a NOT REGEXP b 正則表達式匹配,若a不匹配b,則為真
IS NULL a IS NULL 若a為NULL,則為真
IS NOT NULL a IS NOT NULL 若a不為NULL,則為真

   
LIKE模式匹配中的“%”匹配任意個字符,“_”匹配一個字符。匹配不區分大小寫字符。

Table 5. 操作符優先級(由高至低排列)

操作符
BINARY,COLLATE
NOT、!
^
XOR
-(一元求負操作符)、~(一元取反操作符)
*、/、%
+、-
<<、>>
&
|
<、<=、=、<=>、!=、<>、>=、>、IN、IS、LIKE、REGEXP、RLIKE
BETWEEN、CASE、WHEN、THEN、ELSE
AND、&&
OR、||
:=

2. 類型轉換
在MySQL的表達式中,如果某個數據值的類型與上下文所要求的類型不相符,MySQL則會根據將要進行的操作自動地對數據值進行類型轉換。如:

1 + '2'      會轉換成1 + 2 = 3
1+ 'abc'     會轉換成1 + 0 = 1 由於abc不能轉換成任何的值,所以默認為0
MySQL會根據表達式上下文的要求,把字符串和數值自動轉換為日期和時間值

對於超范圍或非法的值,MySQL也會進行轉換,但轉換出來的結果是錯誤的。出現該情況時,MySQL會提示警告信息,我們可捕獲該信息以進行相應的處理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved