MySql常見資料型別

2021-10-07 20:13:19 字數 3098 閱讀 6720

數值型:整型、小數(定點數、浮點數) 

字元型:較短的文字(char、varchar)、較長的文字(text、blob

(較長的二進位制資料));

日期型:

tinyint 、 smallint 、 mediumint 、 int

/integer 、 bigint

1(位元組)

2(位元組)

3(位元組)

4(位元組)

8(位元組)

特點:① 如果不設定無符號還是有符號,預設是有符號,如果設定無符號,需要新增unsigned

② 如果插入的數值超出了整型的返回,會直接報錯(有的版本會報警告,並插入臨界值)

③ 如果不設定長度,會有預設的長度

長度代表了顯示的最大寬度,如果不夠會用 0 在左邊填充,但必須搭配zerofill關鍵字使用!

如何設定有符號還是無符號

drop

table

ifexists 表名;

create

table 表名(

欄位1int,

欄位2intunsigned

);

一、浮點型

float

(m,d)

;double

(m,d)

;二、定點型

dec(m,d)

;decimal

(m,d)

;特點:

① m : 整數部位 + 小數部位

d : 小數部位 如果超過範圍,則插入失敗

② m 和 d 都可以省略 如果是decimal

,則 m 預設是10

, d 預設是0

; 如果是float 和 double

,則會根據插入的數值的精度來決定精度

③ 定點型的精度相對較高, 如果要求插入數值的精度較高(如:貨幣運算等)則優先考慮使用

測試 m 和 d

create

table tab_float(

f1 float(5

,2),

f2 double(5

,2),

f3 decimal(5

,2))

;insert

into tab_float values

(123.45

,123.45

,123.45);

//正確插入

insert

into tab_float values

(123.456

,123.456

,123.456);

//插入報錯

insert

into tab_float values

(1523.4

,1523.4

,1523.4);

//插入報錯

較短的文字: char

varchar

較長的文字: text

blob

(較大的二進位制)

其他:binary和varbinary 用於儲存較短的二進位制

enum 用於儲存列舉

set 用於儲存集合

特點(char和varchar的區別):

char

char

(m)(m可以省略,預設為1) 固定長度的字元 比較耗費空間 效率高

varchar

varchar

(m)(m不能省略) 可變長度的字元 比較節省空間 效率低

m: 代表是最大的字元數(注意:是字元數,不是位元組數)

插入列舉型別
create

table tab_char(

c1 enum

("a"

,"b"

,"c"))

;insert

into tab_char values

("a");

//插入正確 是a

insert

into tab_char values

("a");

//能正確插入 是a 不區分大小寫

insert

into tab_char values

("d");

//插入錯誤

set(集合)型別: 和 enum 型別類似,但是set一次可以選取多個成員,而enum只能選乙個,根據成員個數不同,儲存所佔的位元組也不同
create

table tab_set(

s1 set

("a"

,"b"

,"c"

,"d"))

;insert

into tab_set values

("a");

//插入正確 是a 不區分大小寫

insert

into tab_set values

("a,b");

//能正確插入 是a,b

insert

into tab_set values

("a,c,d");

//能正確插入 是a

分類:

date 只儲存日期

time 只儲存時間

year 只儲存年

datetime 儲存日期 + 時間

timestamp 儲存日期 + 時間

特點: 位元組 範圍 時區等的影響

datetime

81000

-9999 不受

timestamp

41970

-2038 受

create

table tab_date(

t1 datetime

; t2 timestamp;)

;insert

into tab_date values

(now()

,now()

);select

*from tab_date;

MYSQL 常見資料型別

一 數值整形型別 型別位元組 最小值最大值 帶符號 無符號 帶符號 無符號 tinyint 1 1位元組 8 bit 128 1270 2 8 256 轉為二進位制,包括0 smallint 2 2 8 bit 32768 32767 02 2 8 65535 mediumiint 3 3 8 bi...

Mysql常見資料型別

資料型別 儲存範圍 位元組tinyint 有符號值 128到127 2 7到2 7 1 1smallint 有符號值 32768到32767 2 15到2 15 1 2mediumint 有符號值 8388608到8388607 2 23到2 23 1 3int 有符號值 2147483648到21...

MySQL常見資料型別

常見資料型別 數值型 整型 小數 定點數浮點數 字元型 較短的文字 char varchar 較長的文字 text blob 較長的二進位制資料 日期型 一 整型 整數型別 位元組 範圍 tinyint 1 smallint 2 mediumint 3 int integer 4 bigint 8 ...