SQL 如何添加外键

SQL 如何添加外键

在本文中,我们将学习如何将外键添加到我们的SQL数据库表的列中。

SQL中的 FOREIGN KEY 用于在数据库中连接两个表的记录。在一个表中被定义为FOREIGN KEY的列必须是同一个数据库中另一个表中的PRIMARY KEY。

我们可以通过以下两种方式轻松向列添加外键:

  1. 使用Create table语句添加外键
  2. 使用Alter Table语句添加外键

如果您想将FOREIGN KEY添加到SQL表中的列中,请按照给定顺序执行以下步骤:

  1. 在系统中创建数据库。
  2. 在同一数据库中创建两个表。
  3. 在添加外键之前查看表结构。
  4. 向表中添加外键。
  5. 查看表结构。

现在,我们将通过示例解释上述步骤:

步骤1:创建数据库

在结构化查询语言中,创建数据库是在数据库中存储结构化表的第一步。

使用以下SQL语法创建数据库:

CREATE DATABASE Database_Name;

假设你想创建 Vehicles 数据库。为此,您需要在结构化查询语言中键入以下命令:

CREATE DATABASE Vehicles;

步骤2:在数据库中创建两个表

现在,您需要使用以下SQL语法在数据库中创建表:

CREATE TABLE table_name  
(
column_Name_1 data type (size of the column_1),  
column_Name_2 data type (size of the column_2),  
column_Name_3 data type (size of the column_3),  
...  
column_Name_N data type (size of the column_1)
);  

以下SQL查询在 Vehicles 数据库中创建 Cars_Details 表。

CREATE TABLE Cars_Details 
(
Car_Number INT AUTO_INCREMENT PRIMARY KEY,
Model INT,  
Cars_Name VARCHAR (20),    
Colour VARCHAR (20),  
);

下面的查询在 Vehicles 数据库中创建了 Cars_Price_Details 表:

CREATE TABLE Cars_Price_Details 
(
Model INT NOT NULL PRIMARY KEY,  
Cars_Price INT NOT NULL
);

步骤3:在添加外键之前查看表结构

在创建表和插入数据后,您可以通过在SQL应用程序中键入以下查询来查看两个表的结构:

DESC Cars 
or
DESCRIBE Cars ;
Field Type NULL Key Default Extra
Car_Number INT NO PRI NULL auto_increment
Model INT Yes - NULL -
Car_Name Varchar(20) Yes - NULL
Color Varchar(20) Yes - NULL -
DESC Cars_Price_Details;
Field Type NULL Key Default Extra
Car_Model INT No PRI NULL -
Car_Price INT No - NULL

步骤4:在表中的列上添加外键

如果您想在表创建时添加外键,那么您必须使用以下SQL中的CREATE TABLE语法:

CREATE TABLE table_name1
(
Column_Name_1 data type (size of the column_1), 
Column_Name_2 data type (size of the column_2), 
......,
Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name)
) ;

示例

下面的查询在Cars_Details表的’Model’列上添加了外键:

CREATE TABLE Cars_Details 
(
Car_Number INT AUTO_INCREMENT,
Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model),  
Cars_Name VARCHAR (20),    
Color VARCHAR (20) UNIQUE,  
Price INT NOT NULL
) ;

这个SQL查询使用外键将 Cars_Details 表与 Cars_Price_Details 表连接起来。

步骤5:在添加外键后查看表结构

要检查在第4步执行的查询的结果, 你需要在SQL中键入以下DESC命令:

DESC Cars_Details; 
字段 类型 允许为空 默认值 额外信息
Car_Number INT 主键 NULL 自增
Model INT 外键 NULL -
Car_Name Varchar(20) - NULL -
Color Varchar(20) - NULL -
Price INT - NULL -
Average INT - 0 -

如上输出所示,Model列被创建为外键。

向现有表添加外键

如果你想向现有表添加外键,你需要在SQL中使用以下ALTER语法:

ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name);

以下查询在数据库系统中已有Cars_Details表时,在Model列上添加了一个FOREIGN KEY:

ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model);

这个SQL查询使用外键将 Cars_Details 表与 Cars_Price_Details 表连接起来。

从表中删除外键

如果你想从表的列中删除外键,你需要在SQL中使用以下 ALTER 语法:

ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name;

以下查询从Cars_Details表的Model列中删除了创建的FOREIGN KEY:

ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程