--- title: DataGrip札记:基础 date: 2019-12-10 09:52:05 categories: - 软件工具 tags: - jetbrains --- ## 目录 - [简介](#简介) - [正篇](#正篇) - [参考链接](#参考链接) - [结束语](#结束语) ## 简介 DataGrip是面向开发人员的数据库管理环境。它旨在查询,创建和管理数据库。 ## 正篇 ### **数据库对象** - `数据源分组` >可根据自定义类型对数据源分组,比如数据库供应商。按下F6或从上下文菜单中(右键->Move to Group...)选择移至分组…。 新建组可使用拖放操作完成,只需将一个数据源拖放到另一个数据源上。如果要将数据源放到现有组中,只需拖放进来。 - `为选定的对象生成SQL文件` >可以使用SQL生成器 (Ctrl+Alt+G)(SQL Scripts→SQL Generator…)为数据库对象生成SQL文件,只需点击右窗格的Save按钮即可。 并提供两种输出布局:每个对象一个文件和每个对象一个文件,且按顺序。 - `快速备份表` >可以通过拖放操作将表复制到同一个数据源中,如果您需要在进行任何关键数据操作之前创建表的快速备份,这可能非常方便。 - `修改表结构/表数据` >在数据库或SQ脚本中的表名称中按下Ctrl+F6即可对它们进行修改,并提供即时预览功能。要编辑表中的数据,请按下F4查看数据编辑器。 - `编辑源代码` >按下Ctrl+B,可以获得过程或函数的DDL语句,并进行Edit操作。 间距(文本编辑器左侧的垂直条)将高亮显示所做的更改,在点击工具栏上的Submit后,对话框将显示生成的SQL代码以更新源代码。 DataGrip将数据库的源代码保存在本地存储中,您可以查看您已更改的源代码部分,而且可以将任意改动还原到服务器版本。 - `图表` >按下Ctrl+Alt+U或通过右键"Diagrams->Show Visualisation",可以随时在图表中查看它们之间的关系。 带有主键和外键的列可以从图表中隐藏,只在相关行上显示,如有必要,这些图表可以导出至图像文件。 ### **智能文本编辑器** - `代码格式化` >按下Ctrl+Alt+L可以灵活根据用户定义的代码样式,自动完成SQL代码格式化。 在Settings → Editor → Code Style → SQL中调整代码样式,比如您可以定义关键词是否使用首字母大写。 - `关键字自动大写` >可去"Editor->Code Style->SQL"中找到对应的数据库方言,在"Case->Word Case->Keywords"中将值设为To upper。 如果使用了小写,可以将光标停留在需要转换的字段或表名上,使用Ctrl+shift+U快捷键自动转换。 - `多光标模式` >在许多情况下,多个光标是修改SQL代码最有效的方式。要添加多个光标,连续按两次Ctrl并按住不放,然后使用方向键放置新光标。 或者按住Shift+Alt不放并点击,也有同样效果。 或者先使用文本搜索功能,然后通过Select All Occurrences功能实现。 - `代码注释` >选中要注释的代码,按下Ctrl+/或Ctrl+shift+/快捷键,能注释代码,或取消注释。 - `实时模板` >按下Ctrl+J即可查看所有实时模板,并根据选择生成相应SQL代码的重复部分。 每个实时模板都有自己的缩写,只要输入缩写并按下Tab键即可粘贴完整的代码。比如输入selw就可以粘贴SELECT * FROM和WHERE。 - `从剪贴板历史记录粘贴` >按下Ctrl+Shift+V可以访问剪贴板历史记录,并快速粘贴最近复制到剪贴板中的项。 当启动应用程序时,DataGrip会开始将复制的项记录到它的剪贴板历史记录中,并且在关闭应用程序时清除历史记录。 - `管理代码片段` >无需为移动代码块执行这么繁琐的复制粘贴操作,您可以直接使用这些热键来管理选定的行或者代码块。 — 按下Ctrl+D以复制行。 — 通过Ctrl+Y删除行。 — 通过Alt+Shift+上下箭头键移动行。 ### **运行查询** - `查询控制台` >每个数据源都有自己的默认控制台。进入上下文菜单,然后点击Open Console即可打开。或使用快捷键F4。 如果出于任何原因,您想为数据源创建另一个控制台,也可以通过:上下文菜单 → New → Console。 - `执行查询` >按Ctrl+Enter执行光标停留的语句,可在setting->Database-General中设置smallest statement。 对于希望在新的tab窗口显示查询结果,可以点击"Pin Tab"按钮,那新查询将不会再当前tab中展示,而是新打开一个tab。 - `评估表达式` >在其他基IntelliJ的IDE中,在对象上按Ctrl+Alt+F8或者Alt+Click可以让您获得快速评估。 在DataGrip中,在查询器中的表中调用它可以查看那个表中的数据,在列名称中按Ctrl+Alt+F8将显示预期结果集中那个列的值。 - `运行查询的历史记录` >在每个控制台的工具栏上有一个按钮Browse Console History。按下它可以查看该数据源运行的所有查询的历史记录。 - `完整SQL日志` >IDE的所有查询均记录在文本文件中。要打开该文件,请转到Help | Show SQL log in Explorer。 - `执行计划` >选中要执行的语句右键"Explain plan(Raw)"将展示数据库要执行的操作,它可以帮助您优化查询。可以以表格或图表的形式表示。 - `用户参数` >当您从其他应用程序中获得SQL查询时,它可以添加参数。参数值用":a"类似符号代替,再点击工具栏的View Parameters按钮。 您可以在"Database → User Parameters"中找到编辑参数模式的 UI。正则表达式会高亮显示,您可以选择模式有效的方言。 ### **处理文件** - `附加目录` >可以在"Files"工具窗口中管理文件和目录,请使用工具栏上的"Attach Directory"按钮将所需目录附加到Files工具窗口中。 - `文件语言` >右键选择"Change Dialect"可以更改任何文件(SQL)的语言(方言),以获得正确的高亮显示和解析建议。 - `版本控制` >DataGrip为Git、SVN和Mercurial等所有主要的版本控制系统提供了统一的支持,可以从不同的VCS处理不同项目并随意切换项目。 要获得VCS支持,可以通过"Settings → Plugins"安装相应的JetBrains插件。 另请参阅:[如何在DataGrip中处理Git](https://blog.jetbrains.com/datagrip/2018/06/01/tutorial-how-to-use-git-with-datagrip/?_ga=2.177277036.872413008.1576052747-1727377903.1572920689)与[DataGrip和GitHub集成](https://blog.jetbrains.com/datagrip/2018/12/11/datagrip-and-github-step-by-step-integration/?_ga=2.149995903.872413008.1576052747-1727377903.1572920689)。 ### **数据编辑器** - `全文搜索` >选择要搜索的数据源或数据源组甚至单独的表,并从上下文菜单调用"Full-text search"或者快捷键"Ctrl+Alt+Shift+F"即可。 点击结果以打开数据编辑器,如果由于列过多而无法定位数据,请在数据编辑器中使用文本搜索:Ctrl+F。 - `筛选数据` >无需输入任何WHERE子句,只要在结果列表上方的"Filter criteria"输入栏中输入搜索条件即可查看您需要的数据。 - `文本搜索` >在表编辑器中通过Ctrl+F调用,无需编写语句即可快速在表中查找数据。 如果您不知道要查找的数据位于哪一列,该功能就特别实用。同时您可以轻松隐藏无关行,以及使用正则表达式。 - `行转列` >对于字段比较多的表,查看数据要左右推动,可以切换成列显示,在结果集视图区域使用Ctrl+Q快捷键开启并点击"Transposed View"。 ### **导入导出选项** - `从CSV文件导入数据` >点击要导入的schema,然后从上下文菜单中选择"Import Data from File...",然后选择存储数据的CSV文件将看到导入对话框窗口。 CSV,意为逗号分隔值或者字符分隔值,其文件以纯文本形式存储表格数据,记录间以某种换行符分隔,字段间以逗号或制表符分隔。 左边的面板显示行分隔符,字段分隔符,空值以及第一行是页眉处理的相关设置。 右边的面板将看到要创建表的框架和结果数据预览,如果想从已有的表中导入数据,那么请使用该表的上下文菜单并选择从文件导入...。 - `CSV编辑器` >DataGrip可以将CSV文件作为表进行编辑并可以即时预览表。在上下文菜单中点击"Edit as Table..."。 - `表数据导出` >表可以导出至文件。表的上下文菜单 → 向文件转储数据 (Dump data to file)。 导出至其他已有表 (Another existing table)。表的上下文菜单 → 将表复制到 (Copy Table to)(或在表上按F5)→ 选择已有表。 导出至任意数据库供应商的任意数据源中的新表。表的上下文菜单 → 将表复制到(或在表上按F5) → 选择目标架构。 - `SQL查询导出` >SQL查询可以作为结果导出到文件中。语句的上下文菜单 → 执行到文件 (Execute to file) → 选择格式。 如果查询比较慢,该功能很实用;如果你导出结果集,查询将再次运行,在这种情况下,您只需要运行一次。 - `结果集导出` >结果集可以导出至文件。 转储按钮(Dump Data) → To File。 导出至剪贴板。 转储按钮(Dump Data) → 至剪贴板。 导出至其他已有表。导出按钮(Export to Database...) → 选择已有表。 导出至任意数据库供应商中任意数据源中的新表。 导出按钮(Export to Database...) → 选择目标架构。 - `导出格式` >每次导出到文件或剪贴板时,都需要选择格式。 通常是CSV文件,但在许多情况下,您需要JSON、XML甚至是DML语句。 SQL查询:任何表或结果集都可以用一组INSERT语句展示,请从下拉列表中选择"SQL Inserts",它还可以选择"SQL Updates"帮您修改数据。 CSV、TSV:列表中有两个预设格式(逗号分隔值和Tab分隔值)。您可以根据DSV创建任意自定义格式。 HTML/XML:有一个您无法更改的预设提取工具(HTML表)。此外还有脚本提取工具(HTML-Groovy.html.groovy和XML-Groovy.xml.groovy)等。 JSON:JSON-Groovy.json.groovy提取工具可以将您的表或结果集导出至JSON。 自定义格式:要处理更加复杂的形式,在提取工具菜单中选择转到脚本目录(Go to Scripts Directory),导航至它们的存储文件夹。 这些脚本是用Groovy编写的,但也可以用JavaScript编写,而且通常位于Scratches和Consoles/Extensions/Database Tools and SQL/data/extractors中。修改已有提取工具或在这里添加您自己的提取工具。 - `转储/恢复工具` >DataGrip集成了mysqldump和pg_dump。要转储对象,请使用上下文菜单中的Dump with...选项。 ### **导航** - `随处搜索` >如果不确定在哪里查找所需内容,可尝试按两次Shift键来调用Search Everywhere。 查找操作:Ctrl+Shift+A,切换到Actions。搜索某些你知道但不知道如何访问的功能。 查找表/过程:Ctrl+N,切换到Tables。如果是表,会打开一个数据编辑器,要查看该表的DDL,请按DDL按钮。 查找文件:Shift+Ctrl+N,切换到Files。文件会打开。 查找符号:Shift+Ctrl+Alt+N,切换到Symbols。可以访问数据库视图中的任何数据库对象,包括列、约束、索引等。 - `从SQL导航` >在SQL的编辑区域,针对SQL的关键字例如表名、字段名或者函数名上可做如下操作进行相关导航。 Edit source(F4)可将您转至数据或DDL。Go to declaration(Ctrl+B)可将您转至数据库树。Ctrl+Q悬浮查看表结构。 可去"Setting->Database->General->Navigation"定义导航位置的选项。 - `在数据库树视图中快速搜索` >任何树(列表、弹出窗口、下拉菜单)都支持快速搜索。请注意匹配的数据库对象只有在其节点已打开时才会高亮显示。 关于快速搜索的另一个实用之处在于其支持缩写。例如使用“sbs”就可以找到“sales_by_store”。 - `最近的文件` >按下Ctrl+E打开Recent Files窗口。控制台、数据编辑器、文本文件一切都在这里,光标默认放在最后访问的项目。 - `最近的位置` >按下Ctrl+Shift+E打开Recent Locations窗口。列出您最近访问/改变的代码位置。它以代码段的形式显示代码位置前后几行。 ## 参考链接 - ## 结束语 - 未完待续...