SQL约束
用于限制加入表的数据的类型
可以在创建表时规定约束(通过CREATE TABLE语句),或者在表创建之后(通过ALTER TABLE语句)
1、SQL NOT NULL约束
NOT NULL约束强制列不接受NULL值
CREATE TABLE Persons
(
Id_P int **NOT NULL**,
LastName varchar(255) **NOT NULL**,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
```2、SQL UNIQUE约束
UNIQUE约束唯一标识数据库表中的每条记录
MySQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)
CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
ALTER TABLE table_name
ADD UNION (column_name)
ALTER TABLE table_name
DROP INDEX
SQL PRIMARY KEY 约束
PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。
MySQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)
CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)