dbeaver book
DBeaver介绍
DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。
由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,包括:Windows、Linux、macOS 等。DBeaver 采用 Eclipse 框架开发,支持插件扩展,并且提供了许多数据库管理工具:ER 图、数据导入/导出、数据库比较、模拟数据生成等。
DBeaver 通过 JDBC 连接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQL Server、Sybase、MS Access、Teradata、Firebird、Derby 等等。商业版本更是可以支持各种 NoSQL 和大数据平台:MongoDB、InfluxDB、Apache Cassandra、Redis、Apache Hive 等。
安装
注意事项: 因为我本地的只有jdk8,而该软件需要自带的jdk14环境以上才能运行。所以安装时 默认图中的两个勾都打上 , 不要取消。
快捷键设置
高频快捷键
ctrl + enter 执行sql
ctrl +\ 执行sql,保留之前窗口结果
ctrl + shift + ↑ 向上复制一行
ctrl + shift + ↓ 向下复制一行
ctrl + d 删除当前行
ctrl + shift + F 对当前范围内的sql语句进行格式化
ctrl + / 行注释
ctrl + shift+/ 块注释
ctrl + f 查找、替换
tab 在查询结果页的某一结果行按tab,可以行转列展示,非常方便
alt + shift + a 列编辑
低频快捷键
ctrl + shift + E 执行计划
ctrl + shift + U 将选定的sql转换成大写字母
ctrl + shift + L 将选定的sql转换成小写字母
alt+↑ 向上选定一条sql语句
alt+↓ 向下选定一条sql语句
ctrl + space sql提示(并无效果)
其它快捷键
放大sql编辑器的字体:ctrl + shift + +
缩小sql编辑器的字体:ctrl + shift + -
高级复制可以直接粘贴到多行多列中
右键某个单元格作为左上角第一行第一列 | Advance Paste | Insert Multiple Row
注意事项
在执行sql过程中不要出现空白行, 不然会将空白行后的内容忽略掉.
关键字大写
解决方式: 窗口 | Editors | SQL编辑器 | SQL枚式化 | 关键字大小写 | 选中 Upper
DBeaver链接数据库,数据库表显示不全
这是因为默认"不会显示指定数据库之外的其它数据库" ,
解决方式:
21版本dbeaver 数据库 选中指定数据库配置 | 右键编辑 (或按F4) | 连接设置 | PostgreSQL | 打勾 ✔ 显示非缺省的数据库
24版本dbeaver 数据库 选中指定数据库配置 | 打勾 Show all databases (显示所有数据库)
万有链接
长按Ctrl 并将指针移到SQL中的相关表 可直接跳转到表结构中
配置使用Ctrl+R和Ctrl+T执行当前光标所在SQL语句
第一步: 删除"放弃变更"绑定的快捷键Ctrl + R
第二步:修改"执行SQL语句"快捷键成Ctrl+R
第二步:修改"在新标签页中执行SQL"快捷键成Ctrl+T
快速定位相关表
添加或修改表结构
模板快捷功能的使用
自带模板有sf , sob , swhere 等 , 比如输入sf后,按table可快速生成模板查询语句
-- 在sql编辑器中输入sf之后再按table,会直接生成以下查询语句
select * from student;
高级复制各种格式
在查询结果集中选中某些行或格,然后 右键 | 高级复制 | 可以直接转换成 excel格式、 JSON格式、SQL格式,XML格式 等等
在DBeaver中高效地管理sql文件
按下方步骤操作之后, 每将直接双击打开sql文件就可以直接连接对应的数据库, 而不必再每次都手动选择目标数据库.
查看查询管理器中保留的最近执行的历史记录
dbeaver导出数据变成讨厌的科学计数
在导出的Format settings | Exporter settings | Delimiter | 设置 \t, 如下图↓ , 注意 是 制表符+逗号
连接oracle可能遇到的情况
在使用oracle的自动下载jar包时可能遇到如下异常,代表jar包不适配当前oracle,需要手动指定
Can't create driver instance
Error creating driver 'Oracle' instance.
Most likely required jar files are missing.
You should configure jars in driver settings.
Reason: can't load driver class 'oracle.jdbc.OracleDriver'
Error creating driver 'Oracle' instance.
Most likely required jar files are missing.
You should configure jars in driver settings.
Reason: can't load driver class 'oracle.jdbc.OracleDriver'
oracle.jdbc.OracleDriver
oracle.jdbc.OracleDriver
解决方式: 手工添加对应版本的ojdbcX.jar包以适配对应的oracle服务
我的本地ojdbc8.jar位置C:\NewPrograms\Navicat Premium 15\instantclient_19_11
查看当前数据库的健康状态
选中某个数据库 | 菜单 选择数据库 | Open Dashboard (或直接按快捷键Ctrl + Shift + Alt + B)
或者直接按面板中的Dashboard图标
导出时使用数据库默认日期格式和数字
在dbeaver 21.3.3 中,导出格式可以设置了↓
右键表 | 导出数据 | 编辑格式 | 管理配置 | 使用原始日期/时间格式 | 打勾
右键表 | 导出数据 | 编辑格式 | 管理配置 | 使用原始日期/时间格式 | 禁用数字格式化
导出时发生无法导出异常
原来是我把${timestamp} 的格式 Timestamp pattern设置成了 yyyy-MM-dd HH:mm:ss , 所以导出时报了一个没有显示时分秒的异常 Illegal char <:> at index 26: bobo_student_2024-04-17
解决方式1 删除${timestamp} 变动即可
解决方式2 调整 Timestamp pattern 格式
调整 Timestamp pattern 格式 ,去掉 : , 改成 yyyy-MM-dd HH-mm-ss
将数据库改成生产者模式
改成生产者模式后 , 选中的数据库会橙色高亮显示 , 且所有增删改语句执行都默认都会暂存 ,并不会直接执行, 需要主动按Ctrl + Alt + Shift + K 手动提交才行. 或者在关闭窗口的时候选 "是" 提交当前暂存的事务.
dbeaver静置一段时间经常断开
因为dbeaver默认不保持长久连接 , 需要手动配置每隔N秒与数据库保持连接 , 设置越短越不容易断开连接, 但是对服务器压力越大, 建议配置60到120之间即可
换言之: 【编辑连接】【初始化】将【连接保持】改成120s,这样数据库就不会自己断开了
我的dbeaver脚本文件位置
C:\Users\King\AppData\Roaming\DBeaverData\workspace6\General\Scripts
20220704 205100 花了1个半小时 dbeaver抽风打不开 , 最终先备份好DBeaverData里面的脚本Scripts文件夹后, 删除C:\Users\hp\AppData\Roaming\DBeaverData目录及里面所有文件!成功打开 .
如有必要则将以前的Scripts还原到相应目录即可