mysql中的運算子
主要包括數值型別、字串型別、日期和時間型別。不同版本可能稍有不同。
整數型別
位元組最小值
最大值tinyint
1有符號 -128
無符號 0
有符號 127
無符號 255
smallint
2有符號 -32768
無符號 0
有符號 32767
無符號 65535
mediumint
3有符號 -8388608
無符號 0
有符號 8388607
無符號 1677215
int4
有符號 -2147483648
無符號 0
有符號 2147483647
無符號 4294967295
bigint
8有符號 -263
無符號 0
有符號 263-1
無符號 264
浮點數型別
位元組最小值
最大值float
4±1.175494351e-38
±3.402823466e+38
double
8±2.2250738585072014e-308
±1.797693134862315e+308
定點數型別
位元組描述
decimal(m,d)
m+2最大取值範圍與double相同,
給定的範圍由m和d決定
位型別位元組
最小值最大值
bit(m)
1~8bit(1)
bit(64)
整型可以通過在定義時加入zerofill約束條件來將數值左邊空缺位數用0補齊;日期和時間型別整型還有乙個auto_increment約束條件,用來產生順序值,乙個表中最多只能有乙個auto_increment列。對於任何想要使用auto_increment的列應該定義為not null,並定義為primary key或定義為unique鍵;
float(3, 2):表示總長度為3,小數點後長度為2;
浮點數存在精度丟失問題,若涉及小數運算,盡量不要用浮點型;
decimal(m, d):m是總位數,d是小數點後的位數。m最大為65,d最大為30;m和d又稱為精度和標度。
定點數型別在儲存小數時也會存在精度丟失的問題。
對於bit型別需要使用函式讀取,bin()顯示為二進位制,hex()顯示為十六進製制;
位元組最小值
最大值date
41000-01-01
9999-12-31
datetime
81000-01-01 00:00:00
9999-12-31 23:59:59
timestamp
419700101080001
2023年的某個時刻
time
3-838:59:59
838:59:59
year
11901
2155
timestamp值返回後顯示為"yyyy-mm-dd hh:mm:ss"格式的字串,顯示寬度固定為19個字元。如果想要獲得數字值,應該在timestamp列加+0。字串型別timestamp列和時區相關,當插入日期時,會先轉換為本地時區後存放;從資料庫中取出時,有也同樣需要將日期轉換為本地時區後顯示。
由於timestamp最大值到2023年的某一天,所以不適合存放較久遠的日期。
位元組描述及儲存需求
char(m)
mm為0~255之間的整數
varchar(m)
m為0~65535之間的整數,值的成都+1個位元組
tinyblob
允許長度0~255位元組,值的長度+1個位元組
blob
允許長度0~65535位元組,值的長度+2個位元組
mediumblob
允許長度0~167772150位元組,值的長度+3個位元組
longblob
允許長度0~4294967295位元組,值的長度+4個位元組
tinytext
允許長度0~255位元組,值的長度+2個位元組
text
允許長度0~2=65535位元組,值的長度+2個位元組
mediumtext
允許的長度0~167772150位元組,值的長度+3個位元組
longtext
允許的長度0~4294967295位元組,值的長度+4個位元組
varbinary(m)
允許長度0~m個位元組的變長位元組字串,值的長度+1個位元組
binary(m)
m允許長度0~m個位元組的定長位元組字串
char的長度固定為建立表時宣告的長度,varchar是可變長的。算術運算子:加、減、乘、除,取餘binary和varbinary類似於char和varchar,當儲存binary值的時候,在值的最後通過填充「0x00」以達到指定的字段定義長度。
enum型別(列舉型別)它的值需要在建立表時通過列舉方式顯示指定,對1~255個成員的列舉需要乙個位元組儲存,對255 ~ 65535個成員需要2位元組儲存。
enum型別只允許從值集合中選取單個值,而不能一次取多個值。
set型別與enum型別非常相似,也是乙個字串物件,不同的是set型別一次可以選取多個成員。
比較運算子:
#除常見的外還有
<> #表示不等於
<=> #表示null安全的等於
between min and max #表示存在於指定範圍
in #表示存在於指定集合
is null #表示為null
is not null #表示不為null
like #表示用萬用字元匹配
regexp或rlike #表示正規表示式匹配
邏輯運算子
not 或 ! #邏輯非
and 或 && #邏輯與
or 或 || #邏輯或
xor #邏輯異或
位運算子
& #位與
| #位或
^ #位異或
~ #位取反
>> #位右移
<< #位左移
運算子的優先順序:
由於運算子較多,記住不太可能,所有使用"()"來將需要優先進行的操作括起來,既能保證優先運算,又易讀。
MySQL 資料型別,運算子
3.decimal m,d 定點型別 當對精度要求較高的時候使用該欄位更好 整數和浮點數 如果不需要小數,則可以使用整數來儲存資料,如果需要小數部分,則使用浮點數,對於存入浮點資料列,存入的數值會對小數字進行四捨五入,浮點數有double和float,double的精度比float高 浮點數與定點數...
JS資料型別以及運算子
1.js的六種基本型別與typeof操作符 undefined型別 null型別 boolean型別 number型別 string型別 object型別 1 w3c dtd xhtml 1.0 transitional en 2 3 46 47 48 49 typeof操作符 50 undefin...
MySQL 資料型別和運算子
目錄 5.1.1 整數型別 5.1.2 浮點數型別和定點數型別 5.1.3 日期與時間型別 5.1.4 文字字串型別 字元字串 5.1.5 二進位制字串型別 位元組字串 5.2 如何選擇資料型別 5.3.2 算術運算子 5.3.3 比較運算子 5.3.4 邏輯運算子 5.3.5 位運算子 5.3.6...