mysql 16777215 MySQL 資料型別

2021-10-18 08:33:01 字數 4279 閱讀 2777

mysql 資料型別

以下各節描述了mysql支援的資料型別。

mysql資料型別

mysql支援三種型別的資料型別:字串,數字和日期/時間資料型別。

字串資料型別

字串資料型別通常用於儲存名稱,位址,描述或任何包含字母和數字的值,包括二進位制資料,例如影象或音訊檔案。

char和varchar型別

char資料型別允許儲存最大為255個字元的固定長度字串。而varchar資料型別允許儲存最大為65,535個字元的可變長度字串(在mysql 5.0.3之前限制為255個字元)。

char和varchar資料型別宣告的長度表示希望儲存的最大字元數。例如,char(5)最多可以容納5個字元。

char和varchar資料型別之間的主要區別是它們儲存資料的方式。當值儲存在char列中時,將用指定長度的空格右填充,但在varchar列中儲存值時將不對其進行填充。這意味著,如果將值「 ab」 char(4)儲存在varchar(4)列中,則該值將被儲存為「 ab」,而相同的值將被儲存為「 ab」。

注意:varchar的有效最大長度受最大行大小(65,535位元組,由所有列共享)和所使用的字符集的限制。

binary和varbinary型別

binary和varbinary型別類似於char和varchar,不同之處在於它們包含二進位制字串而不是非二進位制字串。

binary和varbinary的最大允許長度與char和varchar相同,不同之處在於binary和varbinary的長度以位元組為單位,而不是以字元為單位。

text和blob型別

blob是乙個二進位製大物件,可以容納可變數量的資料。 當您需要在資料庫中儲存二進位制**檔案(例如影象或音訊檔案)時,此功能特別有用。

四種blob型別是tinyblob、blob、mediumblob和longblob。它們的區別僅在於它們所能容納的值的最大長度。同樣,這四種文字型別是tinytext、text、mediumtext和longtext。這些對應於四種blob型別,具有相同的最大長度和儲存需求。

下表列出了成對出現的mysql字串資料型別。無論型別是二進位制還是非二進位制,最大長度都以位元組為單位。

二進位制資料型別非二進位制資料型別最大長度binarychar255

varbinaryvarchar65,535

tinyblobtinytext255

blobtext65,535

mediumblobmediumtext16,777,215

longbloblongtext4,294,967,295

注意:對於非二進位制字串資料型別,列長度值通常稱為字元數而不是位元組數。這意味著包含多位元組字元的字串的最大字元數更少。

列舉(enum)型別

enum資料型別允許您指定可以儲存在列中的可能值的列表。 例如,指定為性別enum('male','female')not

null的列可以具有以下任意值:'','male'或'female'。 您可以在enum列表中最多指定65,535個不同的值。

如果您在enum列中插入無效值(即,在允許值列表中不存在的字串),則會插入空字串。

set型別

set資料型別允許指定要插入到列中的值列表,比如列舉。但是,與只允許選擇乙個值的enum資料型別不同,set資料型別允許從指定的值列表中選擇多個值。

例如,指定為option set('one', 'two') not null的列可以儲存以下任何值:",'one', 'two'或'one,two'。用逗號分隔的多個值(,)。對於set資料型別,最多可以指定64個不同的值。

數值資料型別

數值資料型別通常用於儲存**,薪水等資料。

integer,int,smallint,tinyint,mediumint,bigint型別

mysql支援sql標準整數型別integer(或int)和smallint。mysql也支援整數型別tinyint,mediumint和bigint作為擴充套件sql標準。下表顯示了每種整數型別的範圍。

資料型別範圍(簽名)範圍(無符號)tinyint-128 至 1270 至 255

smallint-32768 至 327670 至 65535

mediumint-8388608 至 83886070 至 16777215

int-2147483648 至 21474836470 至 4294967295

bigint-9223372036854775808 至 92233720368547758070 至 18446744073709551615

數值資料型別具有有signed(符號)和unsigned(無符號)的附加屬性。數值資料型別在預設情況下是有符號的,其範圍從負到正。向數值列新增unsigned屬性不允許使用負數,並向上移動範圍,使最小值從0開始,而不是從負數開始。

decimal,numeric型別

decimal和numeric資料型別是用來儲存準確數值。這些資料型別也稱為「定點」或「精確值」型別,通常在需要保持精確精度時使用,例如儲存像產品**這樣的貨幣資料。在mysql中,numeric被實現為decimal。

