PostgreSQL教程

PostgreSQL 主键

在本节中,我们将了解 PostgreSQL主键的工作方式,示例 > PostgreSQL主键,以及如何通过SQL命令管理PostgreSQL主键约束。
此外,还要了解如何添加自动递增(SERIAL)主键到当前表并放置主键。

什么是PostgreSQL的主键?

它是表中的一个字段,用于分别标识数据库表中的每一行或记录,并且包含唯一值。
主键不包含任何空值。为此,我们也可以说主键正在收集表的唯一和非空约束。如果列具有主键约束,则它不能为 null或为空。
它用于区别数据库表中的每个记录。我们可以包含其他唯一列,但是数据库表中只有一个主键,包括单个或多个字段。
这是创建数据库表时最关键的键,它可以是唯一的ID。可以表示为一列或一组列。
主键的工作类似于唯一约束。尽管如此,主键和唯一性约束之间的重大区别在于,一个表只能有一个主键;但是,表可以具有一个或多个 unique 和 non-null 约束。
当我们在表中插入新行时,主表键列还可以使用 SERIAL(自动递增)功能自动为特定行创建下一个数字。
换句话说,我们可以说 PostgreSQL主键仅是字段或字段分组,它们唯一地指定数据。而且,作为主键一部分的字段都不能具有NULL值。
每当将主键添加到表中时,PostgreSQL都会在组上创建唯一的 B树索引。
主键规则
如果我们正在研究 PostgreSQL主键,我们应遵循以下规则:
主键列不能包含null或空值。 主键列的值必须唯一。 每个表只能有一个主键。 如果使用主键,则应使用建议的 INT或BIGINT 数据类型。

如何在PostgreSQL中创建主键

在 PostgreSQL ,我们可以借助以下命令来创建主键:
CREATE TABLE命令 ALTER TABLE命令
注意: 在PostgreSQL中,ALTER TABLE命令用于添加或删除主键。
现在,我们将详细讨论这两个命令。

使用CREATE TABLE命令创建主键

我们可以在CREATE TABLE命令的帮助下在PostgreSQL中生成主键。
当我们使用创建表命令。
使用创建表语句创建主键的语法
下面的插图用于显示如何使用CREATE TABLE命令创建主键:
第一种语法用于仅创建一个主键列进入表格:
CREATE TABLE table_name
(
  column1 datatype CONSTRAint constraint_name PRIMARY KEY,
  column2 datatype [ null | NOT null ],
  ...
);
OR
我们可以使用第二个插图在表中创建多个主键列:
CREATE TABLE table_name
(
  column1 datatype [ null | NOT null ],
  column2 datatype [ null | NOT null ],
  ...
  CONSTRAint constraint_name
   PRIMARY KEY (column_name(s))
);  
在以上语法中,我们使用了下表中讨论的以下参数:
参数说明
参数名称 说明
table_name 这是我们要创建的表的名称。
column1,column2 这些是我们在表中创建的列。
constraint_name constraint_name用于指定主键的名称。
column_name 这些是将成为主键的列。

使用创建命令的PostgreSQL主键示例

要了解 PostgreSQL主键的工作原理,,我们将看到以下示例,该示例描述了如何在PostgreSQL中使用主键。
在以下示例中,我们创建了一个名为 Applicant 的新表,其中包含四列,例如 applicant_Id,applicant_username,applicant_password和applicant_email 。
而 applicant_id 是主键,它在申请人表。
CREATE TABLE Applicant (  
applicant_Id int SERIAL PRIMARY KEY,  
applicant_username VARCHAR(50),   
applicant_password VARCHAR(30),  
applicant_email VARCHAR(55));  
输出
执行上述命令后,我们将获得以下消息窗口,其中显示 申请人 表已成功创建到 Organization 数据库中。
PostgreSQL主键
成功创建新表为申请人后,我们将在 INSERT 命令的帮助下向其中输入一些值。
INSERT INTO Applicant(applicant_id, applicant_username, applicant_password, applicant_email)   
VALUES (101,'Mike Ross', 'Mikeross@', 'rossmike@lidihuo.com'),   
(102, 'John Smith', 'Smith#john', 'Johnsmith11@lidihuo.com');  
输出
执行上述命令后,我们将获得以下消息窗口,该窗口显示两个值已成功插入进入 申请人 表。
PostgreSQL主键
如我们在上面的屏幕截图中所见,第一个插入命令将被执行,因为我们已经使用了主键列的唯一值。
但是,如果我们想使用与101相同的 applicant_id 值向 申请人 表中再插入一个值,则PostgreSQL将发出错误。
INSERT INTO Applicant(applicant_id, applicant_username,
applicant_password, applicant_email)   
VALUES (101,'Ava jane', '1234@56', 'Ava@lidihuo.com');
输出
执行上述插入命令后,我们将收到以下错误: Duplicate键值违反了唯一约束" applicant_pkey "因为 applicant_id = 101值已经存在。
PostgreSQL主键 在多列上定义主键
让我们看一个示例示例,以了解 PostgreSQL主键在多列上的工作。
假设我们要在多列上指定主键;在这种情况下,我们可以看到下面的 Create命令示例,其中我们生成一个新表作为 Trainee ,其主键是的组合trainee_ID和trainee_roll_no。
CREATE TABLE Trainee (  
trainee_ID int,   
trainee_roll_No int,  
trainee_name varchar(45) NOT null,   
trainee_Age int,   
trainee_location varchar(25),  
Primary Key(trainee_ID, trainee_roll_No)  
 );
