草庐IT

MySQL Workbench 操作详解(史上最细)

敏姐儿 2023-07-09 原文

Mysql Work Space


右键新建的数据库BMI,设置为此次连接的默认数据库,接下来的所有操作都将在这个数据库下进行

将bmi下拉单展开,点击Table,右键创建Table:

给Table命名,添加Column,设置Column的Datatype,PrimaryKey等属性。点击Apply后,Workbench仍会自动生成SQL语句,再次点击Apply,成功创建新表,在左下角可以看到:

**mysql workbench创建数据库的时候PK,NN等的含义**

  1. PK:primary key (列是主键的一部分) 主键

  2. NN : not null (列可为空) 是否为空

  3. UQ : 外键

  4. AI : 自动增加

  5. BIN : 二进制(if dt is a blob or similar, this indicates that is binary data, rather than text)

  6. UN : 无符号

  7. ZF : 补零

各种图标的含义


注意:上述英文对应所点按钮之英语 汉字为翻译内容 本文不一一赘述了

Execute the selected portion of the script or everything, if there is no selection

如果没有选择 那么就执行脚本的锁定或者所有的内容

Execute the statement under the keyboard cursor
在键盘光标下执行的语句

Execute the EXPLAIN command on the statement under the cursor
对游标下的语句执EXPLAIN

Stop the query being executed ( the connection to the DB server will not be restarted and any open transactions will remain open
停止正在执行的查询(与DB服务器的连接不会重新启动,任何打开的事务都将保持打开状态)

Toggle whether execution of SQL script should continue after failed statements

切换语句失败之后 是否应该继续执行SQL脚本

Commit the current transactionNOTE : all query tabs in the same connection share the same transaction . To have independent transactions , you must open a new connection .
提交当前事务注意:同一连接中的所有查询选项卡共享同一事务。要拥有独立的事务,必须打开一个新连接。

回滚中的当前事务选项卡

Toggle autocommit mode . When enabled , each statement will be committed immediatelyNOTE : all query tabs in the same connection share the same transaction To have independent transactions , you must open a new connection .
切换自动提交模式。启用后,将立即提交每条语句注意:同一连接中的所有查询选项卡共享同一事务要拥有独立事务,必须打开新连接。

将当前语句或所选内容保存到代码段列表。


美化/重新格式化SQL脚本


切换长行的换行(对于大文件,请禁用此选项)
编辑框



重置所有排序的列


刷新数据重新执行原始查询

切换单元格内容的换行

结果网格

电子编辑

字段类型

查询状态

执行计划
TIPS:

查看数据表

在查看数据表的对话框中,Info 标签显示了该数据表的表名、存储引擎、列数、表空间大小、创建时间、更新时间、字符集校对规则等信息,如下图所示。

在 Columns 标签显示了该表数据列的信息,包括列名、数据类型、默认值、非空标识、字符集、校对规则和使用权限等信息,如下图所示。

修改数据表

删除表


在弹出的对话框中单击 Drop Now 按钮,可以直接删除数据表,如下图所示。

主键约束

当勾选PK复选框的时候 该列就是数据表的主键 当取消复选框的时候 那么意味着取消该列的主键约束

外键约束

在工作台中

Foreign Key name 外键名称

Referenced Table 关联的 关联的主表

Column 选择外键的字段

Referenced Table 选择主表关联的字段

外键的约束模式

  1. SET NULL 闲着模式
    • 主表记录 被删除或者更改 从表相关的外键置为null
  2. CASCADE 级联操作
    • 主表中删除或者跟新了某条信息,从表中与该表记录有关的记录也将发生改变
  3. DISTRICT 严格模式 (NO ACTION 和 DISTRICT 一样 )
    • 当从表中有外键数据数据和主表关联 主表中的数据就不能更新或者删除

​ 在外键约束的列表中,在需要删除的外键上右击,选择 Delete selected 选项,删除对应的外键,单击 Apply 按钮,即可完成删除,如下图所示删除线格式

设置完成之后,可以预览当前操作的 SQL 脚本,然后单击 Apply 按钮,最后在下一个弹出的对话框中直接单击 Finish 按钮,即可完成数据表 “st” 中外键的删除,如下图所示。

唯一约束

勾选UQ复选框时 该列就是数据表的唯一约束索引

取消勾选UQ复选框时 该列就不是数据表的唯一约束索引

非空约束

勾选 NN 复选框时,该列为数据表的非空约束;

取消勾选 NN 复选框时,则取消该列的非空约束

执行简单的sql

修改“work”表,给它加一个age字段。这里在“query”里面编写我们的sql语句,如下图所示。

alter table game.work add column age integer;


按“ctrl+enter”执行这个语句之后,我们就会看到下方的输出部分,会显示我们这个查询执行的具体情况。

MODEL

  1. 使用workbench设计ER图也很简单。选择File -> New Model:

  2. 在新展开的页面中“Model Overview”界面双击“Add Diagram”图标:

  3. 双击后即可看到设计界面,workbench中叫EER图,其实就是增强的(enhanced)ER图。
    TIS 注意各个图标的含义

  • 选择对象

  • 移动模型

  • 删除对象

  • 在选定区域放置一个新层用于直观地对关系图中的相关对象进行分组

  • 建立一些文本描述

  • 和text相对应 但是插入的是图片

  • 建立一张表

  • 建立一张视图

  • MySQL工作台将存储过程和存储函数统一到一个称为例程的逻辑对象中。例程组用于对相关例程进行分组(授权函数)

    注意有些信息可以进行详细设置:

使用MODEL生成SQL语句

如果你需要sql语句,那么需要利用Model来生成。

首先打开一个Model,点击File -> Open Model,如图:


选择一个mvb类型文件,就是Model。

打开这个Model后,要生成它对应的sql语句,需要点击File -> Export -> Forward Engineer SQL CREATE SCRIPT,如图:

点击之后就会出现下图:

之后点击finish

TIPS

你也可以点击Database -> Forward Engineer来生成 但要注意,这么做在生成sql语句文件的同时,数据库中的语句也被清空了,并换成了新生成的sql。换句话说,这个方法是用来生成sql语句文件同时更改原数据库中的sql的,原有文件全被清空!如果你暂时还没想清空数据库则不要用这个方式

反向工程

使用workbench从库中导出ER图也很简单,在连接界面点击上方导航的Database -> Reverse Engineer,然后一路Next,这期间会让你选择要导出ER图对应的库,最后Finish,反向ER图就出来了。

创建视图

在 SCHEMAS 列表中展开当前默认的 test_db 数据库,

在 Views 菜单上右击,选择“Create View…”,即可创建一个视图,如下图所示。


选择 Select Rows–Limit 1000 选项,即可查看视图内容

在查看视图内容的对话框中,视图内容为只读,不可修改,如下图所示

删除视图

存储过程


触发器


然后点击 Alter Insert 创建触发器

用户和权限

1 创建用户

​ 在菜单栏中选择 Server 菜单,在展开的列表中选择 Users and Privileges 选项。


左上角的方框中显示当前数据库中的用户列表,包括数据库系统默认的用户 mysql.session、mysql.sys、root 以及自定义的用户,同时列表中还显示用户的主机名称,如 localhost。在管理界面的左下角可以单击 Add Account 按钮,即可创建一个新用户,如下图所示。

有关MySQL Workbench 操作详解(史上最细)的更多相关文章

  1. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  2. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  3. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  4. ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组? - 2

    a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],

  5. ruby-on-rails - 如何让 Rails View 返回其关联的操作名称? - 2

    我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam

  6. 物联网MQTT协议详解 - 2

    一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su

  7. Postman测试简单操作 - 2

    1、接口请求基本操作1.1例子tips在view的选项可以zoomin调整窗口字帖大小。1、创建一个测试的workspace,并命名为test2、test后面新增一个addrequest3、选择发送GET,URL为一个开源的https://api.apiopen.top/api/sentences获取每日一句4、点击send查看内容Tips:如果提示出现Error:tunnelingsocketcouldnotbeestablished,statusCode=407错误,参照以下解决办法)关于tunnelingsocketcouldnotbeestablished,cause=getaddri

  8. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  9. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  10. ruby - Ruby 语言可以用来构建操作系统吗? - 2

    Ruby语言是否可以用于创建全新的移动操作系统或桌面操作系统,即是否可以用于系统编程? 最佳答案 嗯,现在有一些操作系统使用比C更高级的语言。基本上,ruby解释器本身需要用一些低级的东西来编写,并且需要一些引导加载代码将功能齐全的ruby​​解释器作为独立内核加载到内存中。一旦ruby​​解释器被引导并以内核模式(或innerrings之一)运行,就没有什么可以阻止您在其上构建整个操作系统。不幸的是,它可能会很慢。每个操作系统功能的垃圾收集可能会相当引人注目。ruby解释器将负责任务调度和网络堆栈等基本事情,使用垃圾收集框架会大大

随机推荐