欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > MySQL WorkBench中文教程

MySQL WorkBench中文教程

日期:2023-10-02 16:49

undefined

MySQL Workbench 可用于 Windows、Linux 和 Mac OSX。有两个不同的版本:社区OSS版(社区OSS版本)和商业标准版(商业标准版)。正如您所期望的,社区版是开源的并获得 GPL 许可。它功能齐全,也是我们在本文中使用的。商业版本添加了一些其他功能,例如视图和模型验证或文件生成。

注:本辅助教程基于社区OSS版本5.2(5.2.16),是在测试版本发布时(2010.4)编写的。


开始创建数据库

为了学习如何使用MySQL Workbench,我们将使用一个非常简单的数据库:在线课程作为案例。假设一组教师想要使用 Skype 或其他视频会议软件提供多个科目的在线课程。对于我们的小项目,我们应该存储以下信息:

在设计我们的图表时,我们需要知道以下几组数据之间的关系,所以我们现在就应该考虑一下。

  • 一位老师可以教很多科目
  • 一门学科可以由多名老师教授
  • 每门课程只能有一名老师
  • 一个老师可以教很多课
  • 一个学生可以参加多门课程
  • 一个班级可以有很多学生
  • 一堂课可能会持续几个小时(一周之内)
  • 在特定的日期或时间,可能会同时有多个在线课程
  • 一堂课只有一门科目
  • 一门学科可以在多门课程中教授

基于此,在下面的演示中我们拥有了所有信息。


将数据传输到 MySQL Workbench

现在是时候开始讨论 Workbench 了。在主屏幕的数据模型部分,我们点击‘创建新的EER模型’,将出现以下屏幕:

undefined

我们可以使用 EER 图来定义整个数据库或其中的一小部分。例如,我们可以在一个模式中定义五个数据表,然后创建一个新的图表(drigram)并使用可视化编辑工具定义另外两个数据表。该图仅包含两个数据表,但这两个数据表和其他五个表将包含在架构中。


创建表格

回到原始实例,我们通过双击数据表名称来重命名数据表。此时,有两种方法:我们可以使用“添加数据表”图标将数据表添加到物理模式,或者使用 EER 图添加所有数据表。

我通常选择从添加 EER 图和创建可视化视图开始,但为了展示如何用这两种方法创建数据表,我们将首先使用视图标签创建两个数据库表,然后使用 EER 图创建它们。当您点击添加表图标时,将打开以下数据表编辑界面:

使用数据表编辑界面,我们更改数据表的名称并切换到列标签(下面的编辑器选项卡)以输入我们的列。我们可以选择数据类型(所有 MySQL 数据类型都有一个下拉列表框),分配默认值,如果需要,我们有七个复选框来标记以下任何一项。

  • PK – 主键
  • NN – 不为空
  • UQ – 独特
  • BIN – 二进制
  • UN – 无签名
  • ZF – 零填充
  • AI – 自动增量

前往查看

这是一种添加数据表的方式,当然我们也可以用EER图来创建。如果我们现在单击添加图表标记,我们将创建一个新的空图表。这不是我们想要的。我们需要的是图表中刚刚创建的两个数据表。

如果我们进入菜单并选择“模型/从目录对象创建图表”,现在我们就有了图表并准备继续创建它。 .

选择左侧的数据表图标,指针指向一个小数据表。接下来,单击容器中的任意位置以创建新的数据表。

现在您只需双击数据表,编辑器选项卡就会显示编辑后的名称、列、类型等,与我们之前的方式相同。将行详细信息输入表后,我们就准备开始设计它们之间的关系。


绘制关系

在左侧的数字工具栏上,我们有六种工具可供选择用于创建表关系

别担心最后一项,我们会在最后解释。对于 1:1 和 1:n 关系,我们有两种类型的标记符号:已定义和未定义。这是什么意思?

当一个表完全依赖于另一个现有表一个数据表的一行依赖于另一个数据表的一行时,就认为定义了关系。一个常见的例子是使用单独的表来存储用户的手机号码。这在另一个表中可能是必要的,因为一个用户可能有多个手机号码,但是手机号码表中的每个组都完全依赖于用户表,属于该用户。

您可能会意识到人际关系有一些影响。如果我们想在MySQL中创建物理表,则必须以某种方式映射关系。表的关系映射有几个规则。

1:1 关系:一个表的主键是另一个表的外键

1:n关系:该关系对应的表的主键是n个关系对应的表的外键

n:m关系:创建一个新表(关联表)。主键是两个原始表的主键的组合。

通常在从 n:m 关系描述创建关联表时定义关系。这些数据表完全依赖于两个原始表。还有,在1:1和1:n关系的定义中,外键的引入会成为该表主键的一部分,形成复合主键。好消息是MySQL Workbench 比我们更了解这些约束。我们只需要画线,外键和相关表就会自动创建。我们也可以选择手动,这个我们后面会讲到。要建立关系,请单击该图标,然后单击两个表之间的关联。对于一对多关系,首先单击多关系对应的表,然后单击1关系对应的表。让我们看看如何对 n:m 个教师-科目关系和 1:n 个教师-班级关系执行此操作。

默认分配的外键名称和相关表可以在编辑/首选项/模型选项卡上进行全局更改,或仅在当前项目模型/模型选项上进行更改。如果我们不希望以这种方式生成表和外键,我们可以使用晦涩的第六种表示法。

第六个符号使用现有列创建关系,这意味着所需的外键已包含在您的表中,并且已建立所需的关联表(n:m 映射表)。既然我们已经建立了这些关联表,就不需要n:m的关系了,1:n就足够了。

如果我们定义了所有关系,我们的图表应该如下所示:

请注意,我们一直在 MySQL Workbench 中使用默认的图表表示法,但您也可以在 模型/对象表示法模型/关系表示法中更改它。这是我们在经典符号模型中的情况:

此时,我们的模型已准备就绪,我们可以生成 SQl 来创建 MySQl 数据库。


生成SQL

选择文件/导出/转发工程师 SQL 创建脚本。在我们生成的文件旁边

向导屏幕只有三个:

我们还可以选择在保存之前查看和编辑生成的 SQL 语句。

就是这样。单击“完成”,将生成并保存 SQL 脚本。现在我们可以用它做我们想做的事了。我们可以使用基于命令行的 mysql 客户端加载它:mysql> SOURCE scriptName.sql,或者我们可以使用 MySQL Workbench 来执行此操作,连接到我们的 MySQL 服务器并执行脚本。