---
# System prepended metadata

title: PostGreSQL教學(還沒寫完待驗證)

---

PostGreSQL教學(還沒寫完待驗證)
==


==Ｍac==

確認安裝 Homebrew
--
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
更新 Homebrew
--
`brew update`

使用 brew 安裝
--
`brew install postgresql`

初始化 PostgreSQL
--
`brew services start postgresql`

確認是否安裝成功
--
`psql --version`

建立資料庫
--
`createdb 資料庫名稱`

使用資料庫
--
`psql mydb`
出現已經訊息表示已進入資料庫
![image](https://hackmd.io/_uploads/SJKiVhVsA.png)

顯示操作指令
--
`mydb=> \h`(輸入`\h`即可)

離開資料庫
--
`mydb=> \q`(輸入`\q`即可)

poetry安裝psycopg2
--
`poetry add psycopg2`

更改setting.py的DATABASE
--
```py    
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'your_database_name',  # 使用的資料庫名稱
        'USER': 'your_username',       # PostgreSQL 使用者名稱
        'PASSWORD': 'your_password',   # PostgreSQL 使用者密碼
        'HOST': 'localhost',           # 如果伺服器在本地運行則保持不變
        'PORT': '5432',                # PostgreSQL 的默認端口
    }
}
```

`python manage.py makemigrations`
`python manage.py migrate`
`python manage.py runserver`

進入互動模式
--
`psql -U 使用者名稱 -d 資料庫模式`

查看資料庫
--
`\dt`
![image](https://hackmd.io/_uploads/SyX3zpNjR.png)


在網頁輸入資料並且插入到你的表中
==

在models.py新增

```python
  class Meta:
        db_table = '你在pg創建表的名字'
        managed = False
```

`
manged = False<--如果你不要django對這個表做任何管理再加上
`


---

如果id為主鍵,切記要手動加上[自增]這個設定

[]為自行更改成自己表的名字

先輸入:

`
CREATE SEQUENCE [you_table_name]_id_seq;
`

在輸入:
`
ALTER TABLE you_table_name ALTER COLUMN id SET DEFAULT nextval('[you_table_name]_id_seq');
`

將序列跟id綁一起:
`
ALTER SEQUENCE [you_table_name]_id_seq OWNED BY you_table_name.id;
`

如果id還不是主鍵的話輸入:
`
ALTER TABLE [you_table_name] ADD PRIMARY KEY (id);
`
輸入指令:
`
\d you_table_name
`
![自增](https://hackmd.io/_uploads/Hyvffhui0.jpg)

預設有顯示就表示成功了

如果輸入資料成功的話就會顯示在你的pg中
![新增成功](https://hackmd.io/_uploads/rySeXhuiA.jpg)

還沒寫完待驗證
==





