SQL 如何添加主键
在本文中,我们将学习如何向我们的SQL数据库表中的列添加主键。
主键 用于检索SQL表中的每条记录。定义为主键的字段必须包含不同且非空的值。您可以通过以下两种方法轻松地向列中添加主键:
- 使用创建表语句添加主键
- 使用修改表语句添加主键
如果您想要向表中的列添加主键,必须按照以下步骤按给定的顺序进行操作:
- 在系统中创建一个数据库。
- 在SQL数据库中创建表。
- 查看表结构。
- 在表中的列上添加主键。
- 查看表结构。
现在,我们将用一个示例来解释上述步骤。
步骤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)
);
假设您想在 Vehicles 数据库中创建 Cars 表。为此,您需要在SQL应用程序中键入以下查询语句:
CREATE TABLE Cars
(
Car_Number INT AUTO_INCREMENT,
Model INT,
Cars_Name VARCHAR (20),
Colour VARCHAR (20),
Price INT NOT NULL,
) ;
步骤3:在主键添加之前查看表结构
创建表和插入数据后,您可以通过在SQL应用程序中键入以下查询来查看Cars表的结构:
DESC Cars
or
DESCRIBE Cars ;
Field | Type | NULL | Key | Default | Extra |
---|---|---|---|---|---|
Car_Number | INT | NO | - | NULL | auto_increment |
Model | INT | Yes | - | NULL | - |
Car_Name | Varchar(20) | Yes | - | NULL | |
Color | Varchar(20) | Yes | - | NULL | - |
Price | INT | NO | - | NULL | - |
步骤4:在表中的列上添加主键
如果你想在表创建的同时添加主键,那么你需要使用以下SQL的CREATE TABLE语法:
CREATE TABLE table_name
(
Column_Name_1 data type (size of the column_1) NOT NULL PRIMARY KEY,
Column_Name_2 data type (size of the column_2),
.......,
Column_Name_N data type (size of the column_N),
) ;
示例
以下查询将创建’Cars’表,并在’Model’列上添加PRIMARY KEY约束:
CREATE TABLE Cars
(
Car_Number INT AUTO_INCREMENT,
Model INT NOT NULL PRIMARY KEY,
Cars_Name VARCHAR (20),
Color VARCHAR (20) UNIQUE,
Price INT NOT NULL
) ;
这个SQL查询不允许数据库用户在Cars表中插入相同型号的汽车。
步骤5:在主键添加后查看表结构
要检查在第4步执行的查询的结果, 你需要在SQL中输入以下DESC命令:
DESC Cars;
Field | Type | NULL | Key | Default | Extra |
---|---|---|---|---|---|
Car_Number | INT | Yes | - | NULL | auto_increment |
Model | INT | No | PRI | NULL | - |
Car_Name | Varchar(20) | Yes | - | NULL | - |
Color | Varchar(20) | Yes | - | NULL | - |
Price | INT | NO | - | NULL | - |
Average | INT | NO | - | 0 | - |
你可以在上面的SQL输出中看到Model列被创建为主键。现在,Model列必须包含唯一且非空的值。如果在这列中输入相同的和NULL值,SQL系统将显示错误。
从表中删除主键
如果你想要从表的列中删除主键,则必须在SQL中使用以下 ALTER 语法:
ALTER TABLE Table_Name DROP PRIMARY KEY;
以下查询从 Cars 表的 Model 列中删除了 PRIMARY KEY:
ALTER TABLE Cars DROP PRIMARY KEY;
向现有表添加主键
如果您想在现有表中添加主键,您必须使用以下SQL中的ALTER语法:
ALTER TABLE Table_Name ADD CONSTRAINT Constraint_Name PRIMARY KEY (Column_Name);
以下查询在数据库系统中,当Cars表已存在时,会在Color列上添加一个PRIMARY KEY约束:
ALTER TABLE Cars ADD CONSTRAINT clr_prmrykey PRIMARY KEY ( Color);
这个 SQL 中的 ALTER 查询不会允许你在 Cars 表中插入相同颜色的汽车。