ostgreSQL 使用 CREATE TABLE 语句来创建数据库表格。

语法

CREATE TABLE 语法格式如下:

  1. CREATE TABLE table_name(
  2. column1 datatype,
  3. column2 datatype,
  4. column3 datatype,
  5. .....
  6. columnN datatype,
  7. PRIMARY KEY( 一个或多个列 )
  8. );

CREATE TABLE 是一个关键词,用于告诉数据库系统将创建一个数据表。
表名字必需在同一模式中的其它表、 序列、索引、视图或外部表名字中唯一。
CREATE TABLE 在当前数据库创建一个新的空白表,该表将由发出此命令的用户所拥有。
表格中的每个字段都会定义数据类型,如下:

实例

以下创建了一个表,表名为 COMPANY 表格,主键为 IDNOT NULL 表示字段不允许包含 NULL 值:

  1. CREATE TABLE COMPANY(
  2. ID INT PRIMARY KEY NOT NULL,
  3. NAME TEXT NOT NULL,
  4. AGE INT NOT NULL,
  5. ADDRESS CHAR(50),
  6. SALARY REAL
  7. );

接下来我们再创建一个表格,在后面章节会用到:

  1. CREATE TABLE DEPARTMENT(
  2. ID INT PRIMARY KEY NOT NULL,
  3. DEPT CHAR(50) NOT NULL,
  4. EMP_ID INT NOT NULL
  5. );

我们可以使用 \d 命令来查看表格是否创建成功:

  1. runoobdb=# \d
  2. List of relations
  3. Schema | Name | Type | Owner
  4. --------+------------+-------+----------
  5. public | company | table | postgres
  6. public | department | table | postgres
  7. (2 rows)

\d tablename 查看表格信息:

  1. runoobdb=# \d company
  2. Table "public.company"
  3. Column | Type | Collation | Nullable | Default
  4. ---------+---------------+-----------+----------+---------
  5. id | integer | | not null |
  6. name | text | | not null |
  7. age | integer | | not null |
  8. address | character(50) | | |
  9. salary | real | | |
  10. Indexes:
  11. "company_pkey" PRIMARY KEY, btree (id)