PostgreSQL - 创建表

  • 简述

    PostgreSQL CREATE TABLE 语句用于在任何给定数据库中创建新表。
  • 句法

    CREATE TABLE 语句的基本语法如下 -
    
    CREATE TABLE table_name(
       column1 datatype,
       column2 datatype,
       column3 datatype,
       .....
       columnN datatype,
       PRIMARY KEY( one or more columns )
    );
    
    CREATE TABLE 是一个关键字,告诉数据库系统创建一个新表。表的唯一名称或标识符遵循 CREATE TABLE 语句。最初,当前数据库中的空表归发出命令的用户所有。
    然后,在括号中是列表,定义表中的每一列以及它是哪种数据类型。通过下面给出的示例,语法将变得清晰。
  • 例子

    以下是一个示例,它创建了一个以 ID 作为主键的 COMPANY 表,并且 NOT NULL 是显示在此表中创建记录时这些字段不能为 NULL 的约束 -
    
    CREATE TABLE COMPANY(
       ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL
    );
    
    让我们再创建一个表,我们将在后续章节的练习中使用它 -
    
    CREATE TABLE DEPARTMENT(
       ID INT PRIMARY KEY      NOT NULL,
       DEPT           CHAR(50) NOT NULL,
       EMP_ID         INT      NOT NULL
    );
    
    您可以使用以下方法验证您的表是否已成功创建\d命令,该命令将用于列出附加数据库中的所有表。
    
    testdb-# \d
    
    上面给出的 PostgreSQL 语句将产生以下结果 -
    
               List of relations
     Schema |    Name    | Type  |  Owner
    --------+------------+-------+----------
     public | company    | table | postgres
     public | department | table | postgres
    (2 rows)
    
    利用\d tablename描述每个表格,如下所示 -
    
    testdb-# \d company
    
    上面给出的 PostgreSQL 语句将产生以下结果 -
    
            Table "public.company"
      Column   |     Type      | Modifiers
    -----------+---------------+-----------
     id        | integer       | not null
     name      | text          | not null
     age       | integer       | not null
     address   | character(50) |
     salary    | real          |
     join_date | date          |
    Indexes:
        "company_pkey" PRIMARY KEY, btree (id)