MySQL的約束可以保護(hù)數(shù)據(jù)庫免受數(shù)據(jù)不一致和損壞。約束定義了對表中某些列所允許的值的規(guī)則。
下面是MySQL約束的基本語法結(jié)構(gòu):
CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, column3 datatype constraint, ... );
其中:
CREATE TABLE
用于創(chuàng)建表。table_name
是要創(chuàng)建的表的名稱。column1
、column2
、column3
等是表中的列的名稱。datatype
指定了列的數(shù)據(jù)類型。constraint
指定了列的約束條件,可以是以下之一:NOT NULL
:指定該列不允許為空。UNIQUE
:指定該列中的值必須唯一。PRIMARY KEY
:指定該列為主鍵。FOREIGN KEY
:指定該列為外鍵。CHECK
:指定該列的取值必須符合指定的條件。DEFAULT
:指定該列的默認(rèn)值。
例如,下面的SQL語句創(chuàng)建了一個名為students
的表,包含id
、name
、age
、gender
四個列:
CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT CHECK(age >= 0), gender ENUM('男', '女') DEFAULT '男' );
其中:
id
列指定為主鍵,且自動遞增。name
列指定為不允許為空。age
列指定為必須大于等于0。gender
列指定為默認(rèn)值為男
的枚舉類型。
通過添加約束,可以有效地保護(hù)數(shù)據(jù)庫的完整性和一致性。