欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

與MSSQL對比學習MYSQL的心得(五)--運算符

 更新時間:2014年06月12日 16:04:56   投稿:hebedich  
MYSQL中的運算符很多,這一節(jié)主要講MYSQL中有的,而SQLSERVER沒有的運算符

安全等于運算符(<=>)

這個操作符和=操作符執(zhí)行相同的比較操作,不過<=>可以用來判斷NULL值。

在兩個操作數(shù)均為NULL時,其返回值為1而不為NULL;

而當一個操作數(shù)為NULL時,其返回值為0而不為NULL。

下面分別是 SELECT NULL <=>1   SELECT 1<=>0  SELECT NULL <=>NULL 的執(zhí)行結果

在兩個操作數(shù)均為NULL時,其返回值為1而不為NULL;



LEAST運算符

語法格式為:LEAST(值1,值2,...值n),其中值n表示參數(shù)列表中有n個值。在有兩個或多個參數(shù)的情況下,返回最小值。

假如任意一個自變量為NULL,則LEAST()的返回值為NULL

使用LEAST運算符進行大小判斷,SQL語句如下:

復制代碼 代碼如下:

SELECT LEAST(2,0),LEAST('a','b','c'),LEAST(10,NULL)

由結果可以看到,當參數(shù)中是整數(shù)或者浮點數(shù)時,LEAST將返回其中最小的值;

當參數(shù)為字符串時,返回字母中順序最靠前的字符;

當比較值列表中有NULL時,不能判斷大小,返回值為NULL

GREATEST運算符

語法格式為: GREATEST(值1,值2,...值n),其中n表示參數(shù)列表中有n個值。

在有兩個或多個參數(shù)的情況下,返回最大值。

假如任意一個自變量為NULL,則GREATEST()的返回值為NULL

使用GREATEST運算符進行大小判斷,SQL語句如下:

復制代碼 代碼如下:

SELECT GREATEST(2,0),GREATEST('a','b','c'),GREATEST(10,NULL)

由結果可以看到,當參數(shù)中是整數(shù)或者浮點數(shù)時,GREATEST將返回其中最大的值;

當參數(shù)為字符串時,返回字母中順序最靠后的字符;

當比較值列表中有NULL時,不能判斷大小,返回值為NULL

REGEXP 運算符

在SQLSERVER里是沒有正則函數(shù)或者運算符的,MYSQL在這方面的確比較完善

用來匹配字符串,語法格式為:expr REGEXP  匹配條件,如果expr滿足匹配條件,返回1;

如果不滿足,則返回0;

若expr或匹配條件任意一個為NULL,則結果為NULL

常用的幾種通配符:

(1)'^'匹配以該字符后面的字符開頭的字符串

(2)'$'匹配以該字符后面的字符結尾的字符串

(3)'.'匹配任何一個單字符

(4)'[...]'匹配在方括號內(nèi)的任何字符。例如,“[abc]" 匹配a、b或c。

字符的范圍可以使用一個'-',“[a-z]”匹配任何字母,而“[0-9]”匹配任何數(shù)字

(5)'*' 匹配零個或多個在他前面的字符。例如,“x*”匹配任何數(shù)量的'*'字符,“[0-9]*”匹配任何數(shù)量的數(shù)字,

而“.*”匹配任何數(shù)量的任何字符。

使用REGEXP  運算符進行字符串匹配運算,SQL語句如下:

復制代碼 代碼如下:

SELECT 'ssky' REGEXP '^s','ssky' REGEXP 'y$' ,'ssky' REGEXP '.sky','ssky' REGEXP '[ab]';

由結果可以看到,指定匹配字符串為ssky。

'^s'表示匹配任何以字母s開頭的字符串,因此滿足匹配條件,返回1;

'y$'表示匹配任何以字母y結尾的字符串,因此滿足匹配條件,返回1;

'.sky'表示匹配任何以sky結尾,字符長度為4的字符串,因此滿足匹配條件,返回1;

'^s'表示匹配任何以字母s開頭的字符串,因此滿足匹配條件,返回1;

'[ab]'表示匹配任何包含字母a或者b的字符串,指定字符串中沒有字母a也沒有字母b,因此不滿足匹配條件,返回0;

TIPS:正則表達式是一個可以進行復雜查詢的強大工具,相對于LIKE字符串匹配,他可以使用更多的通配符類型

查詢結果更加靈活。

邏輯運算符

邏輯與運算符:AND或者&&

邏輯或運算符:OR或者||

上面兩個運算符就不說了,只是比SQLSERVER多了&&和||的寫法

異或運算符:XOR

當任意一個操作數(shù)為NULL時,返回值為NULL;對于非NULL的操作數(shù),如果兩個操作數(shù)都是非0值或者都是0值,則返回結果為0;

如果一個為0值,另一個為非0值,返回結果為1

使用異或運算符XOR進行邏輯判斷,SQL語句如下

復制代碼 代碼如下:

SELECT 1 XOR 1, 0 XOR 0,1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1

由結果可以看到‘1 XOR 1'和‘0 XOR 0'中運算符兩邊的操作數(shù)都為非零值,或者都是零值,因此返回0;

