1、Mysql简介
MySQL 是一个开放源代码的、免费的关系型数据库管理系统。在 Web 开发领域,MySQL 是最流行、使用最广泛的关系数据库。MySql 分为社区版和商业版,社区版完全免费,并且几乎能满足全部的使用场景。由于 MySQL 是开源的,我们还可以根据自己的需求,定制开发自己的特定版本。
本教程致力于让您轻松、快速、有趣的学习 MySQL。其中每个章节都结合丰富的实例来阐述,这包括可用的 SQL 脚本和实际的屏幕截图。
本教程包括了 MySQL 入门、SQL 语句、MySQL 数据管理和维护、MySQL 数据库管理、性能提升等方面,是一个完整的 MySQL 教程。
2、准备Mysql示例数据库Sakila
2.1 下载 Sakila 数据库
您可以从 这里 下载 Sakila 示例数据库。
点击下载链接,将会下载一个 Zip 格式的压缩文件。压缩文件中包含三个文件: sakila-schema.sql
,sakila-data.sql
,和 sakila.mwb
。
- sakila-schema.sql 文件包含创建 Sakila 数据库结构所需的所有 CREATE 语句,包括表、视图、存储过程和触发器。
- sakila-data.sql 文件包含插入所有数据的 INSERT 语句,这些语句一定要在 sakila-schema.sql 中的语句执行完后再运行。
- sakila.mwb 文件是一个 MySQL Workbench 数据模型,您可以在 MySQL Workbench 中打开它以检查数据库结构。
Sakila 包含 MySQL 版本特定的注释,因为 sakila 模式和数据取决于您的 MySQL 服务器的版本。例如,MySQL 服务器 5.7.5 添加了对空间数据索引的支持 InnoDB,因此 地址表将包含 MySQL 5.7.5 及更高版本的空间感知位置列。
2.2 安装 Sakila 数据库
请按照以下步骤安装 Sakila 示例数据库:
- 将下载的 zip 文件解压缩到一个临时位置,例如 C:\temp\ 或 /tmp/。当您解压缩存档时,它会创建一个名为 sakila-db 的目录,其中包含 sakila-schema.sql 和 sakila-data.sql 文件。
- 使用 mysql 命令行客户端和以下命令连接到 MySQL 服务器,出现提示时输入您的密码。可以使用非 root 帐户,前提是该帐户具有创建新数据库的权限。:
mysql -u root -p
- 执行 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.40 sec)
2.3 Sakila 示例数据库架构
Sakila 数据库包括了 16 个表,7 个视图,3 个存储过程,3 个存储函数,6 个触发器。
Sakila 数据库中的表:
- 演员表 actor: 演员的信息
- 地址表 address: 包含客户、员工和商店的地址信息
- 类别表 category: 影片的类别
- 城市表 city: 城市列表
- 国家表 country: 国家/地区列表
- 客户表 customer: 客户信息
- 影片演员关系表 film_actor: 影片和演员的多对多对应关系
- 影片类别关系表 film_category: 影片和类别的多对多对应关系
- 影片描述表 film_text: 影片的标题、描述信息
- 影片表 film: 所有影片
- 库存表 inventory: 影片拷贝的库存信息
- 语言表 language: 影片的语言信息
- 支付表 payment: 记录了客户的每笔付款
- 租赁表 rental: 包含每个库存物品的每次租赁明细
- 员工表 staff: 列出了所有员工的信息
- 商店表 store: 列出了系统中的所有商店
本教程中使用 Sakila 示例数据库作为演示数据库,现在 Sakila 示例数据库已经就绪,请开始后面的课程吧。
Mysql基础教程(一):Selct