首页 > 数据库 >MySQL Workbench的使用教程

MySQL Workbench的使用教程

时间:2023-06-11 17:34:44浏览次数:46  
标签:Workbench 创建 数据库 教程 订单 MySQL ORDER

        MySQL Workbench 是 MySQL AB 最近释放的可视数据库设计工具。这个工具是设计 MySQL 数据库的专用工具。


MySQL Workbench 拥有很多的功能和特性;这篇由Djoni Darmawikarta 写的文章通过一个示例展现了其中的一些。我们将针对一个订单系统建立一个物理数据模型,这里的订单系统可以是销售单也可以是订单,并且使用  forward-engineer(正向引擎) 将我们的模型生成为一个 MySQL 数据库。

MySQL Workbench 是 MySQL 最近释放的可视数据库设计工具。这个工具是设计 MySQL 数据库的专用工具。

你在 MySQL Workbench 中建立的被称之为物理数据模型。一个物理数据模型是针对一个特定 RDBMS 产品的数据模型;本文中的模型将具有一些 MySQL 的独特规范。我们可以使用它生成(forward-engineer)数据库对象,除了包含表和列(字段)外,也可以包含视图。

MySQL Workbench 拥有很多的功能和特性;这篇由 Djoni Darmawikarta写的文章通过一个示例展现了其中的一些。我们将针对一个订单系统建立一个物理数据模型,这里的订单系统可以是销售单也可以是订单,并且使用  forward-engineer(正向引擎) 将我们的模型生成为一个 MySQL 数据库。

我们的示例中使用 MySQL Workbench 创建的物理模型看上去就像下图这样:


创建订单方案(ORDER Schema)

首先让我们来创建一个保存订单物理模型的方案。点击 + 按钮(红色标注的地方)


更改新的方案默认名称为订单。注意,当你键入方案名时,在 Physical Schemata 上的标签名也会随之改变——这是一个很好的特性。

订单方案被增加到目录(Catalog)中 (图中红色圈住的部分)。


重命名方案后关闭 schema 窗口。


创建订单表

我们现在创建订单模型中的三个表:ORDER 表以及它的两个子表 SALES_ORDER 和PURCHASE_ORDER。首先,确信你已经选择了 ORDER 方案的标签,这样,我们创建的表才会包含于这个方案。

我们将要创建的表是作为 EER 图表展示的(EER = Enhanced Entity Relationship)。所以,双击 Add Diagram 按钮。


单击 Table 图标,然后移动鼠标到 EER Diagram 区域,在你想放置第一个表的位置上单击鼠标。



对于其他两个表,重复上面的操作。你可以通过拖拽来移动表的位置。


下一步,我们要对 table1 做一些操作,这些操作是通过 Workbench 的表编辑器完成的。要打开表编辑器,只需右键选择 table1 并选择 Edit Table 菜单。


键入 table1 的表名 ORDER 。


接下来,增加列(字段)。选择 Columns 标签。将列名(字段名) idORDER 更改为  ORDER_NO.


在下拉列表框中选择数据类型 INT 。


我们希望 ORDER_NO 列的值可以被 MySQL 数据库自动控制,所以,我们选定 AI 列 (Auto Increment——自增量).

AI 是 MySQL 数据库的一个特性。


你也可以指定表的其他物理属性,例如它的 Collation 属性;当然可以指定表的其他高级选项,例如 trigger 和 portioning (分别对应 Trigger 和 Partioning 标签)。


注意,这时,在 diagram 中我们表 table1 已经改变为 ORDER,并且,它有一个列(字段)ORDER_NO。在目录中,你也可以看到有三个表。

在表右侧的黑点,表示它们包含在一个图表中。

如果你展开 ORDER ,你可以看到 ORDER_NO 列。因为我们定义它为主键,所以在它左侧有一个 key 图标。


回到表设计器,增加其他两列(字段):ORDER_DATE 和 ORDER_TYPE。ORDER_TYPE 可以有两个值:S 表示销售订单,P 表示采购订单。由于销售订单是更常用的,所以我们指定列(字段)的默认值为 S 。

你可以在最后一列的下面白色区域双击鼠标来增加下一个字段。


使用同样的方式来创建 SALES_ORDER 表及其中的列(字段)。


最后,创建 PURCHASE_ORDER 表及其中的列(字段)。


创建关系

我们已经创建了三个表。到这里并没有结束;我们仍旧需要创建它们的关系。

SALES_ORDER 是 ORDER 的子表,意味着它们是 1:1 ,SALES_ORDER 为子表, ORDER 为父表,并将 ORDER 的键移动到 SALES_ORDER 。所以,选择(单击)1:1 identifying relationship 图标,然后在 SALES_ORDER 表上单击,再在 ORDER 表上单击。


注意,当你在单击表时,图标将变为带有 1:1 关系的手型。



