SQL – 约束

SQL 约束

约束是我们可以应用于表中数据类型的规则。也就是说,我们可以使用约束来指定存储在表中特定列中的数据类型的限制。

SQL中可用的约束有:

  • NOT NULL :这个约束告诉我们不能在列中存储空值。也就是说,如果一个列被指定为NOT NULL,那么我们将不能在这个特定的列中存储NULL。
  • UNIQUE :当在列中指定此约束时,表示列中的所有值必须是唯一的。也就是说,列的任何一行中的值都不能重复。
  • PRIMARY KEY :主键是一个字段,它可以唯一地标识表中的每一行。这个约束用于指定表中的一个字段为主键。
  • FOREIGN KEY :外键是一个字段,它可以唯一地标识另一个表中的每一行。此约束用于将字段指定为外键。
  • CHECK :该约束有助于验证列的值以满足特定条件。也就是说,它有助于确保存储在列中的值满足特定条件。
  • DEFAULT :当用户没有指定值时,该约束为该列指定一个默认值。

如何指定约束

我们可以使用CREATE表语句在创建表时指定约束。我们还可以在创建表后使用ALTER table语句指定约束。

语法 :

下面是在创建表时使用CREATE表语句创建约束的语法。

CREATE TABLE sample_table
(
column1 data_type(size) constraint_name,
column2 data_type(size) constraint_name,
column3 data_type(size) constraint_name,
....
);

sample_table : 要创建的表的名称.
data_type : 可以存储在字段中的数据类型.
constraint_name : 约束的名称。例如- NOT NULL, UNIQUE,主键等.

让我们详细地看看每个约束。

NOT NULL

如果我们指定表中的一个字段为NOT NULL。那么该字段将永远不会接受空值。也就是说,不允许您在没有向该字段指定任何值的情况下在表中插入新行。

例如,下面的查询创建了一个表Student,其字段ID和NAME为NOT NULL。也就是说,每次希望插入新行时,我们都必须为这两个字段指定值。

CREATE TABLE Student
(
ID int(6) NOT NULL,
NAME varchar(10) NOT NULL,
ADDRESS varchar(20)
);

UNIQUE

这个约束有助于惟一地标识表中的每一行。例如,对于一个特定的列,所有行的值应该是唯一的。在一个表中可以有多个UNIQUE列。

例如,下面的查询创建了一个表Student,其中字段ID被指定为UNIQUE。也就是说,两个学生不能有相同的ID。详细唯一约束。

CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE,
NAME varchar(10),
ADDRESS varchar(20)
);

PRIMARY KEY

主键是唯一标识表中每一行的字段。如果表中的一个字段作为主键,那么该字段将不能包含NULL值,并且该字段的所有行都应该有唯一的值。换句话说,我们可以说这是NOT NULL和UNIQUE约束的组合。
一个表只能有一个字段作为主键。下面的查询将创建一个名为Student的表,并指定字段ID作为主键。

CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE,
NAME varchar(10),
ADDRESS varchar(20),
PRIMARY KEY(ID)
);

FOREIGN KEY

外键是表中的一个字段,它唯一地标识另一个表的每一行。也就是说,该字段指向另一个表的主键。这通常会在表之间创建一种链接。

考虑如下两个表:

Orders

O_ID ORDER_NO C_ID
1 2253 3
2 3325 3
3 4521 2
4 8532 1

Customers

C_ID NAME ADDRESS
1 RAMESH DELHI
2 SURESH NOIDA
3 DHARMESH GURGAON

我们可以清楚地看到,Orders表中的C_ID字段是Customers表中的主键,也就是说,它唯一地标识了Customers表中的每一行。因此,它是Orders表中的外键。

语法:

CREATE TABLE Orders
(
O_ID int NOT NULL,
ORDER_NO int NOT NULL,
C_ID int,
PRIMARY KEY (O_ID),
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)

(i) CHECK –

使用CHECK约束,我们可以为字段指定一个条件,该条件应该在为该字段输入值时得到满足。
例如,下面的查询创建了一个表Student,并指定字段AGE的条件为(AGE >= 18)。也就是说,不允许用户在AGE < 18的表中输入任何记录。详细检查约束

CREATE TABLE Student
(
ID int(6) NOT NULL,
NAME varchar(10) NOT NULL,
AGE int NOT NULL CHECK (AGE >= 18)
);

(ii) DEFAULT –
此约束用于为字段提供默认值。也就是说,如果在表中输入新记录时,如果用户没有为这些字段指定任何值,那么将为它们分配默认值。

例如,下面的查询将创建一个名为Student的表,并将字段AGE的默认值指定为18。

CREATE TABLE Student
(
ID int(6) NOT NULL,
NAME varchar(10) NOT NULL,
AGE int DEFAULT 18
);

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程