MySQL是一個開源的關系型數據庫管理系統,廣泛應用在各個領域中。
在MySQL中,約束是一種限制數據表中數據的規則,它可以確保數據的完整性和一致性。
MySQL約束包括:
1. 主鍵約束(PRIMARY KEY) 2. 外鍵約束(FOREIGN KEY) 3. 唯一約束(UNIQUE) 4. 檢查約束(CHECK) 5. 非空約束(NOT NULL)
下面我們來詳細了解一下這五種約束。
1. 主鍵約束(PRIMARY KEY)
主鍵約束用于唯一標識數據表中的每一行數據。一個數據表只能有一個主鍵,主鍵不能包含NULL值。
CREATE TABLE students ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT );
2. 外鍵約束(FOREIGN KEY)
外鍵約束用于限制數據表之間的關系。它確保子表的數據與主表中的數據一致。
CREATE TABLE students ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, department_id INT, FOREIGN KEY (department_id) REFERENCES departments(id) ); CREATE TABLE departments ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL );
3. 唯一約束(UNIQUE)
唯一約束用于確保數據表中某一列的值唯一。一個數據表可以有多個唯一約束。
CREATE TABLE students ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, student_id VARCHAR(20) UNIQUE, age INT );
4. 檢查約束(CHECK)
檢查約束用于限制數據表中某一列的值必須滿足特定的條件。
CREATE TABLE students ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT CHECK(age >0), gender VARCHAR(10) CHECK(gender IN ('男', '女')) );
5. 非空約束(NOT NULL)
非空約束用于確保數據表中某一列的值不為空。
CREATE TABLE students ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT NOT NULL, gender VARCHAR(10) NOT NULL );
以上就是MySQL中的五種約束,它們有助于確保數據的完整性和一致性,提高數據庫的安全性和穩定性。