MySQL資料型別

2021-10-18 04:05:46 字數 3977 閱讀 1431

數值型:

整型 小數:

定點數浮點數

字元型:

較短的文字:char

,varchar

較長的文字:text

,blob

(較長的二進位制資料)

日期型:

分類:

tinyint

,smallint

,mediumint

,int

/integer

,bigint

1位元組,2,

3,4,

5

特點:

①如果不設定無符號和有符號,預設為有符號.若設定無符號,新增unsigned

②如果插入的數值超出了整型的範圍,會報out

of range異常,並且插入的是臨界值

③如果不設定長度,會有預設的長度,長度代表的是顯示的最大寬度

如果不夠會用0在左邊填充,但必須搭配zerofill使用

drop

table

ifexists tab_int;

create

table tab_int(

t1 int(7

) zerofill,

# 預設是有符號,

t2 int

unsigned);

desc tab_int;

insert

into tab_int values(-

123456);

insert

into tab_int values(-

123456,-

123456);

insert

into tab_int values

(123

,123);

select

*from tab_int;

分類:

1.浮點型

float

(m,d)

double

(m,d)

2.定點型

dec

(m,d)

decimal

(m,d)

特點:

①m和d

m:整數部位+小數部位

d:小數部位

如果超過範圍,則插入臨界值

②m和d都可以省略,如果是decimal,則m預設為10,d預設為0.

float和double會根據插入數值的精度來決定精度
③定點型的精度較高,如果要求插入的數值精度較高如貨幣運算等,則考慮使用

測試m和d

drop

table

ifexists tab_float;

create

table tab_float(

f1 float

, f2 double

, f3 decimal);

select

*from tab_float;

desc tab_float;

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

(123.4

,123.4

,123.4);

insert

into tab_float values

(1523.4

,1523.4

,1523.4

);

原則:

所選擇的型別越簡單越好,能儲存數值的型別越小越好

較短的文字:

char

varchar

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

enum用於儲存列舉

set用於儲存集合

較長的文字:

text

blob

(較大的二進位制)

特點:

寫法		m的意思							特點			空間的耗費	效率

char

char

(m) 最大的字元數,可以省略預設為1 固定長度的字元 比較耗費 高

varchar

varchar

(m) 最大的字元數,不可以省略 可變長度的字元 比較節省 低

create

table tab_char(

c1 enum

('a'

,'b'

,'c'

)# enum列舉型別,要求插入值必須是列表值中之一);

insert

into tab_char values

('a');

insert

into tab_char values

('b');

insert

into tab_char values

('c');

insert

into tab_char values

('m');

insert

into tab_char values

('a');

select

*from tab_char;

create

table tab_set(

s1 set

('a'

,'b'

,'c'

,'d'

)# set集合型,類似列舉,但插入值可以是集合中的子集);

insert

into tab_set values

('a');

insert

into tab_set values

('a,b');

insert

into tab_set values

('a,c,d');

select

*from tab_set;

分類:

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;

show variables like

'time_zone'

;set time_zone=

'+9:00'

;# 改變時區,datetime和timestamp就有了區別

mysql資料型別用法 mysql資料型別和用法

歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 mysql支援多種列型別 數值型別 日期 時間型別和字串 字元 型別。本章首先對這些列型別進行了概述,然後更加詳細地描述了各種列的型別,以及列型別儲存需求的總結。概述很簡單。關於具體列型別 歡迎進入linux社群論壇,與200萬技術人員互...

mysql 資料型別 真假 MySQL 資料型別

mysql基礎 資料型別 整型型別 根據所儲存的整數數值取值範圍不同,可分為以下五類 1 tinyint佔1個位元組 2 smallint佔2個位元組 3 mediumint 佔3個位元組 4 int佔4個位元組 5 bigint佔8個位元組 根據每種型別所佔的位元組數可確定其無符號整數和有符號整數...

mysql 郵箱 資料型別 mysql 資料型別

1 整型mysql資料型別含義 有符號 tinyint m 1個位元組 範圍 128 127 smallint m 2個位元組 範圍 32768 32767 mediumint m 3個位元組 範圍 8388608 8388607 int m 4個位元組 範圍 2147483648 21474836...