MySQL 示例数据库大全

102 篇文章 2 订阅

前言:

我们练习 SQL 时,总会自己创造一些测试数据或者网上找些案例来学习,其实 MySQL 官方提供了好几个示例数据库,在 MySQL 的学习、开发和实践中具有非常重要的作用,能够帮助初学者更好地理解和应用 MySQL 的各种功能和特性,特别是练习 SQL 的好帮手。

官方示例数据库介绍

示例数据库可以用于学习和测试 MySQL 的各种功能,包括但不限于 SQL 查询、存储过程、触发器、视图等。以下是一些官方提供的示例数据库以及它们的简要介绍:

  1. sakila: 这是一个模拟的在线 DVD 租赁业务的数据库。它提供了一个标准数据库模式,用于演示 MySQL 的各种功能特性,如视图、存储过程和触发器。sakila 数据库相对复杂和完整,适合用于测试和学习。
  2. employees: 这是一个经典的员工管理数据库,用于展示基本的数据库设计和 SQL 查询,适用于练习JOIN操作、分组统计、子查询等SQL技能,以及理解数据库设计中的实体关系。
  3. world: 这是一个小型的示例数据库,通常用于演示 SQL 语句和基本的数据库操作,适合初学者用来学习基本的SQL查询语句,如排序、筛选、计数等。
  4. world_x: 这个数据库是基于 world 修改后的版本,主要用于测试 MySQL 5.7 之后提供的文档存储功能和 X DevAPI。它包含了文档存储的示例和相关的数据模型。
  5. menagerie: 这是一个简单的示例数据库,通常用于演示基本的数据库操作和概念。
  6. airportdb: 这是一个大型数据集,旨在与 Oracle Cloud Infrastructure (OCI) 和 AWS 上的 MySQL HeatWave 一起使用,用于复杂的分析查询,个人测试一般很少用。

示例数据库下载链接:https://dev.mysql.com/doc/index-other.html 。找到下载页面的 Example Databases 这一栏,可以下载对应的示例数据库,Linux 系统可以下载对应的 tar.gz 压缩文件,Windows 系统下载 zip 压缩文件,官方也提供了使用说明文档。

image.png

这里为了方便各位进行导入测试,笔者将整理好的 SQL 文件放在网盘里,有需要的读者自取哦!下载链接:
https://pan.quark.cn/s/698c335220e3

image.png

employees 与 sakila 示例库详解

目前最常用的示例数据库就是 employees 和 sakila 了。如果你已经导入了示例数据库,那么请打开这俩数据库,我们一起来详细了解下。

employees 顾名思义就是员工数据库,包含了 6 个表(dept_emp、dept_manager、titles、salaries、employees 以及 departments),大约 400 万条数据(需要约 160 MB 磁盘空间)。Employees 数据库的模式结构如下图所示:

image.png

  • departments:存储部门信息,包含 dept_no(部门编号)和 dept_name(部门名称)字段。
  • employees:存储员工基本信息,包括 emp_no(员工编号)、birth_date(出生日期)、first_name(名字)、last_name(姓氏)、gender(性别)和 hire_date(入职日期)字段。
  • dept_emp:记录了员工与部门之间的关联关系,包含 emp_no(员工编号)和 dept_no(部门编号)字段。
  • dept_manager:记录了部门经理的信息,包含 dept_no(部门编号)和 emp_no(经理编号)字段以及开始及结束日期字段。
  • salaries:记录了员工的薪资信息,包含 emp_no(员工编号)、salary(薪水)、from_date(开始日期)和 to_date(结束日期)字段。
  • titles:记录了员工的职位信息,包含 emp_no(员工编号)、title(职位名称)和 from_date(开始日期)及 to_date(结束日期)字段。

如果你想练习SQL查询,可以参考这个链接:https://www.cnblogs.com/stream886/p/6254709.html

相比较而言,sakila 库要复杂许多,包含了丰富的数据表结构和数据,适用于演示和教学目的。它包括演员(actor)、电影(film)、库存(inventory)、租赁(rental)等表,以及视图、存储过程和触发器的示例,展示了 MySQL 的高级功能。下图是 sakila 库的架构示意图:

image.png

参考官网:https://dev.mysql.com/doc/sakila/en/sakila-usage.html 链接可以学习下部分查询示例。如果你熟练使用 ChatGPT 等大模型的话,可以让它以示例数据库为准给你出几道查询题目哦。

总结:

本篇文章介绍了几个 MySQL 官方示例数据库,对于初学者而言还是很有帮助的,可以练习 SQL 文件执行、SQL 查询、以及数据库各对象之间的关联等等。有需要的读者,可以点击链接:https://pan.quark.cn/s/698c335220e3 ,笔者已经将各示例数据库导入脚本汇总好了,直接命令行或客户端执行导入即可。

参考:

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用MySQL数据库更新数据的示例代码。在这个示例中,我们使用了Qt提供的MySQL驱动来连接数据库和执行更新操作: ```cpp #include <QtSql> // 创建一个连接到MySQL数据库的函数 QSqlDatabase createConnection() { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // MySQL服务器地址 db.setDatabaseName("database_name"); // 数据库名 db.setUserName("username"); // 用户名 db.setPassword("password"); // 密码 // 打开数据库 if (!db.open()) { qDebug() << "Failed to open database!"; } return db; } int main() { // 创建数据库连接 QSqlDatabase db = createConnection(); // 执行更新语句 QSqlQuery query; QString updateQuery = "UPDATE table_name SET column_name = :new_value WHERE condition_column = :condition_value"; query.prepare(updateQuery); query.bindValue(":new_value", "new_value"); // 设置要更新的新值 query.bindValue(":condition_value", "condition_value"); // 设置更新条件值 if (query.exec()) { qDebug() << "Update successful!"; } else { qDebug() << "Update failed: " << query.lastError().text(); } // 关闭数据库连接 db.close(); return 0; } ``` 在上述示例中,我们首先创建一个与MySQL数据库的连接,并打开数据库。然后,我们使用`QSqlQuery`来准备和执行`UPDATE`语句。在准备语句时,我们使用占位符(:new_value和:condition_value)来动态设置更新的新值和更新条件值。然后,我们使用`bindValue()`函数将这些占位符绑定到实际的值上。最后,我们执行查询并检查执行结果。 请注意,示例中的`table_name`、`column_name`、`new_value`和`condition_value`应根据实际情况进行替换。另外,还需根据你所使用的MySQL数据库的配置和用户名/密码进行相应的设置。 这只是一个简单的示例,你可以根据具体需求和数据库结构进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值