基於mysq字段選擇的詳解。本站提示廣大學習愛好者:(基於mysq字段選擇的詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是基於mysq字段選擇的詳解正文
mysql支撐許多字段類型,包含數值類型、日期/時光類型和字符串(字符)類型;在應用時須要斟酌到存儲空間,存儲效力;
幾種列類型描寫應用了下述通例:
· M
表現最年夜顯示寬度。最年夜有用顯示寬度是255。
· D
時光類型:datetime(8bytes),timestamp(4bytes)
字符類型:
VARCHAR(M),L+1個字節,個中L<= M且0 <=M<= 65535,不宜把M設置得過年夜,由於在內存中管帳算現實長度,這個盤算時須要消費資本的;
CHAR(M)M個字節,0 <= M<= 255
BINARY(M),M個字節,0 <= M <= 255
VARBINARY(M),L+1個字節,個中L <= M且0<= M <= 255
ENUM('value1','value2',...),1或2個字節,取決於列舉值的個數(最多65,535個值),調劑比擬龐雜,須要先drop在create;在列舉值小於255時,占1個字節,年夜於255時占2個字節;
SET('value1','value2',...)1、2、3、4或許8個字節,取決於set成員的數量(最多64個成員),1-8占1個字節,9-16占2個字節,17-24占3個字節,25-32占4個字節,33-64占8個字節;
整型類型:
tinyint(8),一個字節
smallint(16),2個字節
mediumint(24),3個字節
int(32),4個字節
bigint(64),8個字節
實型類型:
float(4bytes)
Float(M,D) 單精度浮點型,准確到小數點前面6位,雙精度double(M,D)准確到小數點前面13位;
float 內存若何存儲
類型
存儲位數
總位數
偏移值
數符(S)
階碼(E)
尾數(M)
(offset)
短實數(float)
1
8
23
32
127
長實數(double)
1
11
52
64
1023
Float怎樣存儲
N (10) = 123.456,
換算成二進制表現:
N (2) = 1111011. 01110100101111001
= 1. 11101101110100101111001(...) * 2^6
那末 E = 127 + 6 = 133(10) = 10000101(2)
M = 111 0110 1110 1001 0111 1001 (省略了最高數字位1, 共23bit)
組合起來就是:
S E M
0 10000101 111 0110 1110 1001 0111 1001
整型類型:
Decimal(M,D)占M+2個字節,小數點和符號須要
各自占一個字節;
DECIMAL 能夠的最年夜取值規模與DOUBLE 一樣
,然則其有用的取值規模由M 和D 的值決議,存蓄
的方法是字符串;
Decimal(M,D)占M+2個字節,小數點和符號須要各自占一個字節;
DECIMAL 能夠的最年夜取值規模與DOUBLE 一樣,然則其有用的取值規模由M 和D 的值決議,存蓄的方法是字符串;