MySQL是一個常用的關系型數據庫管理系統,其值域是指允許插入到一個列中的值的范圍。值域是由數據類型和列級約束(如NOT NULL、UNIQUE、DEFAULT)來定義的。
MySQL支持許多數據類型,包括整數類型、浮點型、日期/時間類型、字符串類型等。下面是一些常見的數據類型:
INT – 整數類型,范圍為 -2147483648 到 2147483647 BIGINT – 大整數類型,范圍為 -9223372036854775808 到 9223372036854775807 FLOAT – 單精度浮點數 DOUBLE – 雙精度浮點數 DATE – 日期類型(YYYY-MM-DD) TIME – 時間類型(HH:MM:SS) DATETIME – 日期和時間類型(YYYY-MM-DD HH:MM:SS) VARCHAR – 可變長度字符串,最大長度為 65535
除了數據類型外,MySQL還允許在列級別上設置約束。這些約束可以確保列中的數據符合預期的范圍和格式。以下是一些常見的列級別約束:
NOT NULL – 禁止列為空 UNIQUE – 禁止列中有重復值 DEFAULT – 指定列的默認值 CHECK – 確保列中的值滿足特定條件 PRIMARY KEY – 將列作為主鍵,確保列中的值唯一 FOREIGN KEY – 將列作為外鍵,以確保使用關聯表的數據完整性
在MySQL中定義完整的列,需要指定數據類型和約束。下面是一個示例:
CREATE TABLE 表名 ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(45) NOT NULL, password VARCHAR(45) NOT NULL, email VARCHAR(45) NOT NULL, PRIMARY KEY (id), UNIQUE KEY username_UNIQUE (username) );
在此示例中,定義了一個名為“表名”的表,該表有一個整數類型的主鍵“id”和三個字符串類型的列“username”、“password”和“email”。其中,“id”列使用了AUTO_INCREMENT約束,在插入數據時會自動分配一個唯一ID。同時,“username”列設置了UNIQUE約束,確保用戶名不能重復。