使用Render的PostgreSQL部屬雲端資料庫伺服器, 可以方便在各平台存取資料
Render的PostgreSQL免費方案只能設一個資料伺服器,資料只能保存 3 個月
## 在Render創建PostgreSQL
登入Render後, 在左上角點選+New --> PostgreSQL

接下來設定PostgreSQL, 填完按下"Create Database", 這樣就完成創建了


創建完成後, 進入PostgreSQL的info頁面, 可以使用這些資訊用來連接PostgreSQL資料庫
可以使用psql命令行工具、pgAdmin(GUI)或是 Python(psycopg2)來連接

<br/>
## 使用pgAdmin連接PostgreSQL
pgAdmin是PostgreSQL的GUI圖形化介面工具
這裡下載pgAdmin https://www.pgadmin.org/download/
打開pgAdmin, 點選Object -> Server, 連接到PostgreSQL的設定

第一個分頁"General", 填寫伺服器名稱

第二個分頁"Connection"
pgAdmin依PostgreSQL info對應的欄位填寫即可
**特別注意!!!**
Internal Database URL結構:postgres://[username]:[password]@**[hostname].[伺服器位置].render.com**/[database]
pgAdmin的Host name/address只要貼"**[hostname].[伺服器位置].render.com**", 也就是複製@後面到render.com
填好了按下"Save"季就完成了

看到小象就是成功囉

可以先創建一個表單來試試
*注意PostgreSQL和MySQL語法有一些差異, 像是MySOL在建立id自動增加用AUTO_INCREASEMENT, PostgreSQL則是用SERIAL
* 建立表單步驟:
1. 打開指令頁面:點選Database再點選上面圖示(Query tool), 也可以在Database點選右鍵再點選Query tool
2. 輸入創建表單的指令後, 再點選小箭頭(1)執行單一命令, 如果全部執行按左邊的箭頭


然後在Database點右鍵, 點選Refresh, 刷新頁面

展開 Database -> 點擊要檢視的 database -> Schemas -> public -> Tables, 就可以看到建立的表單了

<br/>
## 使用Python連接PostgreSQL
首先, 在終端機安裝psycopg2
```
$ pip install psycopg2
```
前面使用pgAdmin已經新增了資料表, 在這裡使用python新增資料進去
1. 連接到PostgreSQL
2. 新增一筆資料, 並顯示最後一筆資料
```py=
import psycopg2
# 連接到 PostgreSQL 資料庫
conn = psycopg2.connect(
host="<Your hostname/address>", # hostname/address
database="<Your database>", # 資料庫名稱
user="<Your user name>", # 資料庫使用者名稱
password="<password>" # 資料庫密碼
)
# 建立游標物件
cur = conn.cursor()
# 將資料插入到資料表
cur.execute("INSERT INTO mydata (name, phone) VALUES ('Albert', '0921333444');")
cur.execute("SELECT * FROM mydata ORDER BY id DESC LIMIT 1;")
# 獲取所有結果
result = cur.fetchall()
# 顯示結果
for row in result:
print(row)
# 提交變更
conn.commit()
# 關閉游標和連接
cur.close()
conn.close()
print("資料已成功新增。")
```
執行結果:

<br/>
## 參考資料
https://jimmyswebnote.com/postgresql-tutorial/
https://medium.com/@King610160/render%E9%83%A8%E7%BD%B2-postgresql%E8%A8%AD%E7%BD%AE-e39ad7c3c862