MySQL Workbench简易入门文档

前言

在日常各种工作中,图形化工具为我们提供了很大的便利,MySQL数据库有很多图形化工具,其中MySQL Workbench是MySQL公司开发的集成图形化工具,这个是一个免费的工具可以从MySQL官网下载,里面集成了数据建模、MySQL操作工具箱、数据迁移工具等。

创建数据库

不得不说这个工具的智能和完美,我安装好后打开它已经列出了本地数据库连接列表:

数据库连接

进去之后有一行菜单可以方便我们创建数据库,表,视图等。

MySQL Workbench创建数据库菜单

我们先来创建一个数据库,名字为’mydb’

创建MySQL数据库

设计数据库表

接下来我们使用MySQL WorkBench来数据建模,数据建模工具可以很方便的创建物理模型,然后通过正向工程将物理模型转换为实际的数据库对象,通过这种方式可以很大的提高数据库设计效率。

数据库建模

第一步:在主界面单击Create New EER Model按钮,在弹出的面板中双击Add Diagram打开模型编辑器。

第二步:单击工具栏的创建表图标,然后在编辑区单击创建一张表:

创建表

第三步:双击刚才创建的表,编辑表名和表字段:

修改表名称添加字段

第四步:用类似的方式创建另一张表subject,最后使用n:m连接线建立student和subject的多堆多关系。

建立表的多对多关系

系统自动生成了student_has_subject中间表,包含字段student_stuid和subject_subid,都设置为中间表的外键,引用的表为两表主键。

第五步:点击File—>Export—>Forward Engineer SQL Script 弹出SQL脚本导出选项窗口,选择保存路径,然后按照提示选择对于配置(可以按照默认)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
-- MySQL Script generated by MySQL Workbench
-- Fri May 3 13:38:04 2019
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;

-- -----------------------------------------------------
-- Table `mydb`.`student`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`student` (
`stuid` INT NOT NULL,
`stdname` VARCHAR(20) NULL,
PRIMARY KEY (`stuid`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`subject`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`subject` (
`subid` INT NOT NULL,
`subname` VARCHAR(20) NULL,
PRIMARY KEY (`subid`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`student_has_subject`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`student_has_subject` (
`student_stuid` INT NOT NULL,
`subject_subid` INT NOT NULL,
PRIMARY KEY (`student_stuid`, `subject_subid`),
INDEX `fk_student_has_subject_subject1_idx` (`subject_subid` ASC) VISIBLE,
INDEX `fk_student_has_subject_student_idx` (`student_stuid` ASC) VISIBLE,
CONSTRAINT `fk_student_has_subject_student`
FOREIGN KEY (`student_stuid`)
REFERENCES `mydb`.`student` (`stuid`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_student_has_subject_subject1`
FOREIGN KEY (`subject_subid`)
REFERENCES `mydb`.`subject` (`subid`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

SQL脚本创建表

我们使用刚才导出的mydb.sql脚本来自动创建数据库表,File—>Open SQL Script->选择文件。

打开SQL脚本文件

接下来检查一下文件是否有错误,如果有旁边会有错误提示,解决相关错误提示后点击那个”闪电”图标即可自动执行该脚本文件内容。执行完后如果控制台全部是绿色的对勾则表示生成成功,点击左边数据库表上方刷新按钮。

创建成功的数据库表

最后我们打开任意一个数据库表,往里面添加一些测试数据:

添加测试数据

总结

最基本的操作过程就是如此,同样的我们可以去编辑修改数据库表的字段等操作,或者我们可以将我们创建的表导入到数据库模型中编辑继续导出SQL脚本,基本上我们常用的操作都能通过MySQL Workbench实现,它的功能远不止这些,你可以继续探索。