阅读(2106) (11)

IntelliJ IDEA数据库:使用查询结果

2018-05-21 14:05:55 更新

使用查询结果

此功能仅在Ultimate版本中受支持。

在控制台中运行查询(SELECT语句)时,从数据库中检索的数据将以表格格式显示在“数据库控制台(Database Console)”工具窗口的“结果(Result )”窗格中。根据设置,每个查询都会打开一个新的“结果(Result )”选项卡,或者使用同一个选项卡。在后一种情况下,选项卡上的结果会针对每个下一个查询进行更新。

使用“结果(Result )”窗格对数据进行排序、添加、编辑和删除以及执行其他相关任务。

隐藏或显示工具栏

隐藏或显示“结果(Result )”窗格的工具栏以及数据库控制台工具窗口的工具栏:

  • 单击数据库控制台工具窗口标题栏上的 , 然后单击“显示工具栏(Show Toolbar)”。

固定结果选项卡

如果使用同一个选项卡显示查询结果,并获得想要保留的结果,则可以将选项卡固定到工具窗口。执行以下操作之一:

  • 右键单击该选项卡,然后选择“固定标签(Pin Tab)”。
  • 点击工具栏上的
    IntelliJ IDEA数据库:使用查询结果

在行的子集之间切换

如果当前仅显示满足查询的行的子集,则要在子集之间切换,请使用:

  • :第一页
  • :上一页 ( Ctrl+Alt+Up )
  • :下一页 ( Ctrl+Alt+Down )
  • :最后一页

同时显示所有行

如果您希望同时显示满足查询的所有行:

  1. 点击数据库控制台工具窗口工具栏上的
  2. 切换到“数据库|数据视图(Database | Data Views)”页面,在“结果集页面大小(Result set page size)”字段中指定0,然后单击“确定”。
  3. 点击 或按Ctrl+F5刷新表格视图。

导航到指定的行

要切换到具有指定编号的行:

  1. 执行以下操作之一:
    • 按Ctrl+G。
    • 右键单击表格并从上下文菜单中选择:转到|行(Go To | Row)。
    • 从主菜单中选择:导航|行(Navigate | Row)。
  2. 在打开的对话框中,指定行号并单击“确定”。

浏览相关记录

如果某行引用了其他表中的记录或在其他表中引用了某一行,则可以切换到相应的表以查看相关记录。

切换到引用的行:

  1. 执行以下操作之一:
    • 按Ctrl+B。
    • 从上下文菜单中选择:转到|引用数据(Go To | Referenced Data)。
  2. 如果引用了多个记录,请在出现的弹出窗口中选择目标记录。

切换到引用当前项的行,或查看引用当前项的所有行:

  1. 执行以下操作之一:
    • 按Alt+F7。
    • 从上下文菜单中选择:转到|引用数据(Go To | Referenced Data)。
  2. 选择以下类别之一的目标:
    • 第一个引用行。 将显示相应表中的所有行,并选择引用当前行的第一行。
    • 所有引用行。 只显示引用当前行的行。

上述选项也可以通过使用以下选项之一来访问:

  • 按F4。
  • 在上下文菜单中选择:转到|相关数据(Go To | Related Data)。
  • 在主菜单中:导航|相关数据(Navigate | Related Data)。

排序数据

您可以通过单击标题行中的单元格来对任何列的表格数据进行排序。

此行中的每个单元格在右侧都有一个排序标记,最初,单元格可能如下所示: 。在这种情况下,排序标记表示数据未按此列排序。

如果单击单元格一次,数据按照升序排列的相应列。这由排序标记外观表明: 。标记右侧的数字(图片上的1)是排序级别。(您可以按多个列进行排序,在这种情况下,不同的列将具有不同的排序级别。)

当您再次单击单元格时,数据按降序排序。这里是排序标记如何表示这个顺序:

最后,当你第三次点击这个单元格时,将使用初始状态。也就是说,按照相应的列排序被取消:

重新排序列

要对列重新排序,请对标题行中的相应单元格使用拖放操作。

IntelliJ IDEA数据库:使用查询结果

隐藏和显示列

要隐藏列,请右键单击相应的标题单元格,然后选择“隐藏列(Hide column)”。

要显示一个隐藏的列:

  1. 执行以下操作之一:
    • 右键单击标题行中的任意单元格,然后选择“列列表(Column List)”。
    • 按Ctrl+F12。
    • 在出现的列表中,显示隐藏列的名称。
      IntelliJ IDEA数据库:使用查询结果
  2. 选择(突出显示)感兴趣的列名称,然后按Space。
  3. 按Enter或Escape关闭列表。