输出
执行上述命令后,我们将获得以下消息窗口,其中显示 实习生 表已成功创建到 Organization 数据库中。
PostgreSQL主键
注意: 默认情况下,PostgreSQL使用table-name_pkey作为主键约束的默认名称。
在上面的示例中,PostgreSQL为创建了主键约束作为 trainee_pkey 实习生 表。
我们可以使用 CONSTRAINT子句 ,如果我们想定义主键约束的名称,如以下命令所示:
CONSTRAint constraint_name PRIMARY KEY(column_1, column_2,...);

使用ALTER TABLE命令创建主键

我们可以在 ALTER TABLE 命令的帮助下在PostgreSQL中生成主键。
由于很少为现有表指定主键,因此要添加主键约束,我们可以使用ALTER TABLE命令。
创建主键的语法使用alter table语句的密钥
以下插图用于使用 PostgreSQL中的ALTER TABLE命令:
ALTER TABLE table_name 
ADD PRIMARY KEY(column_list);
OR
ALTER TABLE table_name
ADD CONSTRAint [ constraint_name ]
PRIMARY KEY (index_col1, index_col2, ... index_col_n)
在上面的语法中,我们使用了以下参数,这些参数在下表中进行了讨论:
参数名称 说明
table_name 这是我们要修改的表的名称。
Column_list 这些是我们在表中创建的列。
constraint_name 它用于定义主键的名称。
index_col1,index_col2,... index_col_n 这些是用于构成主键的列。

使用ALTER TABLE命令的PostgreSQL主键示例

要了解 PostgreSQL主键与ALTER TABLE命令一起使用,下面的示例。
在下面的示例中,我们创建一个名为 Customers 的新表,该表不包含主键列中的表说明中。
CREATE TABLE Customers (  
Customer_ID int NOT null,   
Customer_Name varchar(45),   
Customer_Age int,   
Customer_Address varchar(25)  
 );  
输出
执行上述命令后,我们将获得以下消息窗口,其中显示 Customers表已成功创建到 Organization 表中。
PostgreSQL主键
如果要向Customers 表添加主键约束,可以使用以下ALTER TABLE命令:
ALTER TABLE Customers
ADD PRIMARY KEY (Customer_ID);
输出
执行上述命令后,我们将获得以下消息窗口,显示 Customers 表已成功更改为相似的数据库。
PostgreSQL主键
了解 PostgreSQL主键的工作方式后使用CREATE TABLE和ALTER TABLE命令,我们将尝试在当前表中添加自动递增主键。

如何添加自动递增主键到当前表

让我们看一个向当前表添加自动递增主键的示例示例。
假设我们已经创建了一个表作为 <在create table命令的帮助下,strong> Seller ,并且该特定表不包含任何主键。
CREATE TABLE Seller(
Name VARCHAR(255));
输出
执行上述命令后,我们将检索一个消息窗口,其中显示 卖方 表已成功创建到 Organization 数据库中。
PostgreSQL主键
成功创建 卖方 表后,我们将在 INSERT 命令的帮助下向其中输入一些值。
INSERT INTO Seller (NAME)
VALUES
  ('Apple iPhone'),
  ('Google),
  ('Samsung');
输出
执行上述命令后,我们将获得以下消息窗口,该窗口显示三个值已成功插入进入 卖方 表。
PostgreSQL主键
创建并插入 Seller 表的值后,我们将使用 SELECT 命令从 卖方 表中检索数据:
SELECT *FROM Seller;
输出
成功执行以上命令后,我们将得到以下结果: PostgreSQL返回 卖方中存在的数据 表:
PostgreSQL主键
如果要添加一个新列作为 Seller_id 到 Seller 表中,该表也是主键列。
然后我们使用以下命令,其中 Seller_id 列会自动递增1,如以下示例所示:
ALTER TABLE Seller
ADD COLUMN Seller_id SERIAL PRIMARY KEY;
输出
执行上述命令后,我们将获得以下消息窗口,其中显示 卖方 表已成功更改。
PostgreSQL主键
更改后 Seller 表,我们将再次使用select命令来验证特定表的修改。
SELECT Seller_id, Name
FROM Seller;
输出
在执行上述命令时,我们将获得以下输出,它显示 卖方中发生的修改表成功。
PostgreSQL主键

如何删除PostgreSQL主键

在PostgreSQL中,我们可以借助 ALTER TABLE 命令删除主键。
删除主键的语法使用alter table命令输入键
以下插图用于在PostgreSQL中通过ALTER TABLE命令删除主键:
ALTER TABLE table_name  
DROP PRIMARY KEY;  
ALTER TABLE table_name 
DROP CONSTRAint primary_key_constraint;
在上面的语法中,我们使用了以下表中讨论的以下参数:
参数 说明
table_name 表名参数用于指定需要修改的表名。
constraint_name 约束名称参数用于定义要删除的主键名称。

使用ALTER TABLE命令删除PostgreSQL主键的示例

让我们看一个从已定义的表中删除主键的示例示例。
为此,我们使用 申请人 表在 ALTER TABLE 命令的帮助下删除主键,如下面的语句:
ALTER TABLE Applicant
DROP CONSTRAint Applicant_pkey;
输出
成功执行以上命令后,我们将获得以下消息窗口,显示主键已从服务器中移除。 申请人 表。
PostgreSQL主键

概述

在 PostgreSQL主键部分中,我们学习了以下主题:
我们已经使用 CREATE TABLE (创建表)命令为特定表创建了主键。 我们已经了解了使用 CREATE TABLE 更改PostgreSQL主键的概念 我们在现有表中添加了一个自动递增的主键。 我们已使用 ALTER TABLE 命令从特定表中删除主键。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4