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

一、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

 

时间: 2024-10-31 18:51:07

SQL高级应用--约束(NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT)的相关文章

oracle约束总结(not null/unique/primary key/foreign key/check)

约束(constraint):对创建的表的列属性.字段进行的限制.诸如:not null/unique/primary key/foreign key/check 作用范围: ①列级约束只能作用在一个列上 ②表级约束可以作用在多个列上(当然表级约束也可以作用在一个列上) 定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义. - -NOT NULL:不为空约束,只能定义在列级 CREATE TABLE employees( employee_id NUMBER(6), --<sp

SQL高级应用--约束二--(PRIMARY KEY、FOREIGN KEY)

四.SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录 主键必须包含唯一的值 主键列不能包含 NULL 值 每个表都应该有一个主键,并且每个表只能有一个主键 下面的SQL 在 Persons 表创建时在 Id_P列创建PRIMARY KEY 约束 MySQL CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255),

SQL高级应用--约束三--(CHECK、DEFAULT)

SQL CHECK 约束 CHECK 约束用于限制列中的值的范围 如果对单个列定义 CHECK 约束,那么该列只允许特定的值 如果对一个表定义 CHECK 约束,那么次约束会在特定的列中对值进行限制 下面的SQL在表创建时为列 创建CHECK约束 下面的SQL 在“Persons”表创建时为“Id_P”列创建 CHECK 约束.CHECK 约束规定“Id_P”列必须只包含大于0的整数 MySQL CREATE TABLE Persons ( Id_P int NOT NULL, LastName

sql 高级 (四)(SQL 约束 (Constraints))

SQL 约束 NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证. 区别:每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束. unique  sql  ?unique ?  Constraint   on   create   table(表未被创建) MySql   CREATE TABLE Persons ( Id_P

SQL 高级教程之约束

SQL 高级教程之约束 2015/5/8/星期五 9:21:40 我们将主要探讨以下几种约束: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT 补充知识: 使用MySQL数据库desc 表名时,我们看到Key那一栏,可能会有4种值,即 ' ','PRI','UNI','MUL'. 如果Key是空的,那么该列值的可以重复,表示该列没有索引,或者是一个非唯一的复合索引的非前导列: 如果Key是PRI,那么该列是主键的组成部分: 如果Key是

SQL PRIMARY KEY 约束\SQL FOREIGN KEY 约束\SQL CHECK 约束

SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主键. SQL PRIMARY KEY Constraint on CREATE TABLE 下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束: MySQL: CREATE TABLE Persons ( Id_P i

SQL 高级(3)

SQL 高级(3) SQL SELECT INTO 语句 SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档. SQL SELECT INTO 语法 您可以把所有的列插入新表: SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablen

SQL基础--&amp;gt; 约束(CONSTRAINT)

--============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完整性 实体完整性:表中记录不反复(不论什么两条记录不全等)而且每条记录都有一个非空主键 域完整性:表中字段值必须与字段数据类型.格式.有效范围相吻合 參照完整性:不能引用不存在的值 自己定义完整性:依据特定业务领域定义的需求完整性 保证数据完整性的几种经常用法 约束(最经常使用) 过程 函数 触发器 实体

SQL高级教程2

SQL SELECT INTO 语句: SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档. SQL SELECT INTO 语法 您可以把所有的列插入新表: SELECT *INTO new_table_name [IN externaldatabase] FROM old_tablename 或者只把希望