MySQL基础(三)

本章是整理知识内容,为强化知识长期更新。

0x01 准备样本数据库

  • Sakila样本数据库介绍

    Sakila样本数据库是MySQL官方提供的一个模拟DVD租赁信息管理的数据库,提供了一个标准模式,可作为书中例子,教程、文章、样品,等等,对学习测试来说是个不错的选择。Sakila样本数据库官方文档介绍

  • 下载数据文件

  • 解压后得到3个文件:

    • sakila.mwb workbench数据模型
    • sakila-data.sql 表记录信息

    • sakila-schema.sql 表结构信息

  • 先倒入表结构在倒入数据。

0x02 sakila样例数据库DVD租赁业务流程解读

  • 每个商店维护自己的租赁影片清单,当客户取走或归还DVD光盘时会有一个专门的店员对这个清单进行维护;
  • 影片描写的内容同样在维护信息范围之列,如分类(动作、冒险、喜剧等)、演员、等级、特殊分类(如被删除的情节和预告片)。这些信息可能被打印在DVD包装的标签上;
  • 必须在商店注册成为会员才可以租赁光盘;
  • 客户可以在任何一家商店租赁一张或多张光盘,同时商店希望在每张光盘对应的租赁期内规划之前租赁的光盘;
  • 顾客可以在任意时间对任何租赁的光盘付费;

0x03 表、视图、存储过程、函数介绍

  • 表&视图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
+----------------------------+
| Tables_in_sakila |
+----------------------------+
| actor | # table 演员表
| actor_info | # view 演员信息
| address | # table 地址表
| category | # table 类别表
| city | # table 城市表
| country | # table 国家表
| customer | # table 客户表
| customer_list | # view 客户列表
| film | # table 电影
| film_actor | # table 电影演员
| film_category | # table 电影类别
| film_list | # view 电影列表
| film_text | # table 电影内容介绍
| inventory | # table 库存表
| language | # table 语言表
| nicer_but_slower_film_list | # view 电影大小
| payment | # table 付款表
| rental | # table 租赁表
| sales_by_film_category | # view 电影类型销售情况
| sales_by_store | # view 商店销售金额情况
| staff | # table 工作人员表
| staff_list | # view 工作人员列表
| store | # table 商店表
+----------------------------+
  • 存储过程&函数
1
2
3
4
5
6
7
8
9
10
+----------------------------+
| f(x)_in_sakila |
+----------------------------+
| film_in_stock | # 存储
| film_not_in_stock | # 存储
| get_customer_balance | # 函数 客户未结余额
| inventory_held_by_customer | # 函数 检查库存租赁出去的客户
| inventory_in_stock | # 函数 检查该库存是否存在
| rewards_report | # 存储 奖励报告
+----------------------------+

0x04 根据sakila.mwb 显示数据结构