码迷,mamicode.com
首页 > 数据库 > 详细

SQL高级应用--约束(NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT)

时间:2015-05-04 17:30:31      阅读:401      评论:0      收藏:0      [点我收藏+]

标签:

一、SQL约束

  约束用于限制加入标的数据的类型

  可以在创建表的时候规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE语句)

  主要探讨以下的几种约束:

1) NOT NULL

2) UNIQUE

3) PRIMARY KEY

4) FOREIGN KEY

5) CHECK

6) DEFAULT

 

二、SQL NOT NULL 约束

  NOT NULL约束强制列不接受 NULL值

  NOT NULL约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或更新记录

  下面的SQL语句强制 Id_P和 LastName 列不接受 NULL 值

CREATE TABLE Persons
(
     Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City  varchar(255)
)

  

 

三、SQL UNIQUE 约束

  UNIQUE 约束唯一标识数据库表中的每条记录

  UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证

  PRIMARY KEY 拥有自动定义的 UNIQUE 约束

  请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束

下面的SQL 在“Persons” 表创建时在“Id_P”列创建 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)
)

  SQL Server / Oracle / MS Access

CREATE TABLE Persons
(
    Id_P int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
)

  如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE约束,请使用下面的 SQL语法

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)
)

 

当表已被创建,如需在 Id_P列创建 UNIQUE约束,请使用下列的SQL

  MySQL / SQL Server / Oracle / Ms Access

ALTER TABLE Persons
ADD UNIQUE(Id_P)

  如需命名 UNIQUE约束,并定义多个列的 UNIQUE约束,请使用下面的 SQL 语法

  MySQL / SQL Server / Oracle / MS Access

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE(Id_P, LastName)

 

撤销 UNIQUE约束

  如需撤销UNIQUE 约束,请使用下面的SQL:

  MySQL

ALTER TABLE Persons
DROP INDEX uc_PersonID

  SQL Server / Oracle / MS Access

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

 

 

SQL高级应用--约束(NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT)

标签:

原文地址:http://www.cnblogs.com/xumenger/p/4476508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!