恢复初始表格视图

单击工具栏上的 并选择“重置视图(Reset View)”以在重新排序或隐藏列或对数据进行排序后恢复初始表视图。因此,数据通常会变为未排序,列将按照它们在相应查询中定义的顺序显示,并显示所有列。

使用Structure视图对数据进行排序,并隐藏和显示列

使用“结果(Result)”窗格时,表结构视图可用作相应的弹出窗口。

结构(structure)视图显示所有列的列表,并让您对数据进行排序以及隐藏和显示列。

要打开结构弹出窗口,请执行以下操作之一:

  • 右键单击表格标题行中的单元格,然后选择“列列表(Column List)”。
  • 按Ctrl+F12。

在弹出窗口中,选择感兴趣的列并执行以下操作之一:

  • 按升序对此列中的数据进行排序,按Shift+Alt+Up。
  • 要按降序对数据进行排序,请按Shift+Alt+Down。
  • 要取消此列的排序,请按Ctrl+Shift+Alt+Backspace。
  • 要隐藏列(或显示隐藏列),请按Space。(显示隐藏列的名字。)
    IntelliJ IDEA数据库:使用查询结果

用于排序表的数据(快捷方式:Shift+Alt+Up,Shift+Alt+Down和Ctrl+Shift+Alt+Backspace)可以在结果窗格中被使用,而无需打开结构图。

使用快速文档视图

快速文档视图提供了有关所选单元格中值的详细信息。例如,如果一个单元格包含长文本,通常只能看到其开头。整个文本显示在快速文档视图中。

IntelliJ IDEA数据库:使用查询结果

如果单元格包含图像,则可以在快速文档视图中查看该图像。

IntelliJ IDEA数据库:使用查询结果

您还可以查看当前记录中引用的记录以及引用当前记录的记录。

IntelliJ IDEA数据库:使用查询结果

如有必要,您可以切换到转置视图。这是行和列互换的时候。因此,对于一排,单元格显示为在另一列之下。

IntelliJ IDEA数据库:使用查询结果

要打开快速文档视图,请按下Ctrl+Q或从视图或上下文菜单中选择“快速文档(Quick Documentation)”。

要切换到转置视图,请单击“转置视图(Transposed View)”。

要关闭快速文档视图,请按Escape。

转置表格

已经转置的表视图可用。在这个视图中,行和列是互换的。

要打开或关闭此视图,请单击工具栏上的 ,然后选择“转置(Transpose)”。或者,使用上下文菜单中的“转置(Transpose)”命令。

为列启用编码协助

您可以为列分配一种支持的语言(例如:SQL,HTML或XML):右键单击相应的标题单元格,选择“编辑为(Edit As)”并选择语言。因此,您可以在相应列的所有单元格中为所选语言获得编码帮助。

您也可以将语言分配给单个单元格。

选择单元格和范围:使用不明显的技术

添加具有相同内容的单元格。选择一个单元格。现在,要添加具有相同内容的最近的单元格到选择中,请按Alt+J。(在查找相应的单元格时,IntelliJ IDEA将向下移动),每按一次Alt+J,都会将向所选内容添加另一个单元格。

从一个接一个地从选区中删除单元格 - 从最后一个选中的单元格开始-使用Shift+Alt+J。

如果最初选择同一行中的多个单元格,则Alt+J和Shift+Alt+J的工作方式相同。

展开选区:单元格-列-行-表(cell - column - row - table)。选择一个单元格。现在,要选择当前列中的所有单元格,请按Ctrl+W。第二次按Ctrl+W将取消选择列并选择当前行中的所有单元格。最后,第三次按下Ctrl+W选择整个表格。

如果最初选择了多个单元格或某个区域,则Ctrl+W的工作原理类似。

修改单元格内容