在宣告decimal或numeric列時,可以指定精度和小數字數,例如decimal(p,s)或numeric(p,s),其中p是精度,s是小數字數。

精度指定可以在列中儲存的最大位數(包括小數點後的位數),而小數字數表示可以儲存在小數點後的位數。

例如,**decimal(6,2)列可以儲存具有六位數字和兩個小數的任何值,即-9999.99到9999.99之間的值。

float,double型別

float和double型別表示近似的數值資料值。這就是為什麼這些資料型別也稱為「浮點型」或「近似值」型別

mysql支援的語法:float(m,d)或double precision(m,d)。

在此,(m,d)表示總共可以儲存多達m位的值,其中d位可以在小數點後。 例如,顯示為float(7,3)的列顯示為-9999.999。

mysql在儲存值時會進行四捨五入,因此,如果將9999.0009插入float(7,3)列,則近似結果為9999.001。

注意:比較浮點值可能會導致問題,因為它們是近似值,而不是精確值。因此,為了儲存可以用於比較的值,如price、salary等,請使用decimal資料型別。

日期(date)和時間(time)資料型別

日期和時間資料型別通常用於儲存資料,例如出生日期,雇用日期,在表內建立或更新記錄時的日期和時間等。

date型別

date資料型別用於儲存日期。mysql date以'yyyy-mm-dd'格式儲存和檢索值,其中yyyy,mm和dd分別是時間的年,月和日部分。支援的範圍是「 1000-01-01」至「 9999-12-31」。

時間(time)型別

time資料型別可以被用來儲存時間的日或時間間隔。mysql time以以下'hh:mm:ss'格式儲存和檢索值,其中hh,mm和ss是時間的小時,分鐘和秒部分(或'hhh:mm:ss'大小時數的格式)。支援的time值範圍是'-838:59:59'到'838:59:59'。

小時部分可能很大,因為在mysql中,該time型別不僅可以用於儲存一天中的時間(必須少於24小時),而且還可以用於經過的時間或兩個事件之間的時間間隔(可能遠大於24小時,甚至是負的)。

注意:預設情況下,超出time範圍但有效的值將被裁剪到範圍的最近端點。例如,「 860:00:00」將轉換為「 838:59:59」。無效的time值將轉換為「 00:00:00」。

datetime和timestamp型別

datetime和timestamp資料型別用於以'yyyy-mm-dd hh:mm:ss'格式儲存合併的日期和時間值。這些資料型別通常用於儲存分發訂單時的日期和時間、在表中建立或修改一行時的資料,等等。

這兩種資料型別在許多方面類似,但是有一些區別。datetime支援的範圍是'1000-01-01

00:00:00'到'9999-12-31 23:59:59'。然而,時間戳的範圍是'1970-01-01 00:00:01'

utc到'2038-01-19 03:14:07' utc。

timestamp和datetime也具有特殊的自動初始化和自動更新屬性,但是這些屬性不適用於mysql 5.6.5之前的datetimem。

注意: mysql將timestamp值從當前時區轉換為utc以進行儲存,然後從utc轉換為當前時區以進行檢索。

年份(year)型別

year資料型別用於儲存在四位數年份值yyyy格式。

可以將其宣告為year或year(4)。支援的year值範圍是1901至2155。無效year值將轉換為0000。

注意:較舊的mysql版本還允許使用來儲存兩位數的年份值year(2),但現在已棄用,並且在mysql 5.7.5中已刪除了對它的支援。

mysql 16777215 MySQL 資料型別

mysql 資料型別 mysql 支援多種型別,大致可以分為三類 數值 日期 時間 字串和列舉型別。數值型別 整型 型別 大小 範圍 有符號 範圍 無符號 用途 tinyint 1 位元組 128,127 0,255 小整數值 smallint 2 位元組 32768,32767 0,65535 大...

mysql使用規範 MySQL使用規範 MySQL

bitscn.com mysql使用規範 一 核心規範 1.不用資料庫做運營,如md5 order by rand 2.控制單錶資料量 a 單錶純int不超過1000w b 單錶含char不超過500w c 單庫不超過300 400個表 3.表字段數少而精 a 影響因素 i.io高效 ii.全表遍歷...

mysql部門分類 mysql部類參照 mysql

mysql資料庫內容總結 數字型別 tinyint m unsigned zerofull 1個位元組 預設的是有符號的 128 127 unsigned 無符號整數 範圍0 255 m 代表寬度 在zerofull時才有意義 只是乙個顯示效果,不會影響到實際的資料長度 zerofull 零填充 如...