在 MySQL 中定義列非常重要,列的定義會直接影響到表的結構和數據存儲方式。
在定義列時,需要考慮以下幾個方面:
- 數據類型:定義該列所存儲的數據類型,如整型、字符型、日期型等。
- 長度和精度:對于某些數據類型,需要設置長度和精度。
- 非空約束:如果要求該列的值不能為空,則需要添加非空約束。
- 主鍵約束:如果需要該列作為表的主鍵,則需要添加主鍵約束。
- 默認值:對于某些列,需要設置默認值。
- 唯一約束:如果要求該列的值唯一,則需要添加唯一約束。
- 外鍵約束:如果該列是外鍵,則需要添加外鍵約束。
CREATE TABLE `users`( `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `username` VARCHAR(50) NOT NULL UNIQUE, `password` VARCHAR(50) NOT NULL, `email` VARCHAR(50), `birthday` DATE, `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的代碼中,定義了一個名為“users”的表,包含了 7 個列。
其中,“id”列是整型,為主鍵,且自動增長;“username”列是字符型,長度為 50,為唯一并且不能為空;“password”列是字符型,長度為 50,不能為空;“email”列是字符型,長度為 50;“birthday”列是日期型;“created_at”列是日期時間型,默認值為當前時間;“updated_at”列是日期時間型,更新時自動更新為當前時間。
通過合理的列定義,可以確保表的結構和數據存儲方式的合理性和保證數據完整性。