开始使用 PostgreSQL
首先
由于曾经使用过PostgreSQL,现在将其使用方法整理为备忘录。将用过的命令都一一罗列出来。
安装
在WSL2上安装非常简单。只需使用apt命令即可。
$ sudo apt -y update
$ sudo apt -y install postgresql postgresql-contrib
登录到 PostgreSQL 数据库
生成了一个名为postgres的用户,登录该用户后进入PostgreSQL。
$ sudo -i -u postgres
postgres:~$ psql
psql (13.3 (Ubuntu 13.3-1.pgdg20.04+1), server 12.6 (Ubuntu 12.6-0ubuntu0.20.04.1))
Type "help" for help.
postgres=#
使用的命令
由于开发需要,在另外的工具中已经恢复了数据库,因此将对现有数据库的操作命令整合在一起。
- DB一覧の確認
\l
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+----------+----------+---------+---------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
- DBへの接続
\c {DB名}
postgres=# \c postgres
psql (13.3 (Ubuntu 13.3-1.pgdg20.04+1), server 12.6 (Ubuntu 12.6-0ubuntu0.20.04.1))
You are now connected to database "postgres" as user "postgres".
- schema 一覧
\dn
postgres=# \dn
List of schemas
Name | Owner
-------------+----------
public | postgres
(1 row)
以下是使用过的命令,但内容无法转化为文章。
- ある schema のテーブルの中身を出力
SELECT * FROM {schema名}.{table名};
- schema の削除(オブジェクトが含まれていても強制削除する)
DROP SCHEMA {schema名} CASCADE;
- テーブルに含まれるカラムの一覧を取得
\d {schema名}.{table名}
- 日付カラム(date)がある場合に最新のデータの取得
SELECT {column名}, MAX({date名}) FROM {schema名}.{table名} GROUP BY {column名};
- 日付カラム(date)がある場合に最新の全columnのデータの取得
SELECT * FROM {schema名}.{table名} AS t1
where {date名}=(
select max({date名}) from {schema名}.{table名}
where {column名}=t1.{column名}
)
- 日付カラム(date)がある場合に最新10件の全columnのデータの取得
SELECT * FROM (SELECT * FROM {schema名}.{table名} ORDER BY {date名} DESC LIMIT 10) AS a ORDER BY {date名};
最后
考虑到处理数据库时需要记住很多东西,所以我希望可以按照学习的顺序将其记录成文章。