MySQL WorkBench中文教程
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 服务器并执行脚本。
相关文章
- 10-05 esp32编程接线图(esp32编程程序接线图)
- 10-05 DAC0832波形发生器课程设计报告(dac083
- 10-05 vs2010单行读取文本_VS2010-MFC获取
- 10-05 Web漏洞-SQL注入(二)
- 10-05 phpunit thinkphp模型单元测试
- 10-05 phpunit selenium 操作 html
- 10-05 【第201期】面试官:String的长度有限制吗?
- 10-05 【第256期】面试官经常测试的21条Linux命令
- 10-05 【第256期】面试官常测试的21条Linux命令
- 10-05 【第368期】为什么阿里巴巴禁止MyBatis使用
- 10-05 【第208期】我们来敲黑板,说说如何设计秒杀系统(
- 10-05 【第208期】我们来敲黑板,说说如何设计秒杀系统(
- 10-05 【344期】面试官:如何设计群聊消息的已读未读功能
- 10-05 【第328期】Spring高频面试题:如何解决循环
- 10-05 【第305期】面试官:你用过Redis吗?那么能否
- 10-05 为什么 C++ 是最难学的编程语言?看看大神的分析
- 10-05 为什么你的设计一次又一次地改变?这4个方法助你顺利
- 10-05 比看书更高效,这4个提高编程能力的方法你知道吗?
- 10-05 总线 Linux下I2C总线的配置和使用(linu
- 10-05 Linux文件夹链接技术指南(Linux文件夹链接
- 最近发表