您可以修改表格单元格中的值,并在适当情况下上传文件。

  1. 要开始编辑值或上传文件,请执行以下操作之一:
    • 双击相应的表格单元格。
    • 右键单击该单元格,然后从上下文菜单中选择“编辑(Edit)”或“编辑最大化(Edit Maximized)”。
    • 选择单元格,然后按F2或Shift+Enter。在后一种情况下,单元格将被最大化。
    • 选择单元格并开始输入。请注意,在这种情况下,初始单元格内容将立即被删除,并被替换为键入的值。
  2. 在编辑模式下,您可以:
    • 修改单元格中的值。要开始新行,请使用Ctrl+Enter。要输入值,请按Enter。要恢复初始值并退出编辑模式,请按Escape。
      IntelliJ IDEA数据库:使用查询结果
    • 使用值完成。按Ctrl+Space打开建议列表。该列表包含当前列中与您的输入相匹配的值。
    • 如果您需要更多编辑空间,请最大化单元格。要做到这一点,请按Ctrl+Shift+Alt+M,或右键单击单元格并选择最大化。在最大化单元格中工作时,使用Enter开始新行,使用Ctrl+Enter输入值。要恢复初始值并退出编辑模式,请按Escape。
      IntelliJ IDEA数据库:使用查询结果
    • 将文件上传到字段中(例如,用新文件替换现有文件)。为此,请右键单击该单元并选择“加载文件(Load File)”。然后在打开的对话框中选择必要的文件。
      如果某个字段可以包含文本,则可以使用此函数将文本文件的内容插入到该字段中。
    • 将当前值替换为默认值或null(如果适用)。为此,请右键单击该单元格,然后选择设置默认(Set DEFAULT)或设置空值(Set NULL)。
    • 使用其中一种支持的语言(例如:SQL,HTML或XML)将单元格中的值编辑为片段。为此,请右键单击单元格,选择编辑为并选择语言。因此,您可以获得所选语言的编码帮助。
      IntelliJ IDEA数据库:使用查询结果
  3. 要完成此任务,您可能需要提交更改。

一次修改多个单元格中的值

您可以一次修改多个单元格中的值:

  1. 选择感兴趣的一个或多个范围。
  2. 开始编辑该值:从上下文菜单中选择“编辑(Edit)”,按F2或直接开始输入。只有当这些单元格可以包含相同的值时,这些更改才会应用于所有选定的单元格。
  3. 要输入值,请按Enter。要取消编辑,请按Escape。
  4. 要完成此任务,您可能需要提交更改。

添加一行

如果在工具栏上启用 ,则可以将行添加到表中。

  1. 要开始添加行,请执行以下操作之一:
    • 点击工具栏上的
    • 右键单击该表并从上下文菜单中选择:添加新行(Add New Row)。
    • 按Alt+Insert。
    请注意,上下文菜单克隆行(Clone Row)命令(Ctrl+D)可以用作替代。
  2. 将值输入到单元格中。
  3. 要保存新行,请从上下文菜单中选择“提交(Submit)”或按Ctrl+Enter。

删除行

如果在工具栏上启用 ,您可以删除行。要做到这一点:

  1. 选择您想要删除的行。通过单击显示行号的列中的单元格来选择行。要选择多行,请将鼠标点击与Ctrl键结合使用。
  2. 执行以下操作之一:
    • 点击工具栏上的
    • 按Ctrl+Y或Delete。
  3. 将更改提交给服务器或确认您打算删除所选的一行或多行。

提交和恢复更改

IntelliJ IDEA允许您指定对表中数据所做的更改如何提交给数据库服务器。对此,有立即提交更改选项。

默认情况下,该选项关闭。因此,除非您执行“提交(Submit)”命令(在工具栏上的 , 在上下文菜单中使用“提交(Submit)”或Ctrl+Enter), 否则这些更改将在IntelliJ IDEA中累积。在提交更改之前,您可以还原它们(在上下文菜单中还原Ctrl+Z)。

表格的更改一次全部提交。

Revert命令的作用域由表中的当前选择定义:该命令仅应用于选择内的更改。因此,您可以恢复个人更改,一组更改或所有更改。

如果当前未选择任何项, 则将"还原(Revert)"命令应用于整个表。

要还原更改,如果选择手动提交模式,您也可以使用 或回滚(Rollback)命令。

未提交的更改将突出显示。新行为绿色,值改变的单元格为蓝色,而要删除的行为灰色。

如果“立即提交更改(Submit changes immediately)”选项处于打开状态,则会立即提交更改,并且通常不需要使用“提交(Submit)”命令。

管理数据库事务

您可以选择自动或手动提交交易。要更改提交模式,请使用工具栏上的Tx开关

IntelliJ IDEA数据库:使用查询结果

如果提交模式设置为自动(Auto),则每次更改值或添加或删除行时( 提交给数据库服务器时)都会隐式提交并且无法回滚。

如果提交模式设置为手动(Manual),您已经提交给服务器的更改可以通过  iconDBCommitTransaction 或  iconDBRollbackTransaction 工具栏上的 ,或者上下文菜单的“提交(Commit)”和“回滚(Rollback)”命令来显式提交或回滚。

