![MySQL Workbench 使用教程 - 如何使用 MySQL Workbench 操作数据库](https://kalacloud.com/static/2bdadee47f747aa8b35007e256a0b778/ef245/head.jpg)
本文首发:《[MySQL Workbench 使用中文教程 - 卡拉云](https://kalacloud.com/blog/mysql-workbench-tutorial/)》
MySQL Workbench 是一款专门为 MySQL 设计的可视化数据库管理软件,我们可以在自己的计算机上,使用图形化界面远程管理 MySQL 数据库。
有关 MySQL 远程管理软件,你可以选择 Windows 下的 [HeidiSQL](https://kalacloud.com/blog/best-mysql-gui-tools/),MacOS 下的 [Sequel Ace](https://zhihu.com/question/21792734/answer/2236258250) 或者 MySQL 官方推出的跨平台客户端 [MySQL Workbench](http://www.mysql.com/products/workbench/) 。
本文使用 Mac 版 MySQL Workbench 进行讲解,Mac 版与 windows 版、Linux 版除 UI 界面稍有不同外,整个操作逻辑完全一致,不论你使用何种操作系统及版本,均可跟随本教程学习。
**本教程目录**
一. 如何下载及安装 MySQL Workbench
二. 如何使用 Workbench 远程连接数据库
三. 使用 Workbench 操作数据库
1. MySQL Workbench 初始化界面
2. 连接远程 MySQL 数据库
3. 创建数据库
4. 在数据库中创建表
5. 查看表数据
6. 向 table 表中插入数据
7. 修改字段属性
8. 删除数据库中的表
四. MySQL 数据导入导出
1. 导入 SQL 数据
2. 导出 SQL 数据
五. 配置 MySQL 数据库表属性
1. 主键约束
2. 外键约束
3. 唯一约束:UQ 索引
4. 非空约束
5. 默认值约束
六. 在 Workbench 中执行一条 SQL 查询
七. 创建触发器及触发器的应用
八. 用户账号和访问权限
1. 查看 MySQL 数据库中的账号情况
2. 创建 MySQL 数据库账号
3. 删除 MySQL 数据库账号
九. Workbench 的升级版卡拉云
## 一. 如何下载及安装 MySQL Workbench
MySQL Workbench 作为 MySQL 官方出品的数据库操作软件,我们可以前往 [MySQL Workbench 官方下载页](https://downloads.mysql.com/archives/workbench/) 免费下载。
![下载MySQL Workbench](https://kalacloud.com/static/8e1098d20024f99b1025a27357fd27a4/dcec8/0-downloads.jpg)
在这个下载页中,可根据你的实际情况选择适合你的运行平台及版本。
下载后一路 Next 安装即可。
扩展阅读:《[10 款 MySQL GUI 管理工具横向测评 - 免费和付费到底怎么选?](https://kalacloud.com/blog/best-mysql-gui-tools/?utm_medium=inside)》
## 二. 如何使用 Workbench 远程连接数据库
- 你的服务器需要打开 SSH 登录(如果选择 SSH 登录后再登录 MySQL 需要打开)
- 调整服务器防火墙
- 配置好 MySQL 远程登录(如果选择直接远程登录 MySQL 服务器时需要打开)
有关 Workbench 远程登录的教程,请在《[如何使用 Workbench 远程连接到 MySQL 服务器](https://kalacloud.com/blog/how-to-connect-to-a-mysql-server-remotely-with-mysql-workbench//?utm_medium=inside)》查看全文。
有关 MySQL 开启远程登录的教程,请在《[如何远程连接 MySQL 数据库,配置阿里云外网连接](https://kalacloud.com/blog/how-to-allow-remote-access-to-mysql/?utm_medium=inside)》查看全文。
## 三. 使用 Workbench 操作数据库
### 1.MySQL Workbench 初始化界面
![Workbench 初始化界面](https://kalacloud.com/static/86f583895bedf3a19a03dc88d6f4e3e0/48958/01-interface.jpg)
Workbench 初始化界面
### 2.连接远程 MySQL 数据库
![连接远程 MySQL 数据库](https://kalacloud.com/static/fc5a2ec9afda037d9f8b503f6d1512e6/cd367/02-connect.jpg)
点击配置好的远程登录卡片,登录远程 MySQL 服务器。如果你还没配置好远程端,请参照《[如何使用 Workbench 远程连接到 MySQL 服务器](https://kalacloud.com/blog/how-to-connect-to-a-mysql-server-remotely-with-mysql-workbench//?utm_medium=inside)》这篇教程进行配置。
![连接远程 MySQL 数据库](https://kalacloud.com/static/a3eec04dc6a8e68f3ff32ffe4b05eb7d/06921/03-connect-face.jpg)
登录远程数据库后,红框部分为当前远程 MySQL 数据库中已经创建好的数据库列表。
### 3.创建数据库
![创建数据库](https://kalacloud.com/static/922f02c387539f147c530355b0fc8b1a/93992/04-create-databases.jpg)
在 `SCHEMAS` 列表的空白处,点击鼠标右键,在弹出的菜单中选择「Create Schema…」,进入数据库创建流程页面。
![填写数据库名称](https://kalacloud.com/static/ed57545a0d8156f65fdb3a31da5b78de/93992/05-database-rename.jpg)
在 Schema Name 里填入新建数据库的数据库名,然后选择 Apply
![生成 SQL 命令脚本](https://kalacloud.com/static/7649d46b436e50628cf97c9beb0a426c/6753f/06-database-rename-sql.jpg)
MySQL Workbench 会自动帮助我们生成 SQL 命令,创建数据库。
![创建数据库成功](https://kalacloud.com/static/1db6aee51657de14589554fbf53a0252/3b2a1/07-create-databases-successfully.jpg)
执行命令,创建成功。可以看到 Schemas 列表中多了我们刚刚创建的 `kalacloud_demo` 数据库
### 4.在`kalacloud_demo` 数据库中创建表
![设置当前数据库为默认数据库](https://kalacloud.com/static/0d3711a82eeab907c682ced7a27dcebf/dfb5e/08-set-as-default.jpg)
右键点击`kalacloud_demo` ,选择 `Set as Default Schema` 先把它设置成默认数据库。
![创建数据库中的表](https://kalacloud.com/static/423b89c2ffc612cc032d18e12acf1a1b/0d6e3/09-create-tables.jpg)
然后选择下箭头,右键点击 `Tables` 选择 `Create Table` 进入创建表的流程页。
![表的创建流程页](https://kalacloud.com/static/b7f6805b49bab932e875b905061cb352/14fc6/10-create-tables-id.jpg)
(1)`Name`:这里填写表名
(2)这里创建表中的各列、列属性。
(3)点击<click to edit>可添加一列。
(4)点击 Apply 执行 SQL 命令。
![创建表的 SQL 命令](https://kalacloud.com/static/20f2be854efb6e308a0edaaa1469c35d/48958/11-create-tables-id-sql.jpg)
MySQL Workbench 会帮我们生成创建表的 SQL 命令。
### 5.查看表数据
![查看表数据](https://kalacloud.com/static/c622d0d5b8f466b5af87a0840d6f360a/bbc43/12-select-tables.jpg)
(1)点击要查看的表名后面的「闪电 icon」标示
(2)Workben 自动帮我们生成一段查看表的 SQL 命令
(3)点击黄色闪电标志执行后,可在 Result Grid 看到查询表的表数据
### 6.向 table 表中插入数据
![向 table 表中插入数据](https://kalacloud.com/static/b92d4c662a5d4d5fdbd0c55be3dff17b/bbc43/13-1-insert-tables.jpg)
(1)使用 `Select` 查出表内容后,在表格内直添加需要写入的数据。
(2)Workbench 会生成一段查看表的代码
(3)在下方表格中展示表内数据,我们可以根据自己的需求在这里向表内添加数据。
(4)最后点击应用生成添加数据的代码
![向 table 表中插入数据的 SQL 代码](https://kalacloud.com/static/78d4850a53eeb606cc052d18157b1a72/8b3ab/13-2-insert-tables-sql.jpg)
如上图所示,我们可以看到 id 为 1 的卡拉云这一行数据已经转化成 SQL 命令,点击应用即可将数据添加到数据库中。
### 7.修改字段属性
![修改字段属性](https://kalacloud.com/static/44788d68f8faa783bc9dd4287717e958/ad3f1/14-alter-tables.jpg)
右键点击需要修改的表,选择「Alter Table...」,右侧会显示出表信息,修改需要修改的内容后,Apply 即可应用。
### 8.删除数据库中的表
![删除数据表](https://kalacloud.com/static/98f91cd08635c62bb71c4fcc4a207e37/ad3f1/15-del-tables.jpg)
右键选择需要删除的表,然后点击「Drop Table...」即可删除。注意:此操作不可撤回,谨慎选择。
扩展阅读:《[如何在 MySQL 中查找和删除重复记录?](https://kalacloud.com/blog/mysql-remove-duplicate-records/?utm_medium=inside)》
## 四. MySQL 数据导入导出
### 1.使用 MySQL Workbench 导入 SQL 数据
![使用 MySQL Workbench 导入数据](https://kalacloud.com/static/85cc88ef4f3dc684a0c0c3c21d65c4f8/cd851/16-open-sql-script.jpg)
在菜单栏中选择 `File` → `Open SQL Script...` 选择要导入的 SQL 文件
![打开 SQL 文件](https://kalacloud.com/static/68149eb07a89a2deb2ab8b42f50d12a6/903c8/17-open-sql.jpg)
在弹出的对话框中选择需要导入的 SQL 文件。
![选择 SQL 文件](https://kalacloud.com/static/3390b9fa2564f0bb544f52e620249bbc/d9e34/18-0-use-database.jpg)
这里非常关键,一定要仔细阅读。
(1)在打开的 SQL 文件的头部,写入需要导入的数据库名,本教程将导入 `kalacloud_demo` 这个数据库。 所以在文件中写入 `USE kalacloud_demo;`
(2)点击黄色闪电 icon 执行代码
(3)将这 4 条数据写入数据库对应的 users 表中
![MySQL 数据导入成功](https://kalacloud.com/static/79c5307d9fd1bec7c1d59e8dd75b4512/25fc1/18-1-use-database-sess.jpg)
使用 `SELECT` 查询表,可以看到 4 条数据已经成功导入
### 2.使用 MySQL Workbench 导出 SQL 数据
![使用 MySQL Workbench 导出数据](https://kalacloud.com/static/9f1bb55a9f813121873f33ee10d084ba/d9e34/19-Data-Export.jpg)
(1)选择 Administration 标签
(2)在 MANAGENMENT 中找到 Data Export
(3)选择需要导出的数据库
(4)选择需要导出数据库中的表
(5)选择导出内容
(6)选择导出 SQL 文件的存储路径
(7)Start Export 开始导出
扩展阅读:《[如何在 MySQL 中导入导出 SQL 数据、Excel、CSV](https://kalacloud.com/blog/how-to-import-and-export-databases-excel-csv-in-mysql-or-mariadb-from-terminal/?utm_medium=inside)》
## 五. 配置 MySQL 数据库表属性
### 1.主键约束
![主键约束 Primary-Key](https://kalacloud.com/static/5157908784800877046bfa8f73225027/bbc43/20-Primary-Key.jpg)
Primary Key(PK):主键约束,指定某列的数据非空、唯一、不能重复
(1)右键点击需要设置的表,选择「Alter Table...」
(2)`PK` 为设置主键约束。
### 2.外键约束
![外键约束-Foreign-Key](https://kalacloud.com/static/d5b0279b5173590f79590829dca074d1/50a3f/21-Foreign-Key.jpg)
Foreign Key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
(1)右键点击需要设置的表,选择「Alter Table...」
(2)选择「Foreign Keys」的标签
(3)选择要关联的表
(4)当前表的列,选择要关联的键
(5)被关联表的列,选择需要关联的键
(6)Apply 应用,进行关联
### 3.唯一约束:UQ 索引
![唯一约束:UQ 索引](https://kalacloud.com/static/140312065d254937dc5a0c6cffbefdfc/a4151/22-Unique.jpg)
Unique:唯一约束,指定某列和几列组合的数据不能重复
选中的列就是数据表的唯一约束索引,取消选中则取消该列的唯一约束索引。
### 4.非空约束
![非空约束-Not-Null.jpg](https://kalacloud.com/static/e127a0002213f61403d93a5e54d07d43/3d027/23-Not-Null.jpg)
Not Null:非空约束,指定某列不能为 NULL 空
选中 NN 的列为数据表的非空约束,取消选中则取消该列的非空约束。
### 5.默认值约束
![默认值约束-Default](https://kalacloud.com/static/2f04157cce02cf86f96f80f45e92a2f8/d9e34/24-Default.jpg)
默认值(Default)的完整名称是 默认值约束(Default Constraint)
MySQL 默认值约束用来指定某列的默认值。
红框部分,`states` 的默认值设定为「1」,即插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为「1」。
扩展阅读:《[MySQL 重置自增 ID (AUTO_INCREMENT)教程 - 完美保留表数据的终极解决方案](https://kalacloud.com/blog/how-to-reset-auto-increment-in-mysql/?utm_medium=inside)》
## 六. 在 Workbench 中执行一条 SQL 查询
我们也可以直接在 Workbench 执行一段 SQL 查询,下面这段代码是向`kalacloud_demo`数据库中`kalacloud_table_demo`表里插入一行数据。
```
INSERT INTO `kalacloud_demo`.`kalacloud_table_demo` (`id`, `name`, `phone`, `wechat_id`, `wechat_name`, `states`)
VALUES ('2', '卡拉云 kalacloud', '13777779999', 'kalacloud', '卡拉云 kalacloud.com', '2');
```
![执行 query](https://kalacloud.com/static/8cb35a0e61d7534bf344618685aeda46/d9e34/25-query-run.jpg)
直接在 `Query` 标签中写入 SQL 代码,然后点击「黄色闪电」即可执行代码。
然后,我们运行 `select` 查看上一条命令是否已经写入表中。
```
SELECT * FROM kalacloud_demo.kalacloud_table_demo;
```
![query 执行完成](https://kalacloud.com/static/ce0303a62eca314ddb44deda73b10982/d9e34/26-query-check.jpg)
我们可以看到,红框部分,ID 2 这一条就是刚刚我们写入的数据。
扩展阅读:《[如何查看 MySQL 数据库、表、索引容量大小?找到占用空间最大的表](https://kalacloud.com/blog/how-to-get-the-sizes-of-the-tables-of-a-mysql-database/?utm_medium=inside)》
## 七. 创建 MySQL 触发器及触发器的应用
![创建 MySQL 触发器](https://kalacloud.com/static/3c8779a359c9c8ac838bf21942a6b405/ad3f1/27-Triggers.jpg)
1.鼠标右键点击需要添加触发器的表。
2.选择 `Triggers` 标签,进入触发器设置页面
3.选择需要添加的触发器类型。
4.添加触发器代码
MySQL 触发器一共有 6 种类型:
- `BEFORE INSERT` : 在插入数据前,检测插入数据是否符合业务逻辑,如不符合返回错误信息。
- `AFTER INSERT` : 在表 A 创建新账户后,将创建成功信息自动写入表 B 中。
- `BEFORE UPDATE` :在更新数据前,检测更新数据是否符合业务逻辑,如不符合返回错误信息。
- `AFTER UPDATE` :在更新数据后,将操作行为记录在 log 中
- `BEFORE DELETE` :在删除数据前,检查是否有关联数据,如有,停止删除操作。
- `AFTER DELETE` :删除表 A 信息后,自动删除表 B 中与表 A 相关联的信息。
有关六类触发器的实际使用方法及应用场景的详细教程,可查看《[MySQL 触发器 创建 、查看、删除 insert、update、delete 教程 - 卡拉云](https://kalacloud.com/blog/how-to-manage-and-use-mysql-database-triggers/?utm_medium=inside)》文章。此教程以实际应用场景为线索,按照场景细致讲解了全部 6 种触发器的使用方法。
## 八. 用户账号和访问权限
### 1.查看 MySQL 数据库中的账号情况
![查看 MySQL 数据库中的账号情况](https://kalacloud.com/static/c58a36b70fdb004dbd9a8d0ba21ddf08/ad3f1/28-0-enter-users.jpg)
(1)在菜单栏选择 `Server`
(2)选择 `Users and Privileges` 进入用户管理页面
### 2.创建 MySQL 数据库账号
![创建 MySQL 数据库账号](https://kalacloud.com/static/e4f3b625ed2d03fac3740a6e32b1c6c7/1176d/28-1-Add-Account.jpg)
(1)选择 `Add Account`
(2)添加账号详细信息
(3)Apply 应用
### 3.删除 MySQL 数据库账号
![删除 MySQL 数据库账号](https://kalacloud.com/static/7ac5ff0fc8c68cc41ef98a701658d6f6/d9e34/28-2-dele.jpg)
(1)选择需要删除的账号
(2)点击 `Delete`
(3)点击 `Refresh` 刷新列表
最后,Workbench 有一些只有付费软件才独有的功能,比如画 ER 图,比如正逆向工程,数据库本地远程之间同步等,这类进阶功能我单独写了一篇,大家可以看这篇《[如何使用 MySQL Workbench 自动生成 ER 图、同步更新远程数据库 - MySQL Workbench 使用教程](https://kalacloud.com/blog/how-to-create-er-diagram-of-a-database-in-mysql-workbench/?utm_medium=inside)》
扩展阅读:《[MySQL 权限管理查询手册 - 创建、授权、取消授权、删除、重命名账号](https://kalacloud.com/blog/how-to-create-a-new-user-and-grant-permissions-in-mysql/?utm_medium=inside)》
## 九. 卡拉云 - 新一代低代码开发工具
MySQL Workbench 为我们提供了管理 MySQL 的图形界面管理工具,可以在本地轻松管理远程数据库,但 Workbench 只能做较底层的数据库操作。对于「构建在数据库之上,需要前端定制开发」的需求,并不适用。
这里推荐一下卡拉云,卡拉云是新一代低代码开发工具,免安装部署,可一键接入包括 MySQL 在内的常见数据库及 API。不仅可以完成 Workbench 所有功能,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。数月的开发工作量,使用卡拉云后可缩减至数天。
![卡拉云可一键接入常见的数据库及 API](https://kalacloud.com/static/18822b2a23183deb7d11dd484a7f65aa/71c1d/97-kalacloud-sql.png)
卡拉云可一键接入常见的数据库及 API
卡拉云可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据
![仅需拖拽即可生成前端组件](https://kalacloud.com/5400a60956e16d655e0297c5d6e5a8d2/98-kalacloud-gif.gif)
下图为使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。**欢迎使用[卡拉云](https://kalacloud.com/?utm_medium=register)。**
![使用卡拉云5分钟搭建优惠券发放核销系统](https://kalacloud.com/static/34625d3adaea4ed250ff3f05b863e47c/cca35/99-kalacloud-sql-index.png)
## 总结
在本教程中,我们讲解了 MySQL Workbench 操作 MySQL 数据库的基础操作。
有关 MySQL 教程,可继续拓展学习:
- [MySQL 时间戳用什么类型 - MySQL 时间函数详解](https://kalacloud.com/blog/difference-between-mysql-datetime-and-timestamp-datatypes/)
- [MySQL 中如何实现 BLOB 数据类型的存取,BLOB 有哪些应用场景?](https://kalacloud.com/blog/how-to-use-the-mysql-blob-data-type-to-store-images-with-php-or-kalacloud/)
- [如何在 MySQL / MariaDB 中跳过多张表导出或指定多张表导出备份](https://kalacloud.com/blog/how-to-dump-database-and-ignore-or-specific-some-tables-with-mysqldump-in-mysql/)
- [如何将 MySQL / MariaDB 的查询结果保存到文件](https://kalacloud.com/blog/how-to-save-mysql-mariadb-query-output-to-a-file/)
- [MySQL 分组查询实战 如何查询每组最第一条、最后一条记录,单多字段查询、分组筛选、最大小值排序](https://kalacloud.com/blog/how-to-group-by-find-first-and-last-record-in-mysql/)
有疑问加站长微信联系(非本文作者))