PostgreSQL 创建表


PostgreSQL 创建表

在 PostgreSQL 中,创建表命令用于在任何给定的数据库中创建新表。

在本节中,我们将学习如何在 PostgreSQL 中创建表。

在 PostgreSQL 中创建表的语法

CREATE TABLE table_name(    
   column1 datatype,    
   column2 datatype,    
   column3 datatype,    
   .....    
   columnN datatype,    
   PRIMARY KEY(one or more columns )    
);

这里,

在上面的语法中,CREATE TABLE是一个关键字,它使用数据库系统来创建一个新表。

table_name:用于定义表的名称。

Column1, Column2.... Column N:这些用于定义列的名称。

data_tye:用于定义列的数据类型(整数、文本、字符、实数等)。

注意:表不能与同一架构中的任何现有表具有相似的名称。

在 PostgreSQL 中创建表

在PostgreSQL 中,我们可以通过两种方式创建表:

  • PostgreSQL 使用 pgAdmin 创建表
  • PostgreSQL 使用 SQL Shell 创建表

PostgreSQL 使用 pgAdmin 创建表

我们将按照以下过程在pgAdmin 中创建一个表

步骤1

  • 首先,我们将在本地系统中打开最新版本的pgAdmin,然后我们将转到对象树并选择要在其中创建表的数据库。

第2步

  • 之后,左键单击选定的数据库(javatpoint),然后我们可以看到Catalogs 和 Schemas

PostgreSQL 创建表

Step3

  • 然后我们将右键单击“架构下的公共”部分,从给定的下拉列表中选择“创建”选项,然后从给定的列表中单击“”。

PostgreSQL 创建表

第四步

  • 单击表格后,屏幕上将出现创建表格窗口,我们将在其中输入所有必要的详细信息,例如表格名称。在我们的例子中,我们将创建一个名为Employee的表。

PostgreSQL 创建表

第五步

  • 之后,我们将移至同一窗口中的“列”选项卡,然后单击 + 号以在特定表中添加列。
  • 我们可以从给定的下拉列表中选择数据类型,也可以更改列Not-null首选项并设置Primary key
  • 然后单击“保存”以完成创建表的过程,如下面的屏幕截图所示:

PostgreSQL 创建表

  • 我们可以看到Employee表是在Table部分下创建的。

PostgreSQL 创建表

PostgreSQL 使用 psql 创建表:

我们将按照以下过程在psql 中创建一个表

步骤1

  • 首先,我们将在我们的本地系统中打开psql,我们将连接到我们要创建表的数据库。
  • 我们将在javatpoint数据库中创建一个表,我们之前在 PostgreSQL 教程中创建了该表。

第2步

  • 为了连接数据库,我们将输入以下命令:
\c javatpoint

PostgreSQL 创建表

Step3

  • 现在,我们将输入以下命令在javatpoint数据库中创建一个表。
create table Student(Stu_id int, Stu_Name text, Stu_Age int, Stu_address char(30));
  • 正如我们在下面的屏幕截图中看到的,该表是在 javatpoint 数据库中创建的:

PostgreSQL 创建表

第四步

  • 我们可以使用以下命令来检查特定数据库中的表(关系)

PostgreSQL 创建表

第五步

  • 如果我们再次尝试创建同一个表,我们将收到以下错误:

PostgreSQL 创建表

第六步

  • 我们可以使用参数IF NOT EXISTS,我们将得到一个通知而不是错误:

PostgreSQL 创建表

在下表中,我们可以定义一些在创建表格时使用的基本参数列表。

范围 描述
If not exists 如果已出现具有相似名称的表,则会显示警告而不是错误。
Unlogged 该参数不会将数据输入到预写日志(WAL)中,因为删除了这个进一步的 IO 操作,提高了写入性能。
Of_type_name 在此参数中,表可以具有来自定义的复合类型的结构。
Temporary or Temp 用于生成临时表,在现有操作后或会话结束时删除。

下面的例子展示了我们如何在表中添加约束

Create table department  
( dept_no int constraint dept_details_pk primary key   
  dept_name text NOT NULL,  
Location varchar(15),  
);

正如我们在下面的屏幕截图中看到的:

PostgreSQL 创建表