Sakila 示例数据库可从 https://dev.mysqlserver.cn/doc/index-other.html 获取。可下载的压缩文件以压缩的 tar 文件或 Zip 格式提供。该压缩文件包含三个文件:sakila-schema.sql
、sakila-data.sql
和 sakila.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 示例数据库,请按照以下步骤操作
将安装压缩文件解压缩到一个临时位置,例如
C:\temp\
或/tmp/
。解压缩压缩文件时,它将创建一个名为sakila-db
的目录,该目录包含sakila-schema.sql
和sakila-data.sql
文件。-
使用以下命令,使用 mysql 命令行客户端连接到 MySQL 服务器
$> mysql -u root -p
出现提示时输入您的密码。可以使用非
root
帐户,前提是该帐户具有创建新数据库的权限。 -
使用以下命令执行
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.sql
和sakila-data.sql
文件的路径替换为系统上的实际路径。注意在 Windows 上,执行
SOURCE
命令时使用斜杠而不是反斜杠。 -
确认示例数据库是否已正确安装。执行以下语句。您应该看到类似于此处显示的输出。
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)