mysql 字段位元組 MySql欄位型別及位元組

2021-10-17 13:23:46 字數 3691 閱讀 4822

字段型別:

tinyint-----------------乙個很小的整數。有符號的範圍是-128到127,無符號的範圍是0到255。

smallint--------------乙個小整數。有符號的範圍是-32768到32767,無符號的範圍是0到65535。

mediumint------------乙個中等大小整數。有符號的範圍是-8388608到8388607,無符號的範圍是0到16777215。

int------------------------乙個正常大小整數。有符號的範圍是-2147483648到2147483647,無符號的範圍是0到4294967295。

integer---------------int的乙個同義詞。

bigint-------------------乙個大整數。有符號的範圍是-9223372036854775808到9223372036854775807,無符號的範圍是0到18446744073709551615。

float--------------------乙個小(單精密)浮點數字。不能無符號。允許的值是-3.402823466e+38到-1.175494351e-38,0 和 1.175494351e-38到3.402823466e+38。m是顯示寬度而d是小數的位數。沒有引數的float或有<24 的乙個 引數表示乙個單精密浮點數字。

double-----------------乙個正常大小(雙精密)浮點數字。不能無符號。允許的值是-1.7976931348623157e+308到-2.2250738585072014e-308、 0和2.2250738585072014e-308到1.7976931348623157e+308。

double precision、real[(m,d)] [zerofill] 這些是double同義詞。

decimal----------------乙個未壓縮(unpack)的浮點數字。不能無符號。行為如同乙個char列:「未壓縮」意味著數字作為乙個字串被儲存,值的每一位使用乙個字元。

numeric--------------- 這是decimal的乙個同義詞。

date --------------------乙個日期。支援的範圍是'1000-01-01'到'9999-12-31'。mysql以'yyyy-mm-dd'格式來顯示date值,但是允許你使用字串或數字把值賦給date列。

datetime -------------乙個日期和時間組合。支援的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。mysql以'yyyy-mm-dd hh:mm:ss'格式來顯示datetime值,但是允許你使用字串或數字把值賦給datetime的列。

timestamp------------乙個時間戳記。範圍是'1970-01-01 00:00:00'到2023年的某時。乙個timestamp列對於記錄乙個insert或update操作的日期和時間是有用的,你以可以通過賦給它乙個null值設定它為當前的日期和時間。

time ---------------------乙個時間。範圍是'-838:59:59'到'838:59:59'。mysql以'hh:mm:ss'格式來顯示time值,但是允許你使用字串或數字把值賦給time列。

year---------------------乙個2或4位數字格式的年(預設是4位)。允許的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。mysql以yyyy格式來顯示year值,但是允許你把使用字串或數字值賦給year列。(year型別在mysql3.22中是新型別。)

tinyblob 、tinytext 乙個blob或text列,最大長度為255(2^8-1)個字元

blob 、text ---------乙個blob或text列,最大長度為65535(2^16-1)個字元

mediumblob、mediumtext -------乙個blob或text列,最大長度為16777215(2^24-1)個字元

longblob 、longtext--------------乙個blob或text列,最大長度為4294967295(2^32-1)個字元

enum-----------------------列舉。乙個僅有乙個值的字串物件,這個值式選自與值列表'value1'、'value2', ...,或null。乙個enum最多能有65535不同的值。

set-------------------------乙個集合。能有零個或多個值的乙個字串物件,其中每乙個必須從值列表'value1', 'value2', ...選出。乙個set最多能有64個成員。

數字型別

列型別需要的儲存量

tinyint

1 位元組

smallint

2 個位元組

mediumint

3 個位元組

int4 個位元組

integer

4 個位元組

bigint

8 個位元組

float(x)

4 如果 x < = 24 或 8 如果 25 < = x < = 53

float

4 個位元組

double

8 個位元組

double precision

8 個位元組

real

8 個位元組

decimal(m,d)

m位元組(d+2 , 如果m < d)

numeric(m,d)

m位元組(d+2 , 如果m < d)

日期和時間型別

列型別需要的儲存量

date

3 個位元組

datetime

8 個位元組

timestamp

4 個位元組

time

3 個位元組

year

1 位元組

串型別列型別

需要的儲存量

char(m)

m位元組,1 <= m <= 255

varchar(m)

l+1 位元組, 在此l <= m和1 <= m <= 255

tinyblob, tinytext

l+1 位元組, 在此l< 2 ^ 8

blob, text

l+2 位元組, 在此l< 2 ^ 16

mediumblob, mediumtext

l+3 位元組, 在此l< 2 ^ 24

longblob, longtext

l+4 位元組, 在此l< 2 ^ 32

enum('value1','value2',...)

1 或 2 個位元組, 取決於列舉值的數目(最大值65535)

set('value1','value2',...)

1,2,3,4或8個位元組, 取決於集合成員的數量(最多64個成員)

text與blob的區別在於:text不能儲存。blob是二進位製流,text是非二進位制。

mysql 的二進位制資料型別 binary, varbinary, blob 都沒有字符集的概念。

再訪問blob資料時,要入庫時base64,出庫時再base64。

zerofill屬性(零值)適用於所有數值類資料列型別,作用是,如果數值的寬度小於定義的顯示寬度,則在數值前填充0。

unsigned屬性不允許資料列出現負數。

auto_increment屬性可生成獨一無二的數字序列。只對整數類的資料列有效。

null和not null屬性設定資料列是否可為空。

default屬性可為資料列指定預設值。

mysql欄位公式 MySQL(四)欄位及常用函式

一 字段 資料庫表中的每一行叫做乙個 記錄 每乙個記錄包含這行中的所有資訊,但記錄在資料庫中並沒有專門的記錄名,常常用它所在的行數表示這是第幾個記錄。在資料庫中存放在表行列交叉處的資料叫做 值 它是資料庫中最基本的儲存單元,它的位置要由這個表中的記錄和字段來定義。1 字段 filed 與物件或類關聯...

mysql欄位型別及占用位元組

tinyint 1 位元組 smallint 2 個位元組 mediumint 3 個位元組 int 4 個位元組 integer 4 個位元組 bigint 8 個位元組 float x 4 如果 x 24 或 8 如果 25 x 53 float 4 個位元組 double 8 個位元組 dou...

mysql set欄位 MySQL的SET欄位型別

set是乙個字串物件,可以有零或多個值,其值來自表建立時規定的允許的一列值。指定包括多個set成員的set列值時各成員之間用逗號 間隔開。這樣set成員值本身不能包含逗號。例如,指定為set one two not null的列可以有下面的任何值 one two one,two set最多可以有64...