程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 基於mysq字段選擇的詳解

基於mysq字段選擇的詳解

編輯:關於MYSQL數據庫

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 的值決定,存蓄的方式是字符串;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved