mysql中數據類型

mysql數據類型

首先我們要了解,在mysql中數據類型有哪幾種呢?
數據類型大的分類分爲:
數值類型、文本或者二進制、時間和日期、string類這四類。
每個下面都有什麼具體的類型呢?我們用圖來看。
數據類型
在表中紅色標識爲常用的類型,未被標識的,相對而言是用的沒有紅色頻繁。

對於tinyint、smallint、int理解

對於這三個類型我們就類比一下,在32位操作系統中,c語言中char、short、int。這三個類型,用法基本是想通過的。所以我們不過多介紹。
要注意下面幾個類型因爲和我們平時有一些差別。我們逐一介紹:

bit數據類型

我們通常定義一個類型,如 A bit(8);
這個表示A的類型爲bit具體多少個比特位,就是後面給定的數,但是我們要是插入的時候可能沒有注意,但是當插入完成後,查看數據的時候會很驚奇的發現,和原來插入的數據不對。不要慌,在bit數據中插入後,裏面是以ASCII碼顯示的。

float數據類型

它的形式如:
float[(m, d)] [unsigned]
這裏我們就需要注意一下,這裏的m表示的是float總共有幾個數,d表示的是小數點後面的位數。
怎麼理解呢?
比如:88.88 存儲類型應該是float(4,2) .
88.88總共有4個數字,所以這裏的d就是表示這個數字。小數後有兩爲,也就是保留兩位有效數字,所以m就是2.

decimal數據類型

它的數據原型如
decimal[(m,d)][unsigend]
這個就類比上面的float數據類型,表示和用法都是一樣的,但是爲什會有兩個數據類型來表示呢?
我們就來看看它們兩個不同點。
float與decimal的區別
他們最主要的區別是d這個參數上,怎麼理解呢?我們用float存儲一個小數位超過7位左右(這個取決於mysql版本)就會有精度丟失。所以我們如果要存儲高精度的小數我們就可以選用decimal。那麼decimal能表示多小呢?d表示的是小數後的位數,decimal中d的可以爲30,也就是說最小可以表示小數後30爲。m最大爲65。

字符串類型

對於字符串類型有兩種,char、varchar

char類型

char類型是一個固定的長度,它可表示的最大長度爲255個字符。注意是字符爲單位。
什麼叫一個固定長度的類型呢?就比如當你在定義一個屬性A char(250)時候,如果你只用了5個字符,那麼245個字符空間就會被浪費掉。

varchar類型

varchar是我們在字符類型中相對用的比較多的類型,因爲它有一個好處就是它是一個變長的類型,就如你定義屬性B varchar(64),但是你用了30個字節,這時候系統就會給出30多個字節的空間,因爲這個其中,因爲能實現變長,所以要多開闢一些空間進行可變長度的控制。相對來說節約空間。
還有一個注意的點就是,varchar的最大存儲量0 ~ 65535,也就是n,但是這個與字符編碼有關,如果用的gbk編碼最大存儲容量就是就是65535/2。就是它的最大存儲容量。

日期類型

對於日期類型我們需要知道三個。
datetime類型
表示的格式是:yyyy-mm-dd HH:ii:ss 佔有8個字節
date類型
表示格式:yyyy-mm-dd 佔3個字節
datestamp類型
這是表示的格式與datetime是一樣的,但是他表示的是從1970-1-1 0:0:1的一個時間戳。
這個在用的時候我們可以定義類型後在插入數據時候,不寫會自動的添加插入那條數據的時間。

枚舉和set

枚舉類型我們在c語言中也有學過,在數據庫中,枚舉也是一一列舉。
對於set,也是將信息列出來,但是他們有什麼區別?
這裏我們簡單理解。
枚舉出的,都是單一選項,怎麼說呢?就比如,男女,我們枚舉出來一條數據只能選一種男或者女,不能同時選。
而set是用於複選的情況,比如一個人的愛好,可能很多就可以一次寫多個。

以上爲小結。如有錯誤,還望指正,謝謝!

發佈了74 篇原創文章 · 獲贊 35 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章