《Mysql入門基于mysq字段選擇的詳解》要點:
本文介紹了Mysql入門基于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 MYSQL必讀
整型類型:
Decimal(M,D)占M+2個字節,小數點和符號必要
各自占一個字節;
DECIMAL 可能的最大取值范圍與DOUBLE 一樣
,但是其有效的取值范圍由M 和D 的值決定,存蓄
的方式是字符串;
Decimal(M,D)占M+2個字節,小數點和符號必要各自占一個字節;
DECIMAL 可能的最大取值范圍與DOUBLE 一樣,但是其有效的取值范圍由M 和D 的值決定,存蓄的方式是字符串;
MYSQL必讀
維易PHP培訓學院每天發布《Mysql入門基于mysq字段選擇的詳解》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。