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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: SQL数据库开发

ALTER TABLE 时的 UNIQUE 约束

当表已被创建时,如需在 "订单ID" 列创建 UNIQUE 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD UNIQUE (订单ID)

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

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Customers
ADD CONSTRAINT uc_CustomerID UNIQUE (客户ID,姓名)



删除UNIQUE 约束

如需删除UNIQUE 约束,请使用下面的 SQL:

MySQL:

ALTER TABLE Orders
DROP INDEX uc_OrderID

SQL Server / Oracle / MS Access:

ALTER TABLE Customers
DROP CONSTRAINT uc_CustomerID


PRIMARY KEY约束

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

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

CREATE TABLE 时的 PRIMARY KEY 约束

下面的 SQL 在 "Customers" 表创建时在 "客户ID" 列上创建 PRIMARY KEY 约束:

MySQL:

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


SQL Server / Oracle / MS Access:

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

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

MySQL / SQL Server / Oracle / MS Access:

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

注释:在上面的实例中,只有一个主键 PRIMARY KEY(pk_CustomerID)。然而,pk_CustomerID 的值是由两个列(客户ID和姓名)组成的。


ALTER TABLE 时的 PRIMARY KEY 约束

当表已被创建时,如需在 "客户ID" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Customers
ADD PRIMARY KEY (客户ID)

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

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Customers
ADD CONSTRAINT pk_CustomerID PRIMARY KEY (客户ID,姓名)

注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。


删除 PRIMARY KEY 约束

如需删除 PRIMARY KEY 约束,请使用下面的 SQL:

MySQL:

ALTER TABLE Customers
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Customers
DROP CONSTRAINT pk_CustomerID



FOREIGN KEY约束

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

让我们通过一个实例来解释外键。请看下面两个表:

"Customers" 表:

32.jpg

"Orders" 表:

33.jpg

请注意,"Orders" 表中的 "客户ID" 列指向 "Customers" 表中的 "客户ID" 列。

"Customers" 表中的 "客户ID" 列是 "Customers" 表中的 PRIMARY KEY。

"Orders" 表中的 "客户ID" 列是 "Orders" 表中的 FOREIGN KEY。


FOREIGN KEY 约束用于预防破坏表之间连接的行为。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
25天前
|
SQL 数据库
如何应用SQL约束条件?
【10月更文挑战第28天】如何应用SQL约束条件?
41 11
|
25天前
|
SQL 存储 Oracle
sql约束条件
【10月更文挑战第28天】sql约束条件
37 8
|
2月前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
2月前
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
36 1
|
2月前
|
数据库
SQL_语句常见的操作创建,使用,删除表和表级约束
SQL_语句常见的操作创建,使用,删除表和表级约束
33 0
|
5月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL FOREIGN KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL FOREIGN KEY 约束。
56 5
|
4月前
|
SQL 数据采集 关系型数据库
7、SQL约束
7、SQL约束
50 0
|
5月前
|
SQL Oracle 关系型数据库
ALTER TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】ALTER TABLE 时的 SQL PRIMARY KEY 约束。
44 3
|
5月前
|
SQL Oracle 关系型数据库
CREATE TABLE 时的 SQL PRIMARY KEY 约束
【7月更文挑战第24天】CREATE TABLE 时的 SQL PRIMARY KEY 约束。
43 2
|
5月前
|
SQL 关系型数据库 MySQL
ALTER TABLE 时的 SQL DEFAULT 约束
【7月更文挑战第20天】ALTER TABLE 时的 SQL DEFAULT 约束。
44 1