溫馨提示×

MySQL數(shù)據(jù)類型怎樣定義

小樊
81
2024-11-01 06:10:47
欄目: 云計算

在MySQL中,定義數(shù)據(jù)類型是創(chuàng)建表(table)時非常重要的一部分。MySQL支持多種數(shù)據(jù)類型,包括數(shù)字類型、字符串類型、日期和時間類型以及其他類型。以下是MySQL中常見的數(shù)據(jù)類型及其定義:

  1. 數(shù)值類型

    • TINYINT:1個字節(jié)有符號整數(shù),范圍從-128到127(有符號),或0到255(無符號)。
    • SMALLINT:2個字節(jié)有符號整數(shù),范圍從-32,768到32,767(有符號),或0到65,535(無符號)。
    • MEDIUMINT:3個字節(jié)有符號整數(shù),范圍從-8,388,608到8,388,607(有符號),或0到16,777,215(無符號)。
    • INT:4個字節(jié)有符號整數(shù),范圍從-2,147,483,648到2,147,483,647(有符號),或0到4,294,967,295(無符號)。
    • BIGINT:8個字節(jié)有符號整數(shù),范圍從-9,223,372,036,854,775,808到9,223,372,036,854,775,807(有符號),或0到18,446,744,073,709,551,615(無符號)。
    • DECIMAL / NUMERIC:任意精度的有符號十進制數(shù)。可以指定小數(shù)點后的位數(shù),以及總的數(shù)字位數(shù)。
    • FLOAT:單精度浮點數(shù)。
    • DOUBLE / REAL:雙精度浮點數(shù)。
    • BIT:用于存儲二進制位字段,每個BIT字段可以存儲0或1。
  2. 字符串類型

    • CHAR:固定長度的字符串。定義時指定長度,且長度固定的情況下,字符串會被用空格填充至指定長度。
    • VARCHAR:可變長度的字符串。定義時指定最大長度,實際存儲時根據(jù)內(nèi)容長度動態(tài)分配空間。
    • TEXT:用于存儲較長的文本數(shù)據(jù)。
    • MEDIUMTEXT:用于存儲中等長度的文本數(shù)據(jù)。
    • LONGTEXT:用于存儲非常長的文本數(shù)據(jù)。
  3. 日期和時間類型

    • DATE:日期值,格式為YYYY-MM-DD。
    • TIME:時間值,格式為HH:MM:SS。
    • DATETIME:日期和時間值,格式為YYYY-MM-DD HH:MM:SS。
    • TIMESTAMP:時間戳值,表示從’1970-01-01 00:00:01’ UTC到現(xiàn)在的秒數(shù),使用時通常與當前時間相關聯(lián)。
    • YEAR:僅年份值,范圍從1901到2155。
  4. 其他類型

    • ENUM:枚舉類型,允許在預定義的字符串集中選擇一個值。
    • SET:集合類型,允許在預定義的字符串集中選擇多個值。
    • BINARY / VARBINARY:二進制數(shù)據(jù)類型,與CHARVARCHAR類似,但存儲的是二進制字符而不是文本字符。
    • BLOB:二進制大對象,用于存儲大量的二進制數(shù)據(jù)。
    • VARBINARY:可變長度的二進制數(shù)據(jù)類型。
    • JSON:用于存儲JSON格式的數(shù)據(jù)。

在定義表結(jié)構(gòu)時,可以根據(jù)實際需求選擇合適的數(shù)據(jù)類型來存儲相應的數(shù)據(jù)。例如:

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、姓名、年齡、出生日期和創(chuàng)建時間的表,并為每個字段指定了相應的數(shù)據(jù)類型。

0