1. 程式人生 > >MySQL整理5—數據類型和運算符

MySQL整理5—數據類型和運算符

greate 方括號 分享 多個參數 數據類型和運算符 line 算術運算符 poi 列表

一、數據類型

在上面第一部分的內容中,介紹了以下數據類型:

  • 整數類型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
  • 浮點數類型:FLOAT、DOUBLE、DECIMAL
  • 字符串類型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
  • 日期類型:Date、DateTime、TimeStamp、Time、Year
  • 其他數據類型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection

二、常見運算符介紹

1.算術運算符

技術分享圖片

2.比較運算符

技術分享圖片

示例:

is null 和is not null

/*IS NULL和ISNULL檢驗一個值是否為NULL,如果為NULL,返回值為1。否則返回值為0
IS NOT NULL檢驗一個值是否為非NULL,如果非NULL,返回值為1;否則返回值為0 */
select NULL IS NULL,ISNULL(NULL),ISNULL(10),10 IS NOT NULL;
/*結果 1  1  0  1 */

between and

語法格式為:expr BETWEEN min AND max。假如expr大於或等於min且小於或等於max,則BETWEEN的返回值為1,否則返回值為0。

select 4 BETWEEN 4 AND 6,4 AND 6,12 BETWEEN 9 AND 10;
/*結果 1 1 0 */

least

語法格式為:LEAST(值1,值2,…值n),其中值n表示參數列表中有n個值。在有兩個或多個參數的情況下,返回最小值。假如任意一個自變量為NULL,則LEAST()的返回值為NULL。

select least(2,0),least(20.0,3.0,100.5),least(10,NULL);
/*結果 0 3.0 null */

greatest(value1,value2,…)

語法格式為:greatest(值1,值2,…值n),其中n表示參數列表中有n個值。當有2個或多個參數時,返回值為最大值,假如任意一個自然變量為NULL,則GREATEST()的返回值為null

select greatest(2,0),greatest(20.0,3.0,100.5),greatest(10,NULL);
/*結果 2 100.5 null */

in、not in 運算符

in運算符用來判斷操作數是否為in列表中的其中一個值,如果是返回值為1;否則返回值為0。

select 2 in(1,3,5,‘thks‘),‘thks‘ in(1,3,5,‘thks‘);
/*結果 0 1 */

like

like運算符用來匹配字符串,語法格式為:expr like 匹配條件,如果expr滿足匹配條件,則返回值為1(ture);如果不匹配,則返回值為0(false)。若expr或匹配條件中任何一個為null,則結果為null

like運算符在進行匹配時,可以使用下面兩種通配符:

  • (1) ‘%‘,匹配任何數目的字符,甚至包括0字符
  • (2) ‘_‘,只能匹配一個字符
select ‘stud‘ LIKE ‘stud‘,‘stud‘ LIKE ‘stu_‘,
‘stud‘ LIKE ‘%d‘,‘stud‘ LIKE ‘t___‘,‘s‘ LIKE NULL;
/*結果 1 1 1 0 null */

regexp

regexp運算符用來匹配字符串,語法格式為:expr regexp 匹配條件,如果expr滿足匹配條件,返回1;如果不滿足,則返回0;若expr或匹配條件任意一個為null,則結果為null

regexp運算符在進行匹配時,常用的有下面幾種通配符:

  • (1) ‘^‘匹配以該字符後面的字符開頭的字符串。
  • (2) ‘$‘ 匹配以該字符後面的字符結尾的字符串。
  • (3) ‘.‘ 匹配任何一個單字符。
  • (4) ‘[...]‘ 匹配在方括號內的任何字符。例如:‘[abc]‘匹配‘a‘,‘b‘或‘c‘。為了命名字符串的範圍,使用一個‘-‘。"[a-z]"匹配任何字母,而"[0-9]"匹配任何數字。
  • (5) ‘*‘ 匹配0個或多個在它前面的字符。
select ‘ssky‘ regexp ‘^s‘,‘ssky‘ regexp ‘y$‘,‘ssky‘ 
regexp ‘.sky‘,‘ssky‘ regexp ‘[ab]‘;

3.邏輯運算符

在SQL中,所有邏輯運算符的求值所得結果均為TRUE、FALSE或NULL。

在MySQL中,它們體現為1(TRUE)、0(FALSE)和NULL。其大多數都與不同的數據庫SQL通用,MySQL中的邏輯運算符如表所示:

技術分享圖片

4.位運算符

位運算符是用來對二進制字節中的位進行測試、位移或者測試處理,MySQL中提供的位運算符有按位或(|)、按位與(&)、按位異或(^)、按位左移(<<)、按位右移(>>)、按位取反(~),如下表所示:

技術分享圖片

5.運算符的優先級

技術分享圖片

MySQL整理5—數據類型和運算符