MySQL中資料型別以及運算子

2021-10-03 15:57:07 字數 3315 閱讀 7770

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...