Prerequisites准备好后点击文件夹中的“MySQLWorkbench.exe”,打开系统界面:
界面分为3个区域,区域1用于建立数据库连接,区域2是打开过的界面的历史记录,区域3是相关网站的快捷方式。
1、 建立连接
在区域1中点击图中的加号:
在d出的界面中填写好mysql数据库的连接信息,点击“Test Connection”可以测试连接,测试成功后点击“OK”确定,首页就会产生一个连接的快捷图标。
单击图标进入连接:
如图所示的3个区域是比较常用的:
区域1:“Navigator”是一些常用功能的链接
区域2:“Schema”列出了该连接下的Schema,也就是当前连接下的库
区域3:“Query”用于书写SQL,进行查询等。进行查询的时候,先将SQL写好,选中,然后点击上方的闪电图标即可:
2 、创建Model(设计ER图)
使用workbench设计ER图也很简单。选择File ->New Model:
在新展开的页面中“Model Overview”界面双击“Add Diagram”图标:
双击后即可看到设计界面,workbench中叫EER图,其实就是增强的(enhanced)ER图。在这个界面中即可进行ER图的设计,例如添加一个table等:
注意有些信息可以进行详细设置:
3 、使用Model生成SQL语句
如果你需要sql语句,那么需要利用Model来生成。
首先打开一个Model,点击File ->Open Model,如图:
选择一个mvb类型文件,就是Model。
打开这个Model后,要生成它对应的sql语句,需要点击File ->Export ->Forward Engineer SQL CREATE SCRIPT:
打开**“Forward Engineer SQL SCRIPT”**。
使用join连表,缺陷的情况下是inner join,开发中使用的left join和right join属于outer join,outer join还包括full join现有两张表,Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的:
1.INNER JOIN 产生的结果是AB的交集
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name
2.LEFT [OUTER] JOIN 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name
3.RIGHT [OUTER] JOIN 产生表B的完全集,而A表中匹配的则有值,没有匹配的则以null值取代。
SELECT * FROM TableA RIGHT OUTER JOIN TableB ON TableA.name = TableB.name
图标如left join类似。
4.FULL [OUTER] JOIN 产生A和B的并集。对于没有匹配的记录,则会以null做为值。
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
可以通过is NULL将没有匹配的值找出来:
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
WHERE TableA.id IS null OR TableB.id IS null
5. CROSS JOIN 把表A和表B的数据进行一个N*M的组合,即笛卡尔积。如本例会产生4*4=16条记录,在开发过程中我们肯定是要过滤数据,所以这种很少用。
SELECT * FROM TableA CROSS JOIN TableB
A表和B表求乘积(即笛卡尔积)
查询的是笛卡尔乘积student(5)Xcourse(4)=20条
查询结果是:
所有限制条件where是通用的
而on只能运用于配合各种join查询
在没有限制条件的情况下相同
都是取得20条记录
限制条件下与cross基本相同。
即
以左表为主,右表不符合条件的补null
结果
以右表为主,左表不符合条件的补null
结果:
左连接可以转成右连接
on只能和各种连接联合使用select中
where可以用在各种语句上select 、insert、update、delete .....
注意
加上where条件后则不是以左表为主了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)