MySQL基礎之數據類型
我們都知道每種編程語言和數據都有自己的一套數據類型,當然MySQL也不例外,個人感覺MySQL的數據類型優點類似C++,那麼本篇將帶你回顧一下熟悉的MySQL常見的數據類型
- MySQL的數據類型:
- 數據類型有下列特性:
- 1. 代表了什麼類型的值
- 2. 該類型的值佔據的空間大小
- 3. 該類型的值是否可變化
- 4. 決定了mysql對該類型的值如何進行排序和比較
- 5. 決定了該類型的值是否支持索引
- MySQL的數據類型有如下幾類:
- 字符型:
- char varchar(最多都能使用255個字符)
- char 固定長度 -----------------------
- 在實現查詢的時候效率較高
- varchar可變長度,存儲的本身的長度加1(結束符)
- 在實現查詢的時候效率較低
- binary varbinary(以二進制的格式存儲字符)
- char與varchar的區別在於
- char 不區分字母的大小寫,有字符集和排序規則
- varchar區分字母的大小寫,而且沒有字符集和排序規則
- text(文本對象)---MySQL保存的數據的指針而非數據(數據保存在表外的位置)
- TINTTEXT ---長度2*8個字節
- TEXT---------2*16次方個字節
- MEDIUMTEXT-2*24次方個字節
- LONGTEXT ---- 2*32次方個字節(大約4G)
- Blob
- BLOB
- MEDIUMBLOB
- LONGBLOB
- ENUM,SET
- 例如:
- ENUM(’xiaohua’,’xiaoming’,….) ---最多可以列舉65535個,ENUM中保存的數據非字符或者字符串本身
- SET(‘a’,’o,’e’,…..): SET 中保存的是aoe的任意組合
- 常見的字符型的修飾符:
- NOT NULL ,NULL, DEFAULT ‘value’ , . CHARACTER SET ‘’(指定默認的字符集) character set
- COLLATION ‘’(指定默認的排序規則), coliation
- 日期時間型
- Date
- 格式:CCYY—MM--DD
- Time
- 格式:hh:mm:ss
- Datetime
- 格式:CCYY—MM—DD hh:mm:ss
- timestamp
- 格式:CCYY—MM—DD hh:mm:ss(從1970年1月1日0分0秒到目前經過的秒數)
- Year(2|4)
- 數值型
- 精確值
- 整型
- TINYINT - 1個字節範圍(-128—127,0-255)
- SMALLINT2個字節範圍(-32768—32767,0-65535)
- MEDIUMINT3個字節
- INT ---4個字節
- LONGINT-8個字節
- 十進制
- DECIMAL(g,f) g:整個數字的位數 f:float小數點後面精確的位置
- 例如:DECIMAL(5,2) 123.34
- 近似值
- 浮點型(單精度,雙精度)
- 例如 12.56 在計算機中存儲中存儲的是數字(1256)和科學計數法的指數,而非小數點,也非整個數字
- float(g,f) :使用4個字節存儲數據
- Double(g,f):使用8個字節存儲數據
- 注:對於MySQl而言沒有真正的布爾型而是使用TINYINT(1)表示
- 數值型修飾符:
- NOT NULL , NULL , DEFAULT, AUTO_INCREMENT, UNSGINED,SGINED ,PRIMARY KEY(主鍵) , UNIQUE(唯一鍵)
- 兩種不同方式的複製表的對比:
- 第一種CREATE TABLE tb2 LIKE tb1(僅複製表結構)
- CREATE TABLE tb3 SELECT * FROM tb1(複製表數據而非表結構)
- 複製結果對比
- 從結果可以看出
- 使用LIKE 關鍵字的形式我們進複製了原來表的表結構(沒有複製數據),
- 使用SELECT * FROM old_name的形式不復製表結構,僅複製表的數據部