MySQL是一種常用的關系型數據庫管理系統,它支持多種數據類型和列屬性。本文將介紹MySQL中常見的列屬性,包括數據類型、長度限制、空值約束、唯一性約束等。
--創建一個名為student的表,包含id、name、age、score四個字段 CREATE TABLE student ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, age TINYINT(2) UNSIGNED NOT NULL, score FLOAT(3,1), CONSTRAINT uc_student_name UNIQUE (name) );
1. 數據類型
MySQL支持多種數據類型,包括數值、字符、日期/時間等。在創建表時,需指定每個列的數據類型。
--定義id列為整數型 id INT(6) --定義name列為字符串型,長度為30 name VARCHAR(30) --定義age列為無符號的小整數型,長度為2字節 age TINYINT(2) UNSIGNED --定義score列為浮點型,總長度為3位,小數位為1位 score FLOAT(3,1) --定義birthday列為日期類型 birthday DATE
2. 長度限制
對于字符類型的列,可指定其最大長度。如果插入的數據超過該長度,MySQL將自動截斷數據,而不是返回錯誤。
--定義name列最大長度為30 name VARCHAR(30) --定義email列最大長度為50 email CHAR(50)
3. 空值約束
在創建表時,可指定某個列是否允許為空。若設為NOT NULL,則插入數據時必須為該列賦值,否則MySQL將返回錯誤。
--定義id列為主鍵,不允許為空 id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY --定義name列不允許為空 name VARCHAR(30) NOT NULL --定義age列不允許為空 age TINYINT(2) UNSIGNED NOT NULL
4. 唯一性約束
在創建表時,可為某個列添加唯一性約束。若設為UNIQUE,則插入數據時該列的值不能與其他已存在的值相同。
--定義name列為唯一性約束 CONSTRAINT uc_student_name UNIQUE (name) --定義email列為唯一性約束 CONSTRAINT uc_student_email UNIQUE (email)
以上是MySQL中常見的列屬性。在實際開發中,根據數據的特點和需求,靈活選用不同的屬性設置。