字段型別:
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...