'1 XOR 0'中兩邊的操作數(shù),一個為0值,另一個為非0值,返回結果為1;

'1 XOR NULL'中有一個操作數(shù)為NULL,返回結果為NULL;

'1 XOR 1 XOR 1'中有多個操作數(shù),運算符相同,因此運算符從左到右依次計算,'1 XOR 1'的結果為0,再與1進行異或運算,因此結果為1。

TIPS: a XOR b的計算等同于(a AND (NOT b))或者(NOT a AND ( b))

位運算符

由于比較少用到,這里只做簡單介紹,同樣位運算符在SQLSERVER里是沒有的

位運算符是用來對二進制字節(jié)中的位進行測試、移位或者測試處理

MYSQL中提供的位運算有

按位或(|)

按位與(&)

按位異或(^)

按位左移(<<)

按位右移(>>)

按位取反(~):反轉所有比特

TIPS:可以使用BIN()=binary函數(shù)查看一個十進制數(shù)的二進制表示

例如20這個數(shù)字 SELECT BIN(20)

二進制表示為:10100

特別提示

某一些MYSQL中的特殊字符需要用轉義字符才能插入數(shù)據(jù)庫,否則產(chǎn)生意料之外的結果。

下面的特殊字符需要在輸入時加反斜線符號開頭

輸入單引號需要:\'

輸入雙引號需要:\''

輸入反斜杠:\\

輸入回車符:\r

輸入換行符:\n

輸入制表符:\tab

輸入退格符:\b

在插入這些特殊字符到數(shù)據(jù)庫之前一定要進行轉義處理

在SQLSERVER里,這些特殊字符不是在前面加反斜杠\,而是加單引號'

例如插入一個單引號,加了反斜杠,插入成功

復制代碼 代碼如下:

INSERT INTO table_1(NAME) VALUES('\'')

SELECT * FROM table_1

總結

這一節(jié)簡單介紹了MYSQL里的一些運算符和特殊字符,并且比較了與SQLSERVER的區(qū)別

相關文章

  • MYSQL數(shù)據(jù)庫查詢按日期分組統(tǒng)計詳細代碼

    MYSQL數(shù)據(jù)庫查詢按日期分組統(tǒng)計詳細代碼

    這篇文章主要給大家介紹了關于MYSQL數(shù)據(jù)庫查詢按日期分組統(tǒng)計的相關資料,按日期分組是指按照時間維度對數(shù)據(jù)進行分類匯總統(tǒng)計,常用于查詢分析具有時間屬性的數(shù)據(jù),例如訂單量、用戶活躍等,需要的朋友可以參考下
    2024-01-01
  • MySQL 啟動成功但未監(jiān)聽端口的解決方法

    MySQL 啟動成功但未監(jiān)聽端口的解決方法

    這篇文章主要給大家介紹了關于MySQL 啟動成功但未監(jiān)聽端口的解決方法,文中通過圖文給大家介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • mysql decimal類型判斷是否為0

    mysql decimal類型判斷是否為0

    在MySQL中,DECIMAL是一種用于存儲精確小數(shù)的數(shù)據(jù)類型,本文主要介紹了mysql decimal類型判斷是否為0,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • MySQL 相關的環(huán)境變量

    MySQL 相關的環(huán)境變量

    所有使用mysqlclient客戶庫與服務器通信的MySQL客戶使用下列環(huán)境變量
    2009-06-06
  • 一文帶你搞懂MySQL的MVCC機制

    一文帶你搞懂MySQL的MVCC機制

    MySQL中的MVCC機制想必大家都有所耳聞吧,雖然在平時MySQL使用過程中基本上用不到,但是面試中出場率十分高,那么你對MVCC機制了解多少呢,MVCC機制是用來干嘛的呢,底層的工作原理是怎么樣的呢,本文就帶你一探究竟
    2023-07-07
  • mysql的啟動過程詳解

    mysql的啟動過程詳解

    這篇文章主要介紹了mysql的啟動過程詳解,本文用生動風趣的文風講解了mysql的啟動過程,絕對讓你難忘哦,需要的朋友可以參考下
    2014-08-08
  • MySQL中的datediff()方法和timestampdiff()方法的應用示例小結

    MySQL中的datediff()方法和timestampdiff()方法的應用示例小結

    在MySQL中,DATEDIFF()函數(shù)和TIMESTAMPDIFF()函數(shù)用于計算日期和時間之間的差異,TIMESTAMPDIFF()函數(shù)返回的結果是整數(shù),但你可以通過在計算過程中使用適當?shù)某▉慝@得所需的小數(shù)部分,本文介紹MySQL中的datediff()方法和timestampdiff()方法的應用,感興趣的朋友一起看看吧
    2023-12-12
  • MySQL系列之redo log、undo log和binlog詳解

    MySQL系列之redo log、undo log和binlog詳解

    這篇文章主要介紹了MySQL系列之redo log、undo log和binlog詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • asp采用ODBC接口訪問MySQL的方法

    asp采用ODBC接口訪問MySQL的方法

    asp采用ODBC接口訪問MySQL的方法...
    2007-07-07
  • 解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題

    解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題

    這篇文章主要介紹了解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評論