MySQL建表字段型別參考

2021-09-01 19:14:41 字數 3438 閱讀 4247

1、數值型別

(1)int[ (m) ]

說明:標準大小的整數

允許的屬性:不選(可以取正負數),unsigned(無符號,取值範圍增大一倍),unsiged zerofill(在數值前自動填0),auto_increment(自動遞增)

取值範圍:-2147483648 到2147483647(-231 到231-1),或者如果為unsigned,則0 到4294967295(0 到232-1)

預設值:如果列為null,則為null;如果列為not full,則為0

儲存需求:4 位元組

同義詞:integer[ (m) ]

(2)float[(m,d)](m表示顯示寬度,在d表示小數字數)

說明:小浮點數;單精度(精度小於double)

允許的屬性:zerofill

取值範圍:最小非零值為±1.75494351e-38;最大非零值為±3.402823466e+38

預設值:如果列可為null,則為null;如果列為notnull,則為0

儲存需求:4位元組

同義詞:mysql3.23版以前,float(4)為具有預設m和d值的float的同義詞。

注釋:在mysql3.23以後,float(4)為真浮點型別(值儲存為硬體所允許的完整精度,而不四捨五入為預設的小數字數)。

(3)double[(m,d)]

說明:大浮點數;雙精度(比float更精確)

允許的屬性:zerofill

取值範圍:最小非零值為±2.2250738585072014e-308;最大非零值為±1。79769313-48623157e+308

預設值:如果列可為null,則為null;如果列為notnull,則為0

儲存需求:8位元組

同義詞:doubleprecision[(m,d)]和real[(m,d)]為double[(m,d)]的同義詞。mysql3.23版以前,float(8)為具有預設m和d值的float的同義詞。

注釋:在mysql3.23以後,float(8)為真浮點型別(值儲存為硬體所允許的完整精度,而不四捨五入為預設的小數字數)。

2、串型別

mysql的串型別常用來儲存文字,它不但是通用的而且還能儲存任何資料。可用串型別來儲存最大長度可變的值,而且可以選擇在處理值時是否區分大小寫。

(1)char(m)

說明:0到m位元組長的定長字串。在mysql3.23版以前,m應該為乙個1到255之間的整數。而mysql3.23版以後,m應該為乙個0到255之間的整數。短於m個字元的串儲存進右邊補空格。長於m個字元的串儲存時剪斷為長度是m的串。在檢索值時,去掉後跟的空格。

允許的屬性:binary

允許的長度:0到m位元組

預設值:如果列可為null,則為null;如果列為notnull,則為「」

儲存需求:m位元組

比較:不區分大小寫(如果具有binary屬性,則區分大小寫)

(2)varchar(m)

說明:0到m位元組長的可變長字串。m應該為1到255之間的乙個整數,或者自mysql3.23後為0到255之間的乙個整數。儲存時後跟的空格被去掉。儲存時,大於m個字元的串剪斷為m個字元。

允許的屬性:binary

允許的長度:0到m位元組

預設值:如果列可為null,則為null;如果列為notnull,則為「」

儲存需求:值的長度,加上1位元組用來記錄長度

比較:不區分大小寫(如果具有binary屬性,則區分大小寫)

(3)text

說明:常規大小的text值

允許的屬性:除通用屬性外無其他屬性

允許的長度:0到65535(0到216-1)位元組

預設值:如果列可為null,則為null;如果列為notnull,則為「」

儲存需求:值的長度加上用於記錄長度的2個位元組

比較:不區分大小寫

(4)enum(「value1」,「value2」,...)

說明:列舉,列值可賦予值列表中的某個成員

允許的屬性:除通用屬性外無其他屬性

預設值:如果列可為null,則為null;如果列為notnull,則為第乙個列舉值

儲存需求:對1到255個成員的列舉1個位元組,對255到65535個成員的列舉2個位元組

比較:不區分大小寫(mysql3.22.1版以前區分大小寫)

(5)set(「value1」,「value2」,...)

說明:集合,列值可賦予值列表中的零個或多個成員

允許的屬性:除通用屬性外無其他屬性

預設值:如果列可為null,則為null;如果列為notnull,則為「」(空集)

儲存需求:1位元組(1到8個成員的集合),2位元組(9到16個成員的集合),3位元組(17到24個成員的集合),4位元組(25到32個成員的集合)或8位元組(33到64個成員的集合)

比較:不區分大小寫(mysql3.22.1版以前區分大小寫)

3、日期和時間型別

mysql提供以各種形式表示時間資料的型別。這些資料有日期和時間型別。有一種特殊的時間型別,它在記錄更改時自動更新。還有一種用於儲存年份的型別,在不需要完全的日期時使用。

(1)date

說明:「yyyy-mm-dd」格式的日期

允許的屬性:除通用屬性外無其他屬性

取值範圍:「1000-01-01」到「9999-12-31」

零值:「0000-00-00」

預設值:如果列可為null,則為null;如果列為notnull,則為「0000-00-00」

儲存需求:3位元組(mysql3.22版以前為4位元組)

(2)time

說明:「hh:mm:ss」格式的時間(負值為「-hh:mm:ss」);表示占用的時間,但也可

以作為日常時間

允許的屬性:除通用屬性外無其他屬性

取值範圍:「-838:59:59」到「838:59:59」

零值:「00:00:00」

預設值:如果列可為null,則為null;如果列為notnull,則為「00:00:00」

儲存需求:3位元組

注釋:雖然在非法值插入time列時,「00:00:00」用作零值,但它也作為乙個合法的值出現在正常的取值範圍內

(3)year

說明:yyyy格式表示的年份

允許的屬性:除通用屬性外無其他屬性

取值範圍:1900到2155

零值:0000

預設值:如果列可為null,則為null;如果列為notnull,則為0000

儲存需求:1位元組

(4)datetime

說明:以「yyyy-mm-ddhh:mm:ss」格式表示的日期和時間(兩個部分都需要)

允許的屬性:除通用屬性外無其他屬性

取值範圍:「1000-01-0100:00:00」到「9999-12-3123:59:59」

零值:「0000-00-0000:00:00」

預設值:如果列可為null,則為null;如果列為notnull,則為「0000-00-00 00:00:00」

儲存需求:8位元組

MySQL 表字段型別選擇

mysql欄位型別大致分為以下幾類 字元型 char,varchar,set,enum,text,blob,longtext等 數字型 int,float,double,tinyint,decimal等 日期型 date,time,datetime 那麼對於設計表的時候該如何選擇欄位的資料型別?可以...

mysql 建表字段長度 MySQL建立表

mysql建立表 語法格式 create table tablename columnname datatype length columnname datatype length set character set results gbk show variables like char 建立表的...

MySQL表字段型別的選擇

1.選擇更小的資料型別 使用正確地儲存和表示資料的最小型別。更小的資料型別通常更快,因為他們使用更少的磁碟空間 記憶體和cpu快取。但是要保證實際儲存的資料不超過設定。整數型別 範圍tinyint 128到127 smallint 32768到32767 mediumint 8388608到8388...