Database tools and SQL 插件
IntelliJ IDEA 中的数据库管理功能由 Database tools and SQL 插件支持。 Database tools and SQL 插件支持 DataGrip 中的所有功能,DataGrip 是一个独立的数据库管理环 境(IDE),供开发人员使用。 使用 Database tools and SQL 插件,您可以查询,创建和 管理数据库。 数据库可以在本地,服务器或云端。 该插件支持 MySQL,PostgreSQL,Microsoft SQL Server,SQLite,MariaDB,Oracle,Apache Cassandra 等。
若要打开"数据库工具"窗口,请通过菜单 View | Tool Windows | Database
数据库连接
以 MySQL 为例:
- 在数据库工具窗口中(View | Tool Windows | Database)点击数据源属性图标 🔧️
- 在 Data Sources and Drivers 对话框中,点击 ➕️ ,并选择 MySQL。
- 在数据源设置区域的底部,点击 Download missing driver files 的链接。或者,您可 以为数据源指定用户驱动程序。有关用户驱动程序的更多信息,请参 见将用户驱动程序添加到现有数据库连接。
- 指定数据库连接详细信息。 或者,将 JDBC URL 粘贴在 URL 字段中。要删除密码,请右 键单击"密码"字段,然后选择"设置为空"。
- 为确保成功连接到数据源,点击 Test Connection.
实用技巧
从 JDBC URL 创建数据源
- 在数据库工具窗口中(View | Tool Windows | Database)点击数据源属性图标 🔧️
- 在 Data Sources and Drivers 对话框中,点击 ➕️ ,并选择 Data Source from URL。
- 在 URL 字段中,粘贴 JDBC URL。
- 从 Driver “驱动程序"列表中,为数据源选择必要的驱动程序。
- 为确保成功连接到数据源,点击 Test Connection
配置数据库连接
选项标签页
-
保持连接畅通: 通过在指定的时间段之后运行 keep alive 查询,可以保持与数据 库的连接处于活动状态。在 Options 选项标签页,选中 ✅️ Run keep-alive query each N seconds “每 N 秒运行一次保持活动查询"复选框,其中 N 是 IntelliJ IDEA 再 次运行保持活动查询的秒数。
-
在指定时间内断开与数据库的连接: 在 Options 标签页 勾选 ✅️ Auto-disconnect after N seconds
-
在建立连接时运行预定义的查询: 每次建立连接时,都可以运行预定义的查询。在 Options 标签页的 Startup script 指定要运行的查询。
-
刷新数据库状态: 如果有人更改了远程数据库数据或视图,则数据库的本地视图可 能与数据库的实际状态不同。我们可以在 Options 标签页 勾选 ✅️ Auto sync;或者在 数据库工具窗口中点击 🔄️ 来手动更新。
-
以只读模式连接: 勾选 ✅️ Read-only。
-
单连接方式: 单连接模式意味着数据源和所有 Query console(查询控制台)使用同一 个连接。此模式允许您查看数据库树中的临时对象,或在不同查询控制台中使用同一事务 。应用单连接模式时,必须关闭所有现有的打开的连接。勾选 ✅️ Single connection mode.
如果清除"单一连接模式"复选框,则每个新查询控制台都会创建一个新连接。
-
单数据库模式:当您连接到数据源时,IntelliJ IDEA 可以检索并显示该数据源具有的所 有数据库。 但是在某些情况下(例如,使用 PgBouncer 的某些设置),您可以或被允许 仅使用特定的数据库。 勾选 ✅️Single database mode(单数据库模式)后,您在数据 库树视图中只会看到在连接设置中指定的数据库,而不是从数据源接收到的所有数据库。
-
Time zone: 设置时区
Schemas 标签页
使用对象过滤器过滤对象:
- Object filter: 格式
<type>:[-]<pattern>
<type>
可以是:aggregate, collation, event, fdw, ftable, mview, operator, package, role, routine, sequence, synonym, table, user, view, vtable<pattern>
是正则表达式:要排除某个 item,请在前面加上-(减号)。
SSH/SSL 标签页
使用 SSH 连接到数据库
- 勾选 ✅️Use SSH tunnel
- 点击下拉箭头,选择现有 ssh configuration
- 或点击 … ,来添加新的 ssh configuration
管理连接会话
连接是物理通信通道。 会话是信息交换的一种状态。 一个连接可以有多个会话。 当您使 用客户端应用程序连接到数据库服务器时,双方将建立一个会话来交换信息。
在上图的服务工具窗口中,您可以查看
- 数据源(1)
- 连接会话(2)
- 附件(3)
小绿灯亮表示正在与数据源进行交互。
如下表格包含可用于处理会话的基本操作:
- 创建到数据源的连接会话: 点击 session 列表并选择 New session。
- 附加到现有连接会话:
- 将会话或数据源移动到单独的选项卡:
在 IntelliJ IDEA 中,您可以定义以下数据源:
- 数据库数据源:包含数据的可操作数据库(请参阅数据库连接)。
- 数据定义语言(DDL)文件:包含数据定义语言语句的 SQL 文件。
执行 SQL 语句
从打开的文件运行语句
双击打开项目中的 SQL 文件,选择运行的语句与方式。
在 IntelliJ IDEA 中,您可以打开并运行文件。 文件大小限制为 20 MB。 当您打开一 个大于 20 MB 的文件时,您只会看到文件的前 2.5 MB。
从<session>
列表中,您可以将另一个会话与文件关联,或删除文件与会话之间的关联
(Detach Session 分离会话)。 另外,您可以通过从文件的上下文菜单中选择 Attach
Session “附加会话"来将会话与文件关联。
为 SQL 文件配置方言
为了获得更好的编码帮助,请将 SQL 方言分配给 SQL 文件。 SQL 方言是特定于 DBMS 的 SQL 版本。
IntelliJ IDEA 允许您为单个文件或目录,项目或计算机中的所有 SQL 和 DDL 文件指定 SQL 方言。
为单个 SQL 文件指定一种方言:
- 单击窗口右上角的方言列表。
- 从方言列表中选择一种方言。
为多个 SQL 文件指定一种方言:
- 单击窗口右上角的方言列表。
- 选择 SQL 方言(SQL Dialects)。
- 在"SQL 方言"对话框中,单击"添加 ➕️"按钮,然后选择要更改方言的目录或文件。
- 点击 Open
- 单击” SQL 方言"单元格,然后选择所需的方言。
- 应用更改并单击"确定”。
从硬盘运行 SQL 文件
为多个数据源运行同一个 SQL 文件
- 在 Project 窗口中选中文件,右键选择 “Run <configuration_name>” 此操作将创建一 个临时的运行配置
- 在"编辑配置"窗口中,单击"➕️"按钮并选择数据源或方案。
- 点击 Run
在查询控制台中执行语句
创建数据源时,将自动创建查询控制台。 有关数据库控制台的更多信息,请参 见查询控制台。
您可以将查询控制台与在其中键入并运行代码的终端相关联。
- 在数据库工具窗口中(View | Tool Windows | Database),点击数据源
- 打开
F4
或创建(Ctrl + Shift + F10 | New Console)查询控制台。 - 键入或粘贴要执行的语句。
- 按
Ctrl + Enter
。 或者,单击工具栏上的执行图标(绿色三角形)。
通过运行配置来运行文件
- 打开运行/调试配置对话框
- 在"运行/调试配置"对话框中,单击"添加新配置"图标(➕️),然后选择” SQL 脚本"。
- 应用更改并关闭对话框。
查看已执行语句的历史记录
IntelliJ IDEA 存储您运行的所有语句的历史记录。
要打开"历史记录"对话框,请单击 🕓️ 或按Ctrl+Alt+E
。
在"历史记录"对话框中,可以执行以下操作:
- 要筛选信息,请开始键入搜索查询。
- 要将查询从"历史记录"对话框粘贴到控制台,请双击"历史记录"对话框左侧窗格中的查询 。
- 要从历史记录中删除记录,请选择该记录并按 delete。
提示和技巧
从搜索对话框执行文件:
- 双击两次 Shift
- 在"Search Everywhere"对话框中,键入文件名。
- 使用上下箭头选择文件。
- 按 Ctrl+Shift+F10.
- 在"编辑配置"窗口中,单击"添加"按钮(➕️),然后选择数据源或方案。
执行参数化语句:
如果语句中有参数,则必须在执行语句之前指定参数的值。
要执行参数化的语句,请单击工具栏上的"执行"按钮,然后在第二栏中输入值。 或者,想 要打开"参数"对话框,请单击"查看参数"按钮。
将 SELECT 语句的结果保存到文件中:
- (可选)如果文件未连接到数据源,请从工具栏上的数据源列表中选择一个数据源。 然 后从"会话"列表中选择连接会话。
- 在 SELECT 语句上单击鼠标右键。
- 选择 Execute to File 并选择输出格式。
- 在"转储数据"对话框中,指定要使用的提取器和其他设置。
运行存储过程:
存储过程是一组具有指定名称的 SQL 语句。 您可以在 PostgreSQL,Microsoft SQL Server,Oracle 和 MySQL 中执行存储过程。
- 右键单击要执行的存储函数。
- 在"执行例程"窗口中,键入所有必要的参数值,然后单击"确定"。
向数据库提交更改
在 IntelliJ IDEA 中,您可以选择提交事务的方式:自动提交还是手动提交。要更改提交
模式,,请使用工具栏上的Tx
下拉菜单。
提交模式设置为"自动"时;行或列的每次更改都是隐式提交的,并且无法回滚。 在自动提 交模式下,“提交"和"回滚"按钮被禁用。
还原更改:
- 提交更改之前 ,您可以还原它们。
- revert 命令的范围由表中的当前选择定义:该命令仅适用于选择中的更改。 因此,您可 以还原单个更改,一组更改或所有更改。 如果当前未选择任何内容,则将还原命令应用 于整个表。
提示:
若要确保不通过提交过期对象来删除某人的工作,请启用"编辑过期 DDL 时发出警告 “(Warn when editing outdated DDL)选项。
- 在"数据库工具"窗口 (View | Tool Windows | Database),中,在数据源上单击鼠标右键 ,然后选择"属性”。
- 在弹出的窗口中,点击 Options
- 勾选 ✅️ Warn when editing outdated DDL
数据库设计
表
使用 IntelliJ IDEA,可以对表执行数据操作和数据定义操作。
我们可以右键数据库 👉🏻️ New 👉🏻️ Table 来新建一个表。
当然我们也可:
- 删除某个表
- 修改表
- 过滤
- 浏览数据:在"数据库"工具窗口(“视图” |“工具"窗口|“数据库”)中双击表时,该表将 在数据编辑器中打开。 您可以以多种模式浏览和编辑表数据:表,树,文本和转置(行 和列交换的查看模式)。你可以点击 👁️ 按钮来切换模式。
- 比较
- 导出数据
除了表, IntelliJ IDEA 还支持对一下项目进行定义和操作:
- 列 Columns: 我们可以添加、删除、修改列,对列拖动排序,隐藏、显式列;您可 以为整个列分配一种语言(例如 HTML,CSS,XML,RegExp 等)。 因此,当您在属于该 列的单元格中有一段代码时,可以使用代码生成,代码补全和其他功能
- 行 Rows: 我们可以添加、删除、修改、复制行
- 单元格 Cells: 您可以在上下文菜单下找到使用单元格的所有基本操作。 要调用上 下文菜单,请右键单击要修改的单元格。
- 索引 indexes: 添加索引
- 外键 Forign Keys: 添加外键
- Schemas: 创建 Schema 等
- 用户与角色:
查询控制台
查询或数据库控制台是可以在其中编写和执行 SQL 语句的 SQL 文件。与临时文件不同,控 制台附加到数据源。您可以像使用终端一样使用查询控制台,只需键入并运行 SQL 代码即 可。
创建关系图
创建方式见下图:
显示和添加执行计划:
执行计划是一组步骤,它被用来访问数据库中的数据。 IntelliJ IDEA 支持两种类型的执 行计划:
- 说明计划:结果在专用的"计划"选项卡上以树和表的混合格式显示。 您可以单击"显示可 视化"图标(Show Visualization)创建一个可视化查询执行的图表。
- 解释计划(原始):结果以表格格式显示。
要创建执行计划,请在编辑器中右键单击查询,然后选择"解释计划”。 如果要为查询创建 图,请单击"显示可视化"图标()。
DataGrip
DataGrip 是一个跨平台的独立的数据库管理 IDE,可在 Windows,macOS 和 Linux 操作系 统上提供一致的体验。
您最多可以评估 DataGrip 30 天。 之后,您需要购买并注册许可证。
还有部分内容未补充,比如导入导出数据等