零、寫在前面
1、環境
MacOS:v10.14
Navicat:15.0.4 - premium
2、官網文檔
(英文):
https://www.navicat.com/manual/online_manual_new/en/navicat/mac_manual/
一、為什么用 Navicat?
首先說下 Postgres GUI 工具的競品:
Postico
- 最早 PG 官網推薦使用的,但是功能比較簡潔,我用過,但在我的 mac 上打開一會就特別卡,原因未知。DataGrip
- JetBrains 系列的產品都是占內存大戶,早期我的 js 編輯器還是 webstorm,卡的不行換成了 vscode,所以這個我干脆沒試。雖然網上對這個推崇有加,有專業范,適合程序開發者。pgAdmin
- 早期我用 mysql 的時候就用過類似的 phpMyAdmin,我個人很不喜歡這種 web 的形式,感覺很卡慢。所以這個我也沒考慮。
最終選 navicat 也是因為我之前用 mysql 的時候,就一直用的 navicat,習慣了,而且我的是 Navicat Premium
,功能是非常強大的。
二、功能
1、Operate
(1)最近打開的頁面
Open Recent -> ...
有時候經常在多個表、數據庫之間切換,還涉及查看數據 or 查看定義 等,這個功能可以快速的回到最近查看過的頁面。
(2)添加常用操作
Favorites -> ...
2、Connection
(1)創建連接
navicat 支持很多數據庫連接。(甚至 mongodb 也支持)
不過 mongodb 我還是不習慣用 navicat。
(2)防止長時間不操作導致連接斷開
Edit Connection -> Advanced -> Keepalive interval (sec)
:一般設置 60s 就夠了。
(3)雲同步/備份
需登錄個人帳號
3、Table
(1)創建表
分為:
- Normal - 普通表
- Foreign - 外部表,即 fdw 的內容(略)
- Partitioned - 分區表(略)
(2)Maintain
支持:
- Analyze Table
- Reindex Table
- Vacuum Table
4、數據類型
這邊設計到 表的(Type 字段)定義 和 數據展示。
(1)布爾類型
1、表的定義:注意不是 boolean 而是 bool。
2、數據展示:true 顯示為 t,fasle 顯示為 f。
(2)numeric 類型
1、表的定義:numeric 的 精度和標度 ,分別對應在 length 和 decimals 上。
(3)字符串類型
1、表的定義:因 varchar、text 是變長的,即不限制長度,所以 length = 0 。
(4)數組類型
1、表的定義:
Type
是數組元素的類型。
Dimensio
是數組的維度。
2、數據展示:用 {}
包起來的,例如 {1,3,5}
(5)復合類型
例如我們新建了一個 "person" 復合類型:
CREATE TYPE "person" AS (
name text,
age integer,
sex boolean
);
1、表的定義:
Object Type
2、數據展示:用 ()
包起來的,為 ("張三",29,t)
5、Query
(1)Query Builder
界面化操作幫你構建 sql 語句。(不是很好用,感覺還不如手寫)
(2)格式化
Beautify SQL / Minify SQL ,效果不是很好,湊活可以用。
(3)Code Snippet
保存你常用的代碼片段。
6、Result
這邊的 result ,指的是 query 的結果,或者 view table 的結果,等。
(1)數據導入導出
Import / Export Result ,支持很多格式,我自己常用 csv/xlsx 格式。
窗口上,點擊 Save Profile
,可以保存設置下次再用。
(2)數據編輯
在原來的單元格查看/編輯困難,可以打開 editor
:
7、數據遷移(SQL 格式)
(1)導出 數據 / 結構 為 SQL
(2)導入/執行 SQL
8、Tools
(1)數據傳輸
tools -> data transfer
支持對象:
- Table
- View
- Function
- Sequence
- Type
支持操作:
- 是覆蓋還是新建
(2)數據同步
tools => data Synchronization
支持對象:
- Table
- View
- Function
- Sequence
- Type
支持操作:
- insert
- udpate
- delete
(3)結構同步
tools -> Structure Synchronization
支持對象:
- Table
- View
- Function
- Sequence
- Type
支持操作:
- insert
- udpate
- delete
(4)在 數據 / 結構 中查找
tools -> Find in Database/Schema
(5)監控
tools -> Server Monitor -> ...
,...
可以選數據庫產品,如 postgreSQL。
支持 進程/參數/狀態 的查看:
(6)控制台
tools -> console
打開 psql 命令行窗口。
9、role & 權限
(1)設置權限
對象右鍵的 Set Privileges
具體待寫。
10、Model
new model
,支持用畫 ER 圖的方式建表
Reverse Tables to Model
,支持從表反推出畫好的 ER 圖
11、Charts
這塊的功能其實屬於 Business Intelligence (BI) 商業智能
的范疇。
BI 最常用的即 dashboards + visualization。這塊最知名的競品是
Tableau
。
功能分(依次遞進):
- New
Data Source
- New
Chart
- New
Dashboard
12、Backup
(1)備份數據庫
New Backup
可以備份數據庫,支持對象:
- Table
- View
- Function
- Sequence
- Type
可選參數:Lock all tables
(2)恢復備份
Restore Backup
(3)導出備份為 SQL 文件
Extract SQL
13、Automation
支持設置 (定時輪詢)任務,來完成:
- backup
- import / export
- 等(具體看下圖)
advanced 里還支持發送郵件的 hook。
注意:如果想要要定時輪詢的機制生效,需要:
我設置了,但不成功。原因未知。