在MySQL中,定義數據類型是創建表(table)時非常重要的一部分。MySQL支持多種數據類型,包括數字類型、字符串類型、日期和時間類型以及其他類型。以下是MySQL中常見的數據類型及其定義:
數值類型:
TINYINT
:1個字節有符號整數,范圍從-128到127(有符號),或0到255(無符號)。SMALLINT
:2個字節有符號整數,范圍從-32,768到32,767(有符號),或0到65,535(無符號)。MEDIUMINT
:3個字節有符號整數,范圍從-8,388,608到8,388,607(有符號),或0到16,777,215(無符號)。INT
:4個字節有符號整數,范圍從-2,147,483,648到2,147,483,647(有符號),或0到4,294,967,295(無符號)。BIGINT
:8個字節有符號整數,范圍從-9,223,372,036,854,775,808到9,223,372,036,854,775,807(有符號),或0到18,446,744,073,709,551,615(無符號)。DECIMAL
/ NUMERIC
:任意精度的有符號十進制數。可以指定小數點后的位數,以及總的數字位數。FLOAT
:單精度浮點數。DOUBLE
/ REAL
:雙精度浮點數。BIT
:用于存儲二進制位字段,每個BIT
字段可以存儲0或1。字符串類型:
CHAR
:固定長度的字符串。定義時指定長度,且長度固定的情況下,字符串會被用空格填充至指定長度。VARCHAR
:可變長度的字符串。定義時指定最大長度,實際存儲時根據內容長度動態分配空間。TEXT
:用于存儲較長的文本數據。MEDIUMTEXT
:用于存儲中等長度的文本數據。LONGTEXT
:用于存儲非常長的文本數據。日期和時間類型:
DATE
:日期值,格式為YYYY-MM-DD
。TIME
:時間值,格式為HH:MM:SS
。DATETIME
:日期和時間值,格式為YYYY-MM-DD HH:MM:SS
。TIMESTAMP
:時間戳值,表示從’1970-01-01 00:00:01’ UTC到現在的秒數,使用時通常與當前時間相關聯。YEAR
:僅年份值,范圍從1901到2155。其他類型:
ENUM
:枚舉類型,允許在預定義的字符串集中選擇一個值。SET
:集合類型,允許在預定義的字符串集中選擇多個值。BINARY
/ VARBINARY
:二進制數據類型,與CHAR
和VARCHAR
類似,但存儲的是二進制字符而不是文本字符。BLOB
:二進制大對象,用于存儲大量的二進制數據。VARBINARY
:可變長度的二進制數據類型。JSON
:用于存儲JSON格式的數據。在定義表結構時,可以根據實際需求選擇合適的數據類型來存儲相應的數據。例如:
CREATE TABLE example_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
birthdate DATE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
在這個例子中,我們定義了一個包含ID、姓名、年齡、出生日期和創建時間的表,并為每個字段指定了相應的數據類型。