开始使用 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名};

最后

考虑到处理数据库时需要记住很多东西,所以我希望可以按照学习的顺序将其记录成文章。

广告
将在 10 秒后关闭
bannerAds