日常開發中少不了各種可視化數據庫管理工具。如果需要同時能連接多種數據庫,大家肯定都會想到 DBeaver、Navicat Premium。本文介紹另一個十分好用且強大的工具:DataGrip。
DataGrip 是 JetBrains 公司推出的管理數據庫的產品。對於 JetBrains 公司,開發者肯定都不陌生,IDEA 和 ReSharper 都是這個公司的產品,用戶體驗非常不錯。
DataGrip 提供 Windows 版本和 macOS 版本,支持幾乎所有主流的關系數據庫產品,如:PostgreSQL、MySQL、Oracle Database、SQL Server、Azure、Amazon Redshift、SQLite、DB2、H2、Sybase、Exasol、Apache Derby、MariaDB、HyperSQL、ClickHouse、Cassandra、Vertica、Greenplum、Apache Hive、Snowflake 等,並且提供了簡單易用的界面,開發者上手幾乎不會遇到任何困難。
1,下載安裝
我們訪問如下官網地址下載並安裝即可:
2,配置數據源
(1)管理數據庫,第一步肯定是要先配置 Data Source。首先點擊左側 Database 面板的加號(+),選擇要連接的數據庫類型:
(2)接着填寫好相關的數據庫連接信息,點擊確定即可(確定前可以先點擊下“Test Connection”按鈕測試一下)
(3)可看到左側面板顯示了當前數據庫連接,展開后會顯示數據庫表等信息,如果展開后沒有任何信息,需要選中數據庫連接,點擊上面的旋轉圖標同步一下。
3,執行 SQL
(1)右鍵選中的數據庫連接,選擇 open console,就可以在右側的控制台中書寫 sql 語句了。
(2)語句的執行結果在底部顯示:
(3)而切換到執行結果旁邊的 Output 選項卡,則可以看到 sql 執行的時間等信息:
(4)有的時候我們要把某個字段置為 null(不是空字符串 ""),直接在字段上右鍵,選擇 Set NULL 即可:
(5)對於需要多窗口查看結果的,即希望查詢結果在新的 tab 中展示,可以點擊 Pin Tab 按鈕,那新查詢將不會再當前 tab 中展示,而是新打開一個 tab:
4,行轉列
(1)對於字段比較多的表,查看數據要左右拖動不太方便。我們可以選中需要查看的某一條數據,右鍵選擇“Quick Documentation”
(2)這一條數據則會變成列顯示,從而全部顯示出來:
5,多光標模式
在編輯 sql 的時候,可能需要同時輸入或同時刪除一些字符,按下 alt + shift,同時鼠標在不同的位置點擊,會出現多個光標,這樣就可以多處同時進行輸入:
6,代碼注釋
選中要注釋的代碼,按下相應快捷鍵便能能注釋代碼,或取消注釋:
- Windows 系統:ctrl + / 是單行注釋,ctrl + shift + / 是多行注釋
- macOS 系統:command + / 是單行注釋,command + option + / 是多行注釋
7,查看代碼歷史
在文本編輯器中,右鍵選擇“Local History”->“Show History”可以查看過去使用過的 sql 歷史:
8,執行計划
(1)右鍵點擊目標 sql 語言,選擇 Explain Plan 可以產生執行計划:
(2)如果選擇 Explain Plan(Raw) 則結果如下:
9,新建表
在數據庫上點擊右鍵,選擇“NEW”-> “Table” 即可打開新建表窗口。頂部可以填寫表名、表注釋,中間可以點擊下側 + 號添加列,列類型 type 也是能自動補全,default 右側的消息框圖標點擊后能對列添加注釋,旁邊的幾個 tab 可以設置索引及外鍵。所有這些操作的 DDL 都會直接在底部顯示
10,生成表的創建腳本
(1)如果我們需要數據庫中某張已存在的表的創建腳本,可以右鍵點擊該表,選擇“SQL Scripts”->“SQL Generator...”
(2)然后頁面下方就會出現建表 SQL 語句,同時左側可以對語句進行一些設置。
11,導出數據
(1)右鍵點擊需要導出的庫或者具體的表,選擇“Dump Data to File”即可將數據導出。我們可以導出 insert、update 形式的 sql 語句,也能導出為 html、csv、json 格式的數據。
(2)如果是導出到 csv 格式,還能控制導出的格式:
(3)也可以在查詢結果視圖中導出:
12,導入數據
(1)如果是 sql 語句,我們右鍵需要導入的數據庫,點擊“Run SQL Script...”選擇 SQL 文件即可。
(2)如果是 html、csv、json 格式的數據,右鍵需要導入數據的庫或者具體的表,選擇“Import Data from File...”選擇數據文件即可: