MySQL學習筆記(二)編碼
ALTER TABLE tbl_name
DROP PRIMARY KEY;索引
若是有AUTO_INCREMENT,要先去掉才能刪除主鍵rem
整數型字符串
數據類型 | 有符號型存儲範圍 | 無符號型存儲範圍 | 字節 |
---|---|---|---|
TINYINT | $-2^7$ ~ $2^7-1$ | $0$ ~ $2^8-1$ | 1 |
SMALLINT | $-2^{15}$ ~ $2^{15}-1$ | $0$ ~ $2^{16}-1$ | 2 |
MEDIUMINT | $-2^{23}$ ~ $2^{23}-1$ | $0$ ~ $2^{24}-1$ | 3 |
INT | $-2^{31}$ ~ $2^{31}-1$ | $0$ ~ $2^{32}-1$ | 4 |
BIGINT | $-2^{63}$ ~ $2^{63}-1$ | $0$ ~ $2^{64}-1$ | 8 |
BOOL,BOOLEAN | 0爲false,其餘爲true | 1 |
超過指定長度要求時自動截斷it
浮點數table
數據類型 | 存儲範圍 | 字節 |
---|---|---|
FLOAT[M,D] | $-3.2010^{38}$ ~ $-1.1710^{-38}$ & $0$ & $1.17510^{-38}$ ~ $3.4010^{38}$ | 4 |
DOUBLE[M,D] | $-1.7910^{308}$ ~ $-2.2210^{-308}$ & $0$ & $2.2210^{-308}$ ~ $1.7910^{308}$ | 8 |
其中,M表示總長度,D表示小數部分長度
超過指定長度要求時自動四捨五入class
定點型數據類型
數據類型 | 存儲範圍 | 字節 |
---|---|---|
DECIMAL[M,D] | 和DOUBLE相同,以字符串形式存儲 | 8 |
超過指定長度要求時自動截斷
DECIMAL比FLOAT和DOUBLE精度高學習筆記
數據類型 | 存儲需求 |
---|---|
CHAR(M) | M個字節,$0 <=M<= 255$ |
VARCHAR(M) | L+1個字節,$L<=M,0 <=M<= 65535$ |
TINYTEXT | L+1個字節,$L<2^8$ |
TEXT | L+2個字節,$L<2^{16}$ |
MIDUMTEXT | L+3個字節,$L<2^{24}$ |
LONGTEXT | L+4個字節,$L<2^{32}$ |
ENUM('value1','value2',...) | 1或2個字節,取決於枚舉值的個數,最多65535個值 |
SET('value1','value2',...) | 一、二、三、4或8個字節,取決於set成員的數目,最多64個 |
CHAR通常比VARCHAR存儲空間大,但查詢速度更快
在字符串長度達不到CHAR的要求時,會在後面自動填充空格,但查詢時不會去掉空格;VARCHAR不會自動填充,尾部若有空格會保留
TEXT列不能有默認值,檢索時不存在大小寫轉換
ENUM類型自動過濾空格,下標從1開始,下表越界時不能添加
數據類型 | 存儲範圍 | 存儲需求 |
---|---|---|
TIME | -838:59:59 ~ 838:59:59 | 3 |
DATE | 1000-01-01 ~ 9999-12-31 | 3 |
DATETIME | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 |
TIMESTAMP | 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 | 4 |
YEAR | 1901-2155 | 1 |