本篇文章為大家帶來了關於mysql字段類型的相關知識,做了個總結,希望對大家有幫助。
前言:
要了解一個資料庫,我們必須了解其支援的資料類型。 MySQL 支援大量的欄位類型,其中常用的也有很多。前面文章我們也講過 int 及 varchar 類型的用法,但一直沒有全面講過字段類型,本篇文章我們將把字段類型一網打盡,講一講常用字段類型的用法。
常用的欄位類型大致可以分為數值型別、字串型、日期時間型別三大類,以下我們依照分類依序來介紹下。
數值型別大類又可以分為整數、浮點型、定點型三小類。
整數型主要用來儲存整數值,主要有以下幾個欄位型別:
整數型常被用到,像是tinyint、int、 bigint 。預設是有符號的,若只需儲存無符號值,可增加 unsigned 屬性。
int(M)中的M 代表最大顯示寬度,並不是說int(1) 就不能儲存數值10了,不管設定了顯示寬度是多少個字符,int 都是佔用4個字節,即int(5)和int(10)可儲存的範圍一樣。
儲存位元組越小,佔用空間越小。所以本著最小化儲存的原則,我們要盡量選擇合適的整數類型,例如:儲存一些狀態值或人的年齡可以用tinyint ;主鍵列,無負數,建議使用int unsigned 或bigint unsigned,預估欄位數字取值會超過42 億,使用bigint 型。
浮點型主要有float,double 兩個,浮點型在資料庫中存放的是近似值,例如float(6,3),如果插入一個數123.45678,實際資料庫裡存的是123.457,但總個數也以實際為準,即6位,整數部分最大是3位。 float 和 double 平常用的不太多。
定點型欄位類型有 DECIMAL 一個,主要用於儲存有精度要求的小數。
DECIMAL 從 MySQL 5.1 引入,列的宣告語法是 DECIMAL(M,D) 。 NUMERIC 與 DECIMAL 同義,如果欄位類型定義為 NUMERIC ,則會自動轉成 DECIMAL 。
對於宣告語法 DECIMAL(M,D) ,自變數的值範圍如下:
例如欄位salary DECIMAL(5,2),能夠儲存具有五位數字和兩位小數的任何值,因此可以儲存在salary列中的值的範圍是從-999.99到999.99 。
字串型別也常用到,常用的幾個型別如下表:
YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP,幾種型別比較如下:
涉及日期和時間欄位類型選擇時,根據儲存需求選擇合適的類型即可。
關於 DATETIME 與 TIMESTAMP 兩種類型如何選用,可以按照存儲需求來,例如要求存儲範圍更廣,則建議使用 DATETIME ,如果只是存儲當前時間戳,則可以使用 TIMESTAMP 類型。不過值得注意的是,TIMESTAMP 欄位資料會隨著系統時區而改變但 DATETIME 欄位資料不會。整體來說 DATETIME 使用範圍更廣。
總結:
這篇文章主要介紹了MySQL 中常用的欄位類型,平常用到的欄位類型基本上都在這裡了,以一張心智圖總結如下:
推薦學習:mysql影片教學
以上是最全解析:MySQL欄位類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!