SQL 约束用于规定表中的数据规则。
在 SQL 中,我们有如下约束:
NOT NULL - 指示某列不能存储 NULL 值。
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。
例如,以下表示 “name” 列不允许 NULL 值。
name varchar(100) NOT NULL
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
username (55)
AUTO INCREMENT 会在新记录插入表中时生成一个唯一的数字。
我们通常希望在每次插入新记录时,自动地创建主键字段的值。
我们可以在表中创建一个 AUTO INCREMENT 字段。
下面的 SQL 语句把 "UserID" 列定义为 auto-increment 主键字段:
UserID int NOT NULL AUTO_INCREMENT, PRIMARY KEY (UserID)
id int NOT NULL
下面的例子演示如何使用约束创建表。
CREATE TABLE users ( id int NOT NULL AUTO_INCREMENT, username varchar(40) NOT NULL, password varchar(10) NOT NULL, PRIMARY KEY(id) );
上面的 SQL 强制 “id”,“username” 和 “password” 列不接受NULL值,还将 “id” 列定义为 auto-increment 主键字段。
“users” 表如下所示:
CREATE users( id int NULL , name varchar(30) NOT NULL, (id) );