1:1 关系就是这样设置的;ORDER_NO 主键被移动到 SALES_ORDER 表并作为它的主键。


下一步,创建 PURCHASE_ORDER 到 ORDER 的关系,它仍旧是 1:1 关系。


我们现在已经完成了表及表之间关系的设计;将我们的模型保存为 ORDER.mwb.



生成 DDL 和数据库

最终在本文设计数据模型的目的是为了建立 MySQL 数据库。我们将首先生成 DDL(SQL CREATE script),然后执行这个脚本。

从 File | Export 菜单中,选择 Forward Engineer SQL CREATE Script.




最后,执行保存的 SQL CREATE 脚本。MySQL Workbench 自身并没有执行这个脚本的能力;我们可以在 MySQL 命令控制台中来执行它。



你也可以在其中来查看表是否已经被创建。


总结

这篇文章向你展示了在 MySQL Workbench 中如何可视的建立 MySQL 物理数据模型,并使用它来创建一个 MySQL 数据库。


标签:Workbench,创建,数据库,教程,订单,MySQL,ORDER
From: https://blog.51cto.com/u_6186189/6458361

相关文章

  • mysql_三大范式
    介绍数据库的三大范式就是数据库的表应该如何设计,应该注意什么。第一范式要求每一张表都有一个主键,每一个字段都不可再分。举例:idusernameaddress1张三中国,北京2李四美国,洛杉矶1王五日本,东京问题:上面的这张表没有主键,因为第一条记录和第三条记录id......
  • .net framework生成Nuget包简单教程
    前言nuget包生成在.netframework和.netcore/.netstandard下的是不同的。.netframework中稍微复杂些,下面记录了我自己在.netframework中本地生成Nuget包的过程,只涉及主要步骤,更多细节参见微软官方文档。步骤1,到https://www.nuget.org/downloads下载nuget.exe,下载完我放在D......
  • mysql函数大全 整理
    对于针对字符串位置的操作,第一个位置被标记为1。ASCII(str)返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。mysql>selectASCII('2');  ->50mysql>selectASCII(2);  ->50mysql>selectASCII('dx');  ->100......
  • MySQL学习笔记-部署安装
    MySQL是一种常用的关系型数据库管理系统,可以用于存储和管理各种类型的数据。在本文中,我们将介绍如何在Linux操作系统上部署MySQL数据库,包括安装MySQL、创建数据库和用户、设置数据库安全性等。步骤如下:1.安装MySQL在Linux操作系统上安装MySQL通常需要使用包管理器,例如yum或apt-......
  • mysql GTID模式跳过错误GTID事务的正确方法
      最近遇到一个Mysql由于createtable时由于从库表表空间问题,从库sql重放进程执行sql失败,导致从库的sql应用进程挂掉。客户反馈,可以跳过失败的createtable事务,本博文展示mysql基于GITD模式跳过错误CTID事务的正确方法。  1.0明确错误原因root@mysqldb15:53:[(none)]>......
  • MySQL密码找回
    MySQL忘记密码如何找回以管理员身份打开cmd,关闭服务netstopmysql跳过密码授权登录mysqld--console--skip-grant-tables--shared-memory执行完这个命令后,进程会卡住,为正常情况。以管理员身份另外打开一个cmd进入mysql内置库,修改密码//依次输入以下命令mysqlu......
  • odoo 开发入门教程系列-模型和基本字段
    模型和基本字段在上一章的末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。在我们的房地产模块中,我们希望将与房地产相关的信息(名称(name)、描述(description)、价格(price)、居住面积(livingarea)…)存储在数据库中。odoo框架提供了数据库交互的工具......
  • odoo 开发入门教程系列-一个新应用
    一个新应用房地产广告模块假设需要开发一个房地产模块,该模块覆盖未包含在标准模块集中特定业务领域。以下为包含一些广告的主列表视图form视图顶层区域概括了房产的重要信息,比如name,PropertyType,Postcode等等。列表记录详情页中,第一个tab包含了房产的描述信息,比如:bedrooms,Livi......
  • MySQL逻辑备份
    一、mysqldump1.mysqldump的导出--只导出存储过程【dump备份】mysqldump-uroot-p-n-t-d--skip-add-drop-table-R数据库名>文件名##其中,-d表示--no-data(Norowinformation),-n表示--no-create-db不导出建库语句,-t表示--no-create-info不导出建表语句,##......
  • 【已解决】MySQL连接错误 ERROR 1129 (00000): Host ” is blocked because of many c
     问题连接MySQL 报错 ERROR1129(00000):Host”isblockedbecauseofmanyconnectionerrors原因同一个IP在短时间内产生太多终端的数据库连接(超过mysql数据库max_connection_errors设置),导致被阻塞。在系统变量:max_connect_errors设置了允许中断的次数,超过了这个次数(或者......