MySQL Workbench简易入门文档

673 阅读3分钟

MySQL Workbench简易入门文档

image.png

前言

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

创建数据库

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

image.png

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

image.png

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

image.png

设计数据库表

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

image.png

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

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

image.png

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

image.png

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

image.png

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

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

-- 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->选择文件

image.png

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

image.png

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

image.png