SQL 约束(Constraints)

您所在的位置:网站首页 sql查询约束名 SQL 约束(Constraints)

SQL 约束(Constraints)

2024-04-23 03:59| 来源: 网络整理| 查看: 265

SQL 插入数据(INSERT INTO)SQL 创建表(CREATE TABLE) SQL 约束(Constraints)

在本教程中,您将学习如何使用SQL约束。

什么是约束?

约束只是对表的一个或多个列的限制,以限制可以存储在该列中的值的类型。约束提供了一种标准机制来维护数据库表内数据的准确性和完整性。

SQL中有几种不同类型的约束,包括:

NOT NULL

PRIMARY KEY

UNIQUE

DEFAULT

FOREIGN KEY

CHECK

现在,让我们详细讨论每个约束。

NOT NULL约束

该NOT NULL限制指定列不接受NULL值。

这意味着,如果NOT NULL对列施加约束,那么您必须在表中插入新行而不为该列添加非NULL值。

以下SQL语句创建一个名为person的表,该表有四列,其中三列id,name和phone不接受NULL值。

CREATE TABLE persons (     id INT NOT NULL,     name VARCHAR(30) NOT NULL,     birth_date DATE,     phone VARCHAR(15) NOT NULL );

注意:空值或NULL不同于零,空白或长度为零的字符串,例如''。NULL表示尚未输入。

主键约束(PRIMARY KEY)

PRIMARY KEY约束标识具有唯一标识表中的行值的列的列或集。表中的任何两行都不能具有相同的主键值。同样,您不能NULL在主键列中输入值。

以下SQL语句创建一个名为persons的表,并将id列指定为主键。这意味着该字段不允许NULL或重复值。

CREATE TABLE persons (     id INT NOT NULL PRIMARY KEY,     name VARCHAR(30) NOT NULL,     birth_date DATE,     phone VARCHAR(15) NOT NULL );

提示:主键通常由一个表中的一列组成,但是可以由多个列组成该主键,例如,员工的电子邮件地址或分配的标识号是员工表的逻辑主键。

唯一约束(UNIQUE)

UNIQUE约束限制一个或多个列在表中包含唯一值。

尽管UNIQUE约束和PRIMARY KEY约束都强制唯一性,UNIQUE但是PRIMARY KEY当您要强制列或列组合(而不是主键)的唯一性时,请使用约束而不是约束。

以下SQL语句创建一个名为persons的表,并将phone列指定为unique。这意味着该字段不允许重复值。

CREATE TABLE persons (     id INT NOT NULL PRIMARY KEY,     name VARCHAR(30) NOT NULL,     birth_date DATE,     phone VARCHAR(15) NOT NULL UNIQUE );

注意:可以在一个表上定义多个UNIQUE约束,而在一个表上只能定义一个PRIMARY KEY约束。而且,与PRIMARY KEY约束不同,UNIQUE约束允许NULL值。

默认约束(DEFAULT)

DEFAULT约束指定列的默认值。

列的默认值是当INSERT语句未显式分配特定值时,数据库引擎将在列中插入的某个值。

以下SQL语句为“ 国家/地区”列创建一个默认值。

CREATE TABLE persons (     id INT NOT NULL PRIMARY KEY,     name VARCHAR(30) NOT NULL,     birth_date DATE,     phone VARCHAR(15) NOT NULL UNIQUE,     country VARCHAR(30) NOT NULL DEFAULT 'Australia' );

注意:如果将表列定义为NOT NULL,但为该列分配一个默认值,则在INSERT语句中无需为该列显式分配一个值即可在表中插入新行。

外键约束(FOREIGN KEY)

外键(FK)是一列或列的组合,用于在两个表中的数据之间建立和加强关系。

这是显示雇员(employees)和部门(departments)表之间关系的示例图。如果仔细查看,您会注意到employees表的dept_id列与departments表的主键列匹配。因此,dept_id为的列名员工表的外键的部门表。

在MySQL中,您可以如下创建FOREIGN KEY表时通过定义约束来创建外键。以下语句在employees表的dept_id列上建立一个外键,该外键引用departments表的dept_id列。

CREATE TABLE employees (     emp_id INT NOT NULL PRIMARY KEY,     emp_name VARCHAR(55) NOT NULL,     hire_date DATE NOT NULL,     salary INT,     dept_id INT,     FOREIGN KEY (dept_id) REFERENCES departments(dept_id) );检查约束(CHECK)

CHECK约束用于限制可以放置在列中的值。

例如,可以通过创建一个CHECK约束来限制薪水列的值范围,该约束只允许值在3,000到10,000之间。这样可以防止输入超出正常工资范围的工资。这是一个实例:

CREATE TABLE employees (     emp_id INT NOT NULL PRIMARY KEY,     emp_name VARCHAR(55) NOT NULL,     hire_date DATE NOT NULL,     salary INT NOT NULL CHECK (salary >= 3000 AND salary 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3