MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化的Sql开发、数据库建模、以及数据库管理功能。
(1)安装最新MySql时,有是否安装MySql Workbench的选项,可选择安装。
(2)可以独立安装MySql Workbench。
官方下载地址:http://dev.mysql.com/downloads/workbench/ ,安装很简单,基本就是一路Next。
注意:一定要安装和MySql对应的版本,要不然安装后连接不上服务器,提示外部组件异常;
点击创建数据库按钮,输入数据库名称,选择编码方式,点击Apply
Workbench会自动生成SQL语句,再次点击Apply就可以成功创建数据库
成功后,在数据库列表中可以看到新建的数据库
右键新建的数据库BMI,设置为此次连接的默认数据库,接下来的所有操作都将在这个数据库下进行
将bmi下拉单展开,点击Table,右键创建Table:
给Table命名,添加Column,设置Column的Datatype,PrimaryKey等属性。点击Apply后,
Workbench仍会自动生成SQL语句,再次点击Apply,成功创建新表,在左下角可以看到:
右键想要查看的Table,选择Select Rows,即可查看表中数据:
在弹出的对话框中,Edit 菜单栏中包含三个按钮,分别为“修改”“插入”和“删除”。
成功创建数据表后,可以查看数据表的结构信息,在需要查看表结构的数据表上右击,选择 Table Inspector 选项,即可查看数据表的结构,如下图所示。
在查看数据表的对话框中,Info 标签显示了该数据表的表名、存储引擎、列数、表空间大小、创建时间、更新时间、字符集校对规则等信息,如下图所示。
在 Columns 标签显示了该表数据列的信息,包括列名、数据类型、默认值、非空标识、字符集、校对规则和使用权限等信息,如下图所示。
在需要修改表结构的数据表上右击,选择“Alter Table…”选项,即可修改数据表的基本信息和数据表结构,如下图所示。
在需要删除的数据表上右击,选择“Drop Table…”,如下图所示。
在弹出的对话框中单击 Drop Now 按钮,可以直接删除数据表,如下图所示。
当勾选PK复选框时,该列就是数据表的主键;当取消勾选 PK 复选框时,则取消该列的主键约束。
在 MySQL Workbench 中,打开修改数据表的对话框,进入 Foreign Keys 标签。
Foreign Key Name:外键名称; Referenced Table:关联的主表
Column: 选择外键字段; Referenced Column: 选择主表的关联字段
外键的约束模式:
1.set null: 闲置模式
主表记录被删除或者更改,从表相关记录的外键置为null;
2.cascade: 级联操作
主表中删除或者更新了某条信息,从表中与该表记录有关的记录也发生改变
3.district: 严格模式 no action: 和district一样
当从表中有外键数据和主表关联,主表中该条记录就不能删除或者更新
(父表不能删除或者更新一个被子表引用的记录)
设置完成之后,可以预览当前操作的 SQL 脚本,然后单击 Apply 按钮,最后在下一个弹出的对话框中直接单击 Finish 按钮,即可完成数据表 "st" 中外键的创建,如下图所示。
在外键约束的列表中,在需要删除的外键上右击,选择 Delete selected 选项,删除对应的外键,单击 Apply 按钮,即可完成删除,如下图所示。
设置完成之后,可以预览当前操作的 SQL 脚本,然后单击 Apply 按钮,最后在下一个弹出的对话框中直接单击 Finish 按钮,即可完成数据表 "st" 中外键的删除,如下图所示。
勾选 UQ 复选框时,该列就是数据表的唯一约束索引;
取消勾选 UQ 复选框时,则取消该列的唯一约束索引。
勾选 NN 复选框时,该列为数据表的非空约束;
取消勾选 NN 复选框时,则取消该列的非空约束。
在 Default/Expression 列中编辑字段的默认值。
双击NULL处,即可写入数据,点击Apply,Workbench再次自动生成SQL语句,点击Apply,即可将数据写入表中:
修改“my_table”表,给它加一个age字段。这里在“query”里面编写我们的sql语句,如下图所示。
按“ctrl+enter”执行这个语句之后,我们就会看到下方的输出部分,会显示我们这个查询执行的具体情况。
最后,找到“bmi”数据库,然后左键选择“refresh all”,刷新之后,我们就可以在my_table表中看到我们新增加的字段“age”
使用workbench设计ER图也很简单。选择File -> New Model:
在新展开的页面中“Model Overview”界面双击“Add Diagram”图标:
双击后即可看到设计界面,workbench中叫EER图,其实就是增强的(enhanced)ER图。
在这个界面中即可进行ER图的设计,例如添加一个table等:
注意有些信息可以进行详细设置:
如果你需要sql语句,那么需要利用Model来生成。
首先打开一个Model,点击File -> Open Model,如图:
选择一个mvb类型文件,就是Model。
打开这个Model后,要生成它对应的sql语句,需要点击File -> Export -> Forward Engineer SQL CREATE SCRIPT,如图:
打开“Forward Engineer SQL SCRIPT”,如图:
第一部中:
首先给将生成的sql语句文件设定位置和名称;
其次选中
“Generate DROP Statements Before Each Create Statement”
和
“Generate DROP SCHEMA”
第一个用来生成Drop Table语句,第二个用来生产Drop Schema语句,就是说在创建之前先删除原来的;
再次,点击Next。
第二部中:
选中“Export MySQL Table Objects”,然后点击下一步,如图:
第三部中:
看看生成的sql语句如果没有什么问题就点击Finish吧,如图:
根据Model生成的SQL语句就成功生成了!
注意:
当然,你也可以点击Database -> Forward Engineer来生成,步骤差不多,但要注意,这么做在生成sql语句文件的同时,数据库中的语句也被清空了,并换成了新生成的sql。换句话说,这个方法是用来生成sql语句文件同时更改原数据库中的sql的,原有文件全被清空!如果你暂时还没想清空数据库则不要用这个方式,切记!
使用workbench从库中导出ER图也很简单,在连接界面点击上方导航的Database -> Reverse Engineer,然后一路Next,这期间会让你选择要导出ER图对应的库,最后Finish,反向ER图就出来了。
在 SCHEMAS 列表中展开当前默认的 test_db 数据库,
在 Views 菜单上右击,选择“Create View…”,即可创建一个视图,如下图所示。
设置视图名称和视图的定义
设置完成之后,可以预览当前操作的 SQL 脚本
选择 Select Rows–Limit 1000 选项,即可查看视图内容
在查看视图内容的对话框中,视图内容为只读,不可修改,如下图所示。
可以在 SCHEMAS 的 Views 列表中删除视图,在需要删除的视图上右击,选择“Drop View…”,如下图所示。
在弹出的对话框中单击 Drop Now 按钮,即可直接删除视图,如下图所示。
若单击 Review SQL,则可以显示删除操作对应的 SQL 语句,单击 Execute 按钮就可以执行删除操作,如下图所示。
单击“新建存储函数”按钮,即可新建存储过程,如下图所示。
在创建存储过程的对话框中,设置存储过程的名称和存储过程的定义
设置完成之后,可以预览当前操作的 SQL 脚本
在 SCHEMAS 界面中,展开 test_db 数据库中的 Stored Procedures 目录,在新创建的存储过程 new_procedure 上右击,可以实现创建存储过程、修改存储过程、删除存储过程等操作,如下图所示。
表---> 右键Create table ---> Triggers ---> AFTER INSERT
在菜单栏中选择 Server 菜单,在展开的列表中选择 Users and Privileges 选项。
左上角的方框中显示当前数据库中的用户列表,包括数据库系统默认的用户 mysql.session、mysql.sys、root 以及自定义的用户,同时列表中还显示用户的主机名称,如 localhost。在管理界面的左下角可以单击 Add Account 按钮,即可创建一个新用户,如下图所示。
在创建用户界面,可以设置用户名称、认证类型、主机名称、用户密码和确认密码,单击 Apply 按钮,即可完成用户的创建,如下图所示。
在左侧的用户列表中,选择某个用户,即可查看用户的用户名称、认证类型、主机名称、用户密码等信息。并且可以对用户信息进行修改,修改完成后单击 Apply 按钮,即可完成用户信息的修改,如下图所示。
在用户列表的下方,可以单击 Delete 按钮删除用户,单击 Refresh 按钮刷新用户的列表,如下图所示。
剩下的就是MySQL的语法啦,可以查看下面的网址,中英文都有,内容是一样的:
中文教程:
http://www.runoob.com/mysql/mysql-insert-query.html
英文教程:
http://www.tutorialspoint.com/mysql/mysql-null-values.htm
http://c.biancheng.net/view/2625.html