首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料庫基礎:資料類型與欄位類型完整指南

     編輯:MySQL 資料庫相關知識

前言:資料的本質

現實世界資訊經轉換成電腦可理解的形式即為資料。除文字、數字外,還含圖像、聲音等多媒體,但文字資料仍是最基礎、最常用的形式。

一、MySQL 四大核心資料類型

1. 數值型

  • 整數(如 32)、浮點數(如 153.4)
  • 支援科學標記法:1.24E+12、23.47e-1(指數前必須有正負號)
  • 浮點數結構:整數部 + 小數點 + 小數部(兩部不可同時為空)
  • 負值前綴 -

2. 字串型

  • 文字內容:'Hello, world!'、'一個饅頭引起的血案'
  • 非計算用途的數字串:電話 '87398413'、門牌號碼
  • 單引號或雙引號括住
  • 關鍵區別:數值型參與運算(如貸款總額),字串型僅作識別(如電話、門牌)

3. 日期時間型

  • 日期:'2006-07-12'
  • 時間:'12:30:43'
  • 日期時間組合:'2006-07-12 12:30:43'

4. NULL 值

代表「未知」或「不適用」,非空字串也非零。如通訊地址欄位留空即為 NULL。

二、欄位定義語法

col_name col_type [column_attributes] [index_option] [COMMENT 'string']

欄位命名規則

  • 最長 64 字元
  • 可含字母、數字、底線 _、美元符號 $
  • 可數字開頭,但不可全為數字(避免與數值常數混淆)
  • 保留字(SELECT、DELETE、CREATE 等)不可作欄位名,函數名(POS、MIN)可用

欄位類型與長度

  • CHAR(10):明確指定 10 字元固定長度
  • TINYBLOB:隱含最大 255 字元
  • 浮點類型可指定小數位數控制精度
  • 部分類型可指定顯示寬度

三、欄位屬性分類

1. 專用屬性(針對特定類型)

  • UNSIGNED:僅限整數類型(無負值)
  • BINARY:僅限 CHAR/VARCHAR(二進位比較)
  • ZEROFILL:數值前補零
  • AUTO_INCREMENT:整數類型自動遞增

2. 通用屬性(幾乎所有類型適用)

  • NULL / NOT NULL:是否允許空值
  • DEFAULT def_value:預設值(必須為常數,不可為運算式或引用其他欄位)
  • BLOB/TEXT 類型不可指定 DEFAULT

屬性指定順序

col_type → 專用屬性 → 通用屬性,同類屬性間順序不拘。

四、常見欄位類型概覽

分類類型說明
數值TINYINT極小整數(-128~127 / 0~255)
SMALLINT小整數
MEDIUMINT中整數
INT / INTEGER標準整數
BIGINT大整數
DECIMAL / NUMERIC精確定點數
浮點FLOAT單精度浮點數
DOUBLE雙精度浮點數
REALDOUBLE 同義詞
BIT位元欄位
日期時間DATE日期 (YYYY-MM-DD)
TIME時間 (HH:MM:SS)
DATETIME日期時間組合
TIMESTAMP時間戳記
YEAR年份
字串CHAR固定長度字串
VARCHAR變動長度字串
BINARY / VARBINARY二進位字串
TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB二進位大物件
TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT長文字
ENUM / SET列舉與集合
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved