MogDB 使用样本数据集 Mogila

MogDB 提供了一个样本数据集 Mogila,本数据集借鉴了适用于 MySQL 的Sakila 示例数据库。Sakila最初由 MySQL AB 文档团队的 Mike Hillyer 开发,其目的是提供一个可用于书籍、教程、文章、样本等示例的标准 schema。

Mogila 数据集是一个关于 DVD 出租店信息的数据库,包含有关电影(如标题、类别、女演员)、出租店(如地址、工作人员、客户)和出租的信息。您可以使用 Mogila 数据库进行各种功能测试。

Mogila 适用于 MogDB 2.1 及更高版本。

实体-关系模型图

下图展示了 Mogila 数据库表和视图的概览。您可以查看不同表之间如何通过各个字段相互关联。例如,film表具有title和description列。它还通过列language_id和original_language_id与language表相关联。因此您可以联结这两个表来获取每部电影的语言,或者列出特定语言的所有电影。

在 MogDB 容器版中使用 Mogila

MogDB 容器版本已经内置了 Mogila 样本数据库,无需额外安装。

安装 MogDB 容器版。

使用样本数据库 Mogila:

docker exec -it mogdb bash

omm@eb7aef3f860f:~$ gsql -d mogila -p5432

gsql ((MogDB x.x.x build 56189e20) compiled at 2022-01-07 18:47:53 commit 0 last mr )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type "help" for help.

mogila=# \dt

List of relations

Schema | Name | Type | Owner | Storage

--------+---------------+-------+-------+----------------------------------

public | actor | table | mogdb | {orientation=row,compression=no}

public | address | table | mogdb | {orientation=row,compression=no}

public | category | table | mogdb | {orientation=row,compression=no}

public | city | table | mogdb | {orientation=row,compression=no}

public | country | table | mogdb | {orientation=row,compression=no}

public | customer | table | mogdb | {orientation=row,compression=no}

public | film | table | mogdb | {orientation=row,compression=no}

public | film_actor | table | mogdb | {orientation=row,compression=no}

public | film_category | table | mogdb | {orientation=row,compression=no}

public | inventory | table | mogdb | {orientation=row,compression=no}

public | language | table | mogdb | {orientation=row,compression=no}

public | payment | table | mogdb | {orientation=row,compression=no}

public | rental | table | mogdb | {orientation=row,compression=no}

public | staff | table | mogdb | {orientation=row,compression=no}

public | store | table | mogdb | {orientation=row,compression=no}

(15 rows)

mogila=#

在 MogDB 企业版中使用 Mogila

安装 MogDB 企业版。

创建样本数据库 mogila 及 mogdb 用户,然后登出:

切换到omm用户

[root@test ~]# su - omm

登录postgres数据库,根据实际情况填写端口号

[omm@test ~]$ gsql -d postgres -p5432 -r

gsql ((MogDB x.x.x build 56189e20) compiled at 2022-01-07 18:47:53 commit 0 last mr )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type "help" for help.

MogDB=#create database mogila DBCOMPATIBILITY='PG';

CREATE DATABASE

MogDB=#create user mogdb password '*@';

CREATE ROLE

MogDB=#\q

[omm@test ~]$

下载 mogila,并上传至服务器中,进入 mogila 所在目录。

创建模式对象,然后手动插入数据:

4.1 创建所有模式对象(表等):

gsql -d mogila -p5432 -f mogila-schema.sql

4.2 插入所有数据:

gsql -d mogila -p5432 -f mogila-data.sql

复制

或者通过 1 个脚本创建模式对象并插入数据,如果您已经完成步骤 4.1 和 4.2,则无需执行步骤 5。

创建所有模式对象(表等)并插入所有数据:

gsql -d mogila -p5432 -f mogila-insert-data.sql

使用样本数据库 Mogila:

[omm@test ~]$ gsql -d mogila -p5432 -r

gsql ((MogDB x.x.x build 56189e20) compiled at 2022-01-07 18:47:53 commit 0 last mr )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type "help" for help.

mogila=# \dt

List of relations

Schema | Name | Type | Owner | Storage

--------+---------------+-------+-------+----------------------------------

public | actor | table | mogdb | {orientation=row,compression=no}

public | address | table | mogdb | {orientation=row,compression=no}

public | category | table | mogdb | {orientation=row,compression=no}

public | city | table | mogdb | {orientation=row,compression=no}

public | country | table | mogdb | {orientation=row,compression=no}

public | customer | table | mogdb | {orientation=row,compression=no}

public | film | table | mogdb | {orientation=row,compression=no}

public | film_actor | table | mogdb | {orientation=row,compression=no}

public | film_category | table | mogdb | {orientation=row,compression=no}

public | inventory | table | mogdb | {orientation=row,compression=no}

public | language | table | mogdb | {orientation=row,compression=no}

public | payment | table | mogdb | {orientation=row,compression=no}

public | rental | table | mogdb | {orientation=row,compression=no}

public | staff | table | mogdb | {orientation=row,compression=no}

public | store | table | mogdb | {orientation=row,compression=no}

(15 rows)

mogila=#

示例查询

本节通过一些查询来展示如何使用样本数据库 Mogila。所有查询结果仅展示前 10 项。

按长度排序列出所有电影

select film_id, title, length from film order by length desc;

film_id title length
426 HOME PITY 185
690 POND SEATTLE 185
609 MUSCLE BRIGHT 185
991 WORST BANGER 185
182 CONTROL ANTHEM 185
141 CHICAGO NORTH 185
349 GANGS PRIDE 185
212 DARN FORRESTER 185
817 SOLDIERS EVOLUTION 185
872 SWEET BROTHERHOOD 185
列出每个电影类别中有多少部电影

select category.name, count(category.name) category_count from category left join film_category on category.category_id = film_category.category_id left join film on film_category.film_id = film.film_id group by category.name order by category_count desc;

name category_count
Sports 74
Foreign 73
Family 69
Documentary 68
Animation 66
Action 64
New 63
Drama 62
Sci-Fi 61
Games 61
显示按出演电影的数量排序的演员

select actor.first_name, actor.last_name, count(actor.first_name) featured_count from actor left join film_actor on actor.actor_id = film_actor.actor_id group by actor.first_name, actor.last_name order by featured_count desc;

first_name last_name featured_count
SUSAN DAVIS 54
GINA DEGENERES 42
WALTER TORN 41
MARY KEITEL 40
MATTHEW CARREY 39
SANDRA KILMER 37
SCARLETT DAMON 36
VIVIEN BASINGER 35
VAL BOLGER 35
GROUCHO DUNST 35
获取所有活跃客户的列表,按其姓名排序

select first_name, last_name from customer where active = 1 order by first_name asc;

first_name last_name
MARY SMITH
PATRICIA JOHNSON
LINDA WILLIAMS
BARBARA JONES
ELIZABETH BROWN
JENNIFER DAVIS
MARIA MILLER
SUSAN WILSON
MARGARET MOORE
DOROTHY TAYLOR
查看租 DVD 数量最多的客户,以及租借次数

select customer.first_name, customer.last_name, count(customer.first_name) rentals_count from customer left join rental on customer.customer_id = rental.customer_id group by customer.first_name, customer.last_name order by rentals_count desc;

first_name last_name rentals_count
ELEANOR HUNT 46
KARL SEAL 45
CLARA SHAW 42
MARCIA DEAN 42
TAMMY SANDERS 41
WESLEY BULL 40
SUE PETERS 40
MARION SNYDER 39
RHONDA KENNEDY 39
TIM CARY 39
查看每个出租店的总收入

select store.store_id, sum(payment.amount) as "total revenue" from store left join inventory on inventory.store_id = store.store_id left join rental on rental.inventory_id = inventory.inventory_id left join payment on payment.rental_id = rental.rental_id where payment.amount is not null group by store.store_id order by sum(payment.amount) desc;

store_id total revenue
2 33726.77
1 33689.74
按总收入列出前 5 个电影类型

select category.name, film.title, sum(payment.amount) as "gross revenue" from film left join film_category on film_category.film_id = film.film_id left join category on film_category.category_id = category.category_id left join inventory on inventory.film_id = film.film_id left join rental on rental.inventory_id = inventory.inventory_id left join payment on payment.rental_id = rental.rental_id where payment.amount is not null group by category.name, film.title order by sum(payment.amount) desc limit 5;

name title gross revenue
Music TELEGRAPH VOYAGE 231.73
Documentary WIFE TURN 223.69
Comedy ZORRO ARK 214.69
Sci-Fi GOODFELLAS SALUTE 209.69
Sports SATURDAY LAMBS 204.72
film.description 的数据类型为 text ,支持全文搜索查询,搜索所有包含documentary和robot的描述

select film.title, film.description from film where to_tsvector(film.description) @@ to_tsquery('documentary & robot');

title description
CASPER DRAGONFLY A Intrepid Documentary of a Boat And a Crocodile who must Chase a Robot in The Sahara Desert
CHAINSAW UPTOWN A Beautiful Documentary of a Boy And a Robot who must Discover a Squirrel in Australia
CONTROL ANTHEM A Fateful Documentary of a Robot And a Student who must Battle a Cat in A Monastery
CROSSING DIVORCE A Beautiful Documentary of a Dog And a Robot who must Redeem a Womanizer in Berlin
KANE EXORCIST A Epic Documentary of a Composer And a Robot who must Overcome a Car in Berlin
RUNNER MADIGAN A Thoughtful Documentary of a Crocodile And a Robot who must Outrace a Womanizer in The Outback
SOUTH WAIT A Amazing Documentary of a Car And a Robot who must Escape a Lumberjack in An Abandoned Amusement Park
SWEDEN SHINING A Taut Documentary of a Car And a Robot who must Conquer a Boy in The Canadian Rockies
VIRGIN DAISY A Awe-Inspiring Documentary of a Robot And a Mad Scientist who must Reach a Database Administrator in A Shark Tank

复制

清理

如需清理环境并删除样本数据库,请运行以下命令:

\c postgres;

DROP DATABASE mogila;

MogDB 使用样本数据集Mogila的更多相关文章

  1. Android恶意样本数据集汇总

    硕士论文的研究方向为Android恶意应用分类,因此花了一点时间去搜集Android恶意样本.其中一部分来自过去论文的公开数据集,一部分来自社区或平台的样本.现做一个汇总,标明了样本或数据集的采集时间 ...

  2. 使用CIFAR-10样本数据集测试卷积神经网络(ConvolutionalNeuralNetwork,CNN)

    第一次将例程跑起来了,有些兴趣. 参考的是如下URL: http://www.yidianzixun.com/article/0KNz7OX1 本来是比较Keras和Tensorflow的,我现在的水 ...

  3. 机器学习数据集,主数据集不能通过,人脸数据集介绍,从r包中获取数据集,中国河流数据集

    机器学习数据集,主数据集不能通过,人脸数据集介绍,从r包中获取数据集,中国河流数据集   选自Microsoft www.tz365.Cn 作者:Lee Scott 机器之心编译 参与:李亚洲.吴攀. ...

  4. Recorder︱深度学习小数据集表现、优化(Active Learning)、标注集网络获取

    一.深度学习在小数据集的表现 深度学习在小数据集情况下获得好效果,可以从两个角度去解决: 1.降低偏差,图像平移等操作 2.降低方差,dropout.随机梯度下降 先来看看深度学习在小数据集上表现的具 ...

  5. 怎么用Q-Q图验证数据集的分布

    样本数据集在构建机器学习模型的过程中具有重要的作用,样本数据集包括训练集.验证集.测试集,其中训练集和验证集的作用是对学习模型进行参数择优,测试集是测试该模型的泛化能力. 正负样本数据集符合独立同分布 ...

  6. 机器学习经典分类算法 —— k-近邻算法(附python实现代码及数据集)

    目录 工作原理 python实现 算法实战 约会对象好感度预测 故事背景 准备数据:从文本文件中解析数据 分析数据:使用Matplotlib创建散点图 准备数据:归一化数值 测试算法:作为完整程序验证 ...

  7. Python数模笔记-Sklearn(2)样本聚类分析

    1.分类的分类 分类的分类?没错,分类也有不同的种类,而且在数学建模.机器学习领域常常被混淆. 首先我们谈谈有监督学习(Supervised learning)和无监督学习(Unsupervised ...

  8. [Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集

    <Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...

  9. 机器学习——k-近邻算法

    k-近邻算法(kNN)采用测量不同特征值之间的距离方法进行分类. 优点:精度高.对异常值不敏感.无数据输入假定 缺点:计算复杂度高.空间复杂度高 使用数据范围:数值型和标称型 工作原理:存在一个样本数 ...

  10. 机器学习实战笔记(Python实现)-01-K近邻算法(KNN)

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

随机推荐

  1. Fasfdfs搭建

    目录 介绍 参考 tracker-server: storage-server: group: meta data: 部署 FastDfs服务架构图 本地部署服务 安装 libfastcommon 和 ...

  2. 从实测出发,掌握 NebulaGraph Exchange 性能最大化的秘密

    自从开发完 NebulaGraph Exchange,混迹在各个 NebulaGraph 微信群的我经常会看到一类提问是:NebulaGraph Exchange 的性能如何?哪些参数调整下可以有更好 ...

  3. 基于 Nebula Graph 构建图学习能力

    本文首发于 Nebula Graph Community 公众号 经常看技术文章的小伙伴可能会留意到除了正在阅读的那篇文章,在文章页面的正文下方或者右侧区域会有若干同主题.同作者的文章等你阅读:经常逛 ...

  4. flutter3-winchat桌面端聊天实例|Flutter3+Dart3+Getx仿微信Exe程序

    首发原创flutter3+bitsdojo_window+getx客户端仿微信exe聊天Flutter-WinChat. flutter3-dart3-winchat 基于flutter3+dart3 ...

  5. C++的智能指针

    #pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问题 ,指针指针需要的是浅拷贝,并且需要处理资源释放问题 ...

  6. 【简历模板】极简Markdown程序员简历模板

    前言 最近在找工作,一份好的简历是敲门砖,所以跟大家分享下简洁明了大方MarkDown的简历模板和在线编辑工具 在线工具 冷熊 Java工程师简历模板 下载 点击下载 预览 个人信息 xxx/男/19 ...

  7. nowrap - table td 列 宽度 不被挤 - 大表格制作

    nowrap - table td 列 宽度 不被挤 - 大表格制作 表格前几列 设置完宽度,会被右侧动态数据挤没有宽度,加上nowrap,就保证宽度了

  8. C#条码识别的解决方案(ZBar)

    简介 主流的识别库主要有ZXing.NET和ZBar,OpenCV 4.0后加入了QR码检测和解码功能.本文使用的是ZBar,同等条件下ZBar识别率更高,图片和部分代码参考在C#中使用ZBar识别条 ...

  9. linux程序运行结果在打印到屏幕的同时写入文件

    1.使用script工具 script工具是一个非常使用的工具,可以把输出到终端的信息记录下来.使用方法如: (1)输入 script log.txt命令开始保存终端输出的信息 ,其中log.txt为 ...

  10. 可穿戴智能手环解决方案之BLE的ADV广播协议解读

    一 概念 直接上英文原文,怕自己的翻译误导大家. When a BLE device is advertising, it periodically transmits packets, which ...