SQL基础知识V2——约束(实例)上

简介: SQL数据库开发

NOT NULL约束

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

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

下面的 SQL 强制表"Customers" 的"客户ID" 列和 "姓名" 列不接受 NULL 值:

CREATE TABLE Customers(
 客户ID INT NOT NULL,
 姓名 VARCHAR(10) NOT NULL,
 地址 VARCHAR(50) NULL,
 城市 VARCHAR(20) NULL,
 邮编 CHAR(6) NULL,
 省份 VARCHAR(20) NULL
) ;

一旦这两列有空值NULL被插入,系统就会报错提示,例如我们插入如下信息:

INSERT INTO dbo.Customers  ( 姓名, 地址, 城市, 邮编, 省份 )
VALUES  (NULL,'花城大道1号','广州市','51000',NULL)


结果:

30.jpg

UNIQUE约束

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

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

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

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


CREATE TABLE 时的 SQL UNIQUE 约束

下面的 SQL 在 "Orders" 表创建时在 "订单ID" 列上创建 UNIQUE 约束:

MySQL:

CREATE TABLE dbo.Orders(
 订单ID INT  NOT NULL,
 客户ID INT NULL,
 员工ID INT NULL,
 订单日期 DATETIME NULL,
 发货ID INT NULL,
 UNIQUE (订单ID)
) ;

SQL Server / Oracle / MS Access:

CREATE TABLE dbo.Orders(
 订单ID INT NOT NULL UNIQUE,
 客户ID INT NULL,
 员工ID INT NULL,
 订单日期 DATETIME NULL,
 发货ID INT NULL
) ;

唯一约束是被约束的列在插入新数据时,如果和已经存在的列有相同的值,则会报错。

INSERT INTO dbo.Orders
       ( 订单ID, 客户ID, 员工ID, 订单日期, 发货ID )
VALUES  
       ( 1001,1,2,'2018-11-21 19:21:32',1),
       ( 1001,2,3,'2018-11-22 11:22:32',5)

结果

31.jpg


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

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE dbo.Orders(
 订单ID INT NOT NULL ,
 客户ID INT NULL,
 员工ID INT NULL,
 订单日期 DATETIME NULL,
 发货ID INT NULL,
 CONSTRAINT uc_OrderID UNIQUE (订单ID,发货ID)
) ;
相关文章
|
2月前
|
SQL 数据库
如何应用SQL约束条件?
【10月更文挑战第28天】如何应用SQL约束条件?
90 11
|
2月前
|
SQL 存储 Oracle
sql约束条件
【10月更文挑战第28天】sql约束条件
51 8
|
3月前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
3月前
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
69 1
|
3月前
|
数据库
SQL_语句常见的操作创建,使用,删除表和表级约束
SQL_语句常见的操作创建,使用,删除表和表级约束
39 0
|
6月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL FOREIGN KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL FOREIGN KEY 约束。
60 5
|
6月前
|
SQL Oracle 关系型数据库
ALTER TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】ALTER TABLE 时的 SQL PRIMARY KEY 约束。
55 3
|
5月前
|
SQL 数据采集 关系型数据库
7、SQL约束
7、SQL约束
59 0
|
6月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL PRIMARY KEY 约束。
50 2
|
6月前
|
SQL 关系型数据库 MySQL
ALTER TABLE 时的 SQL DEFAULT 约束
【7月更文挑战第20天】ALTER TABLE 时的 SQL DEFAULT 约束。
49 1