iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 29
0
AI & Data

後端前進PostgreSQL系列 第 29

PostgreSQL 黑畫面操作 - MAC 初探psql紀錄 (3)

終端機第三天!嘗試在資料庫的操作模式中,對資料庫執行 SQL 語法!

animal=# SELECT * FROM animals;

如上SQL語法所述 在 animal 資料庫中,執行 SELECT 查詢語法,查詢 animals 資料表的所有資料。(不好意思一開始名稱沒有取的很好!有點繞口令。)

\d 中繼資料

使用 \d 中繼資料,查看資料庫資訊

指令 顯示資訊
\d 列出所有物件不篩選
\di 索引相關
\dt 資料表以及擁有者資訊
\du 使用者及相關屬性
\dv 檢視表以及擁有者
\dx 安裝那些套件

可以嘗試一一的在資料庫模式下執行!

利用中繼指令匯入匯出資料

\copy 匯入/匯出資料

匯出資料

## 不切齊、逗號區隔、不顯示總計在最後一行
animal=# \a \f , \pset footer

## 查詢動物資料表
animal=# SELECT * FROM animals;

## 開始匯出模式,輸出到 下方路徑。
animal=# \o 'D:/animals.csv'

## 匯出動物資料表所有資料
animal=# SELECT * FROM animals;

## 可以在下 \o 結束匯出,若沒有結束,會把查詢結果繼續寫到 D:/animals.csv 裡面
animal=# \o

會在D槽輸出一個CSV檔案,這裡使用windowns路徑,要特別注意一下,windowns 路徑也是要使用 「/」,不是反斜線「\」喔!

匯入資料

再把D槽剛剛匯出的資料再匯入資料庫吧!

animal=# DROP TABLE animals;

animal=# CREATE TABLE animals (
animal(#     id bigserial,
animal(#    name varchar(255),
animal(#    created_at timestamp,
animal(#    updated_at timestamp
animal(# );

animal=# \copy animals FROM 'D:/animals.csv' WITH (FORMAT CSV, HEADER);

很貼心的一件事,若一行一行輸入,animal(# 中出現 ( 提醒我們最後要一個 ) 封閉,以免我們SQL語法出錯。

之前有介紹到COPY 的SQL語法,跟這個差在哪邊呢?

COPY 的 SQL 語法可以簡易的匯入資料,但檔案必須要在那台資料庫伺服器的裡,如果你用psql連至遠端操作,檔案在你目前的電腦上,不是在遠端的資料庫伺服器中,就只能使用 \copy 的方法匯入\匯出資料。

補充

黑畫面終端機的第一天,在嘗試並解決錯誤的過程中,有使用到 createdb 新增資料庫的指令,當時沒有設定任何變數,他使用 victor (我電腦的使用者名稱)當擁有者,並建立一個 victor 資料庫。

createdb -U postgres -d ithelp

如上指令碼可以簡單的幫我們建立 ithelp 名稱的資料庫,並設定擁有者為 postgres(預設的那個使用者),不用進資料庫模式後,在下SQL指令。

參考資料

createdb 完整指令參數


上一篇
PostgreSQL 黑畫面操作 - MAC 初探psql紀錄 (2)
下一篇
後端前進PostgreSQL補充GIS以及完賽心得
系列文
後端前進PostgreSQL30

尚未有邦友留言

立即登入留言