Tx开关还可用于选择事务的隔离级别。

比较表格

您可以将当前表与任何其他在数据编辑器中打开或在数据库控制台工具窗口中显示的表进行比较。要做到这一点,请点击工具栏上的 并选择感兴趣的表格。

比较结果显示在差异查看器中。

要比较一个表格中两个或三个单元格的内容,请选择它们并按下Ctrl+Shift+D或从上下文菜单中选择“比较单元格(Compare Cells)”。

IntelliJ IDEA数据库:使用查询结果

将表格数据复制到剪贴板或将其保存在文件中

将表格数据复制到剪贴板或将其保存在文件中时,数据将转换为其中一种可用的输出格式。这可以是SQL INSERT或UPDATE语句,TSV或CSV,HTML表格或JSON数据。

要复制或保存数据,请使用:

  • 复制(Copy):可在编辑(Edit)和上下文菜单中使用,键盘按键等同于Ctrl+C。该命令将选定单元格的数据复制到剪贴板上。
  • 转储数据|到剪贴板(Dump Data | To Clipboard):在上下文菜单中可用,也可以通过工具栏上的 方式访问。该命令将整个表的数据复制到剪贴板上。
  • 转储数据|到文件(Dump Data | To File):在上下文菜单中可用,也可以通过工具栏上的 方式访问。该命令将整个表的数据保存在一个文件中。在实际保存数据之前,会显示对话框,让您选择输出格式并查看数据在文件中的外观。

复制和粘贴数据:数据类型在必要时进行转换

您可以复制(Ctrl+C)并粘贴(Ctrl+V)所选单元格和单元格范围 - 在同一个表格内或从一个表格到另一个表格。粘贴时,IntelliJ IDEA会根据需要自动转换数据类型。

指定数据输出格式和选项

要指定复制和转储数据命令的输出格式和选项(请参阅上文中的“将表格数据复制到剪贴板或将其保存在文件中”),请执行以下操作之一:

  • 点击工具栏上的
  • 右键单击该表并指向Data Extractor:<current_format>。

在打开的菜单中,输出格式位于上部:SQL Inserts,SQL Updates(类似于文件名称的选项也是输出格式,更准确地说,实现相应数据转换器的脚本。)

输出选项是:

  • 允许转置。此选项仅影响分隔符分隔的值格式(TSV,CSV)。如果该表显示为转置并且您正在将选定的单元格或行复制到剪贴板(例如,Ctrl+C),则选择将被转置;如果选项处于打开状态并且未转置(如原始表格中),则相反。
  • 跳过生成的列(SQL)。 这是SQL INSERT和UPDATE的选项。启用时,不包括自动递增字段。
  • 添加表定义(SQL)。 这也是SQL INSERT和UPDATE的选项。启用时,将添加表定义(CREATE TABLE)。

另外:

  • 配置CSV格式。该命令将打开“CSV格式”对话框,该对话框允许您管理以分隔符分隔的值格式(例如:CSV,TSV)。
  • 转到脚本目录。通过此命令可以切换到存储将表格数据转换为各种输出格式的脚本的目录。

将数据导出到另一个表,模式或数据库

您可以将数据导出到另一个表,模式或数据库:

  1. 执行以下操作之一:
    • 点击工具栏上的
    • 从上下文菜单中选择“导出到数据库(Export to Database)”。
  2. 选择目标模式(将创建一个新表)或表(数据将被添加到选定的表)。
  3. 在打开的对话框中,指定数据映射信息和目标表的设置。

将LOB保存在文件中

如果单元格包含二进制大对象 (又名,BLOB或LOB),则可以将这样的LOB保存在文件中。

  1. 右键单击包含感兴趣的LOB的单元格,然后选择“将LOB保存到文件(Save LOB To File)”。
  2. 在打开的对话框中,指定目标文件的名称和位置,然后单击“确定”。

更新表格视图

要刷新表格视图,请执行以下操作之一:

  • 点击工具栏上的
  • 右键单击该表并从上下文菜单中选择重新加载页面。
  • 按Ctrl+F5。

使用此功能可以:

  • 将显示的数据与数据库的实际内容同步。
  • 在更改后应用结果(Result)集页面大小设置

查看查询

要查看用于生成表的查询,请执行以下操作:

  • 单击工具栏上的查看查询(View Query)。如有必要,您可以选择查询文本并将其复制到剪贴板(Ctrl+C)。

要关闭显示查询的窗格,请按Escape。