4 安装

Sakila 示例数据库可从 https://dev.mysqlserver.cn/doc/index-other.html 获取。可下载的压缩文件以压缩的 tar 文件或 Zip 格式提供。该压缩文件包含三个文件:sakila-schema.sqlsakila-data.sqlsakila.mwb

注意

Sakila 包含特定于 MySQL 版本的注释,因为 sakila 架构和数据取决于您的 MySQL 服务器版本。例如,MySQL 服务器 5.7.5 添加了对 InnoDB 中空间数据索引的支持,因此 address 表将为 MySQL 5.7.5 及更高版本包含一个空间感知的 location 列。

sakila-schema.sql 文件包含创建 Sakila 数据库结构所需的所有 CREATE 语句,包括表、视图、存储过程和触发器。

sakila-data.sql 文件包含用于填充 sakila-schema.sql 文件创建的结构所需的 INSERT 语句,以及在初始数据加载后必须创建的触发器的定义。

sakila.mwb 文件是一个 MySQL Workbench 数据模型,您可以在 MySQL Workbench 中打开它以检查数据库结构。有关更多信息,请参见 MySQL Workbench

要安装 Sakila 示例数据库,请按照以下步骤操作

  1. 将安装压缩文件解压缩到一个临时位置,例如 C:\temp\/tmp/。解压缩压缩文件时,它将创建一个名为 sakila-db 的目录,该目录包含 sakila-schema.sqlsakila-data.sql 文件。

  2. 使用以下命令,使用 mysql 命令行客户端连接到 MySQL 服务器

    $> mysql -u root -p

    出现提示时输入您的密码。可以使用非 root 帐户,前提是该帐户具有创建新数据库的权限。

  3. 使用以下命令执行 sakila-schema.sql 脚本以创建数据库结构,并执行 sakila-data.sql 脚本以填充数据库结构

    mysql> SOURCE C:/temp/sakila-db/sakila-schema.sql;
    mysql> SOURCE C:/temp/sakila-db/sakila-data.sql;

    sakila-schema.sqlsakila-data.sql 文件的路径替换为系统上的实际路径。

    注意

    在 Windows 上,执行 SOURCE 命令时使用斜杠而不是反斜杠。

  4. 确认示例数据库是否已正确安装。执行以下语句。您应该看到类似于此处显示的输出。

    mysql> USE sakila;
    Database changed
    
    mysql> SHOW FULL TABLES;
    +----------------------------+------------+
    | Tables_in_sakila           | Table_type |
    +----------------------------+------------+
    | actor                      | BASE TABLE |
    | actor_info                 | VIEW       |
    | address                    | BASE TABLE |
    | category                   | BASE TABLE |
    | city                       | BASE TABLE |
    | country                    | BASE TABLE |
    | customer                   | BASE TABLE |
    | customer_list              | VIEW       |
    | film                       | BASE TABLE |
    | film_actor                 | BASE TABLE |
    | film_category              | BASE TABLE |
    | film_list                  | VIEW       |
    | film_text                  | BASE TABLE |
    | inventory                  | BASE TABLE |
    | language                   | BASE TABLE |
    | nicer_but_slower_film_list | VIEW       |
    | payment                    | BASE TABLE |
    | rental                     | BASE TABLE |
    | sales_by_film_category     | VIEW       |
    | sales_by_store             | VIEW       |
    | staff                      | BASE TABLE |
    | staff_list                 | VIEW       |
    | store                      | BASE TABLE |
    +----------------------------+------------+
    23 rows in set (0.01 sec)
    
    mysql> SELECT COUNT(*) FROM film;
    +----------+
    | COUNT(*) |
    +----------+
    |     1000 |
    +----------+
    1 row in set (0.00 sec)
    
    mysql> SELECT COUNT(*) FROM film_text;
    +----------+
    | COUNT(*) |
    +----------+
    |     1000 |
    +----------+
    1 row in set (0.00 sec)