在 PostgreSQL 中安装 Sakila 示例数据库

本文介绍如何在 PostgreSQL 中安装本系列教程中使用的 Sakila 示例数据库。

Sakila 示例数据库是使用最广泛的示例数据库之一,也是最好的示例数据库之一。Sakila 数据库为 DVD 租赁商店业务建模,其中包含影片、演员、影片与演员关系等内容,以及连接影片、商店和租赁业务的中央库存表。

Sakila 示例数据库最初来源于 MySQL,现在已经被移植到许多的数据库。

在这个 PostgreSQL 教程系列中,我们使用 Sakila 示例数据库作为演示数据库,以更快速有效的入门和使用 PostgreSQL。

在本教程中,我们将在 PostgreSQL 中安装 Sakila 示例数据库,以为后的学习建立基础。

前提条件

在继续本教程之前,您需要:

这两个文件下载完成后,您要做的就是把这两个文件导入到数据库中。您可以使用以下两种工具中的任意一个将 sql 文件导入到数据库:

  • psql 工具
  • pgAdmin 工具

使用 psql 工具导入 Sakila 数据库

如果您已经安装好 PostgreSQL,psql 工具也会随之安装。请按照如下步骤将 Sakila 数据库文件导入。

  1. 启动 PowerShell 或命令提示符。

  2. 导航到 PostgreSQL 安装目录的 bin 目录下:

    cd D:\PostgreSQL\14\bin
    

    注意,您的安装目录可能于此处不同。

  3. 启动 psql 工具并连接 PostgreSQL 服务器:

    .\psql.exe -U postgres
    

    根据提示输入 postgres 用户的密码,然后按下回车键。

  4. 创建 sakila 数据库

    CREATE DATABASE sakila;
    
  5. 选择 sakila 数据库

    \c sakila;
    
  6. 分别指定以下两个语句以导入刚刚下载的两个文件 postgres-sakila-schema.sqlpostgres-sakila-insert-data.sql

    \i C:/Users/Adam/Downloads/postgres-sakila-schema.sql
    \i C:/Users/Adam/Downloads/postgres-sakila-insert-data.sql
    

    请注意,请使用 / 替换文件路径中的 \

  7. 使用 \dt 展示 sakila 数据库中的表以验证是否导入成功

    \dt
    
                List of relations
    Schema |       Name       |  Type |  Owner
    ----------+----------------+-------+----------
    public | actor            | table | postgres
    public | address          | table | postgres
    public | category         | table | postgres
    public | city             | table | postgres
    public | country          | table | postgres
    public | customer         | table | postgres
    public | film             | table | postgres
    public | film_actor       | table | postgres
    public | film_category    | table | postgres
    public | inventory        | table | postgres
    public | language         | table | postgres
    public | payment          | table | postgres
    public | payment_p2007_01 | table | postgres
    public | payment_p2007_02 | table | postgres
    public | payment_p2007_03 | table | postgres
    public | payment_p2007_04 | table | postgres
    public | payment_p2007_05 | table | postgres
    public | payment_p2007_06 | table | postgres
    public | rental           | table | postgres
    public | staff            | table | postgres
    public | store            | table | postgres
    (21 rows)

至此, PostgreSQL 数据库服务器已经成功加载 sakila 数据库。

使用 pgAdmin 工具

使用 pgAdmin 4 工具加载 SQL 文件到 数据库中是一件更加容易的事情。请跟随以下步骤:

  1. 启动 pgAdmin 4 并连接 PostgreSQL 服务器。

  2. 创建 sakila 数据库:

    1. 右键左侧导航中的 Databases
    2. 选择 Create > Database...
    3. 在弹出的对话框中输入 Database 栏目中输入 sakila
    4. 单击 Save
  3. 在新建的 sakila 数据上点击右键,并点击弹出菜单中的 Query Tool

  4. 点击 Query Tool 窗口中的右上角的 Open File 按钮并选择 postgres-sakila-schema.sql 文件,然后点击 Excute 按钮。 这个过程可能会持续数秒钟。

  5. 点击 Query Tool 窗口中的右上角的 Open File 按钮并选择 postgres-sakila-insert-data.sql 文件,然后点击 Excute 按钮。 这个过程可能会持续数秒钟。

  6. 依次点击左侧导航的 sakila, Schemas, public, Tables 以查看是否加载成功。

Sakila 示例数据库架构

Sakila 数据库包括了 16 个表,7 个视图,3 个存储过程,3 个存储函数,6 个触发器。

Sakila 示例数据库架构图
Sakila 示例数据库架构图

Sakila 数据库中的表:

  • 演员表 actor: 演员的信息
  • 地址表 address: 包含客户、员工和商店的地址信息
  • 类别表 category: 影片的类别
  • 城市表 city: 城市列表
  • 国家表 country: 国家/地区列表
  • 客户表 customer: 客户信息
  • 影片演员关系表 film_actor: 影片和演员的多对多对应关系
  • 影片类别关系表 film_category: 影片和类别的多对多对应关系
  • 影片描述表 film_text: 影片的标题、描述信息
  • 影片表 film: 所有影片
  • 库存表 inventory: 影片拷贝的库存信息
  • 语言表 language: 影片的语言信息
  • 支付表 payment: 记录了客户的每笔付款
  • 租赁表 rental: 包含每个库存物品的每次租赁明细
  • 员工表 staff: 列出了所有员工的信息
  • 商店表 store: 列出了系统中的所有商店

结论

在本文中,我们分别通过 psql 工具和 pgAdmin 4 工具将 sakila 示例数据库加载到了 PostgreSQL 服务器中。