EZDML 数据建模

超轻量级的免费数据建模工具

0%

EZDML的数据查询SQL工具介绍

EZDML自带了一个SQL查询工具,当然它比较简单,不能代替我们常用的开发工具,但在救急时也能当个临时工,同时它跟模型结合来做一些数据查询操作也非常方便。接下来我们以之前导入过的MES模型为例简单介绍一下。

以下内容使用EZDML 3.48版进行说明。

SQL工具基本使用

打开之前导入的章鱼师兄的MES(生产制造管理系统)数据模型(参见《EZDML逆向工程导入数据库分析实操教程》),执行主菜单“工具|SQL工具”命令,并连接数据库:

连接后,右边会显示对象列表:

SQL工具顾名思义就是输入SQL执行获取结果的工具。当然你可以手工输入SQL执行,不过其实没必要装这个X,我们选中sp_bom,右键查询就好:

EZDML会自动生成表的查询select SQL,其中记录行数限制25,这个25可以在菜单“工具|设置|SQL生成|预览表数据”中修改。

可以看到,虽然SQL中没有输入中文逻辑名,但结果展示时列头上仍然会有中文名,这是因为EZDML分析出了表名sp_bom,并自动在模型中找到了对应的字段,将其中文名称匹配出来了:

单记录属性列表

表格的右上角有个“显示内容面板”的小按钮,点一下会显示一个属性列表,方便查看单一记录:

表格与属性列表是联动的,点击表格的任一单元格,记录属性都会相应变化,反之亦然:

语法高亮和自动完成

从3.56版起,SQL工具支持语法高亮和自动完成提示,比如提示表名:

提示字段名:

注:如果连接了数据库,且右边的对象列表有列出表名,则可以同时对数据库中的表字段进行提示。

格式化

支持简单的SQL格式化,如上述SQL格式化的结果:

数据编辑

表格和表单都支持数据编辑,编辑完后切换一下记录就可以直接提交:

多行文本查看编辑

有些字段(如备注)可能会需要输入多行,这时可以在单元格上点右键,执行弹出菜单命令“查看/修改值”:

会弹出个输入框,比如我们输入几行内容:

确定后修改结果会显示,但不完整:

当然可以再次右键“查看/修改值”弹出来看,但如果有很多单元格要查看编辑,一个个点开就很麻烦,这时我们可以再次点击右上角的“显示内容面板”的小按钮(重复点击会切换各内容面板的显示/隐藏),界面会切换为显示单个字段,我们可以直接在这里查看/编辑:

模型表数据查看

前面我们是从数据库里拉表SQL出来查看,但其实不需要这么麻烦,如果表已经在模型里了,双击模型中的表就可以查看,比如还是sp_bom这个表,我们在模型中双击打开它的属性:

然后我们切换到“数据”页;默认可能没有显示数据查看页,我们点击右上角的下拉菜单中的“数据”,即可查看数据(数据库需要预先连接):

同样可以切换显示单记录属性列表:

查询关联表数据

由于我们已经在模型里建立表对象之间的关系,因此SQL工具中可以轻松地查询关联表的数据。比如我们在sp_bom的数据结果中选中一个单元格,右键弹出菜单,其中“查询关联表”的下面,会针对当前记录列出所有关联表的查询条件:

点击其中一个条件后,弹出新的SQL工具界面,自动执行相应的SQL,显示相关结果:

重点来了,在这个新的SQL工具里,我们仍然可以右键查询当前SQL记录的关联表数据:

这样就可以一直玩下去了。

复制结果

除了字段数据本身,SQL工具还可以复制很多内容,大家在右键菜单里也看到了,以下图为例,可以复制以下内容:

  • 字段名 = 字段值——其实就是以当前选中单元格内容作为SQL的where过滤条件来复制了,只是为了方便我们写SQL

    示例复制结果:bom_code = ‘bbbbb’

    这个例子举得不太好,因为复制字符串值其实没什么意义,有时手敲更快;但复制日期就比较有用了,如:

    create_time = STR_TO_DATE(‘2020-6-4 15:39:07’,’%Y-%m-%d %H:%i:%s’)

  • 复制记录——复制当前记录的所有字段+值

    示例复制结果:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    id:                1268447170115383298
    bom_code: bbbbb
    materiel_code: t002
    materiel_desc: t002
    remark:
    version_number: 1
    state:
    factory:
    is_deleted: 0
    create_time: 2020/6/4 15:39:07
    create_username: admin
    update_time: 2020/7/16 11:17:20
    update_username: admin
  • 复制为insert语句(当前记录)——会弹出选择数据库类型,然后生成当前记录的insert语句

    以MYSQL为例,复制结果如下:

    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
    insert into sp_bom(
    id,
    bom_code,
    materiel_code,
    materiel_desc,
    remark,
    version_number,
    state,
    factory,
    is_deleted,
    create_time,
    create_username,
    update_time,
    update_username
    ) values (
    '1268447170115383298',
    'bbbbb',
    't002',
    't002',
    null,
    '1',
    null,
    null,
    '0',
    STR_TO_DATE('2020-06-04 15:39:07','%Y-%m-%d %H:%i:%s'),
    'admin',
    STR_TO_DATE('2020-07-16 11:17:20','%Y-%m-%d %H:%i:%s'),
    'admin'
    );
  • 复制为insert语句(所有记录)——这个生成格式跟上面差不多,只不过是循环遍历所有记录,相当于是导出整个表格了

    示例结果太长,就不贴上来了。

  • 复制为update语句(当前记录)——这个是V3.52版增加的功能,复制结果示例如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    update sp_bom set
    bom_code = 'bbbbb',
    materiel_code = 't002',
    materiel_desc = 't002',
    remark = null,
    version_number = '1',
    state = null,
    factory = null,
    is_deleted = '0',
    create_time = to_date('2020-06-04 15:39:07','yyyy-mm-dd HH24:mi:ss'),
    create_username = 'admin',
    update_time = to_date('2020-07-16 11:17:20','yyyy-mm-dd HH24:mi:ss'),
    update_username = 'admin'
    where id = '1268447170115383298';
  • 复制为update语句(所有记录)——循环遍历所有记录生成update SQL然后拼一起,具体结果略。

  • 复制为JSON语句(当前记录)——这个是V3.53版增加的功能,复制结果示例如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {
    "id": "1268447170115383298",
    "bom_code": "bbbbb",
    "materiel_code": "t002",
    "materiel_desc": "t002",
    "remark": "",
    "version_number": "1",
    "state": null,
    "factory": null,
    "is_deleted": "0",
    "create_time": "2020-06-04 15:39:07",
    "create_username": "admin",
    "update_time": "2020-07-16 11:17:20",
    "update_username": "admin"
    }
  • 复制为JSON(所有记录)——循环遍历所有记录生成JSON然后拼一起形成一个JSON列表,具体结果略。

  • 复制列——嗯,就是字面上的意思

    示例结果:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    bbbbb
    0001
    测试
    打算
    阿斯顿发送到
    77
    001
    A0001
    Y001
    dc001
    11111
    001
    333
    111222333
  • 复制全部——这个是方便复制到EXCEL

    示例结果:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    id	bom_code	materiel_code	materiel_desc	remark	version_number	state	factory	is_deleted	create_time	create_username	update_time	update_username
    1268447170115383298 bbbbb t002 t002 1 0 2020/6/4 15:39:07 admin 2020/7/16 11:17:20 admin
    1268811409925582850 0001 2019001 电子元件 1 0 2020/6/5 15:46:28 admin 2020/7/16 13:30:08 admin
    1270189758686146562 测试 123 123 1 EzDml是一款国产免费的轻量级数据建模工具
    2 它具有轻巧、快速、简便而功能强大的特点
    3 可轻松地进行数据库表结构设计
    4 建立界面数据模型
    5 支持通过自定义脚本模板生成测试数据、界面原型和前后端代码文件 1 0 2020/6/9 11:03:32 admin 2020/7/4 15:32:47 admin
    1272019534564536322 打算 123 123 1 2 2020/6/14 12:14:25 admin 2020/7/9 15:10:38 admin
    1272783744282112002 阿斯顿发送到 t002 t002 1 0 2020/6/16 14:51:06 admin 2020/6/16 14:51:06 admin
    1276415594372247554 77 123 123 1 0 2020/6/26 15:22:47 admin 2020/7/8 15:30:46 admin
    1276535719725346818 001 123 123 1 0 2020/6/26 23:20:07 admin 2020/6/26 23:20:07 admin
    1277125952237973506 A0001 t002 t002 1 0 2020/6/28 14:25:30 admin 2020/6/28 14:25:30 admin
    1277599659653836802 Y001 Y001 Y001 1 0 2020/6/29 21:47:50 admin 2020/6/29 21:47:50 admin
    1278528374608998401 dc001 Y001 Y001 Hello123 1 0 2020/7/2 11:18:13 admin 2020/7/2 11:18:13 admin
    1280124062753075202 11111 002-2918 曲轴 11111 1 0 2020/7/6 20:58:55 admin 2020/7/6 20:58:55 admin
    1281490436289179649 001 002-2918 曲轴 1 0 2020/7/10 15:28:24 admin 2020/7/10 15:28:24 admin
    1283634934423203842 333 2019001 电子元件 1 0 2020/7/16 13:29:52 admin 2020/7/16 13:29:52 admin
    1548645269971750914 111222333 000001 成品测试 huz测试2022 0 2022/7/17 12:26:19 admin 2022/7/17 12:26:19 admin

粘贴结果

从3.56版起,SQL工具支持粘贴EXCEL和JSON结果,具有简单的导入导出功能。

EXCEL粘贴会对准当前单元格进行区块覆盖,JSON则是对字段名进行匹配导入。

特别说明

EZDML自带的SQL工具本身设计是用来执行DDL生成数据库的,查询数据只是顺便附送的功能,不支持事务,每次执行SQL都会COMMIT(直接通过表格修改数据可能需要手工执行COMMIT),因此不要在这里作复杂的事务操作。

另外工具比较简单粗糙,用它来执行insert update 粘贴导入等操作有可能会导致数据丢失,建议只用来查看数据。如确实要修改数据,请做好数据备份工作。

使用本工具导致任何损失作者均不承担任何责任!