有助于初次接触PostgreSQL的网站集合

备份数据库

# 出力形式(-F)をカスタム形式アーカイブ(c)でダンプ出力する
$ pg_dump -Fc -U {接続ユーザ名} {データベース名} > dumpname.dump
オプション意味参考サイト--encoding={文字コード}
-E {文字コード}指定した文字セット符号化方式でダンプを作成します。pg_dump – PostgreSQL 12.4文書-F{フォーマット}
–format={フォーマット}出力形式を選択pg_dump – PostgreSQL 13.1文書--schema-only
-sデータ定義(スキーマ)のみをダンプし、データはダンプしません。pg_dump – PostgreSQL 12.4文書-t {テーブル}
--table={テーブル}一致するテーブル(またはビュー、シーケンス、外部テーブル)のみをダンプします。pg_dump – PostgreSQL 12.4文書
    ダンプファイルからデータベースを作り直す – Qiita

資料型態

分類型名説明文字型character(n), char(n)空白でパッドされた固定長文字列文字型character varying(n),
varchar(n)制限付き可変長文字列文字型text制限無し可変長文字列日付/時刻データ型timestamp日付と時刻両方日付/時刻データ型date日付(時刻なし)日付/時刻データ型time時刻(日付なし)

结构化查询语言

    • 数値をlike検索する方法 – Qiita

 

    • CASE文 – DBと仲良くしたいときに役立つリンク集

 

    • SELECT

postgreSQLの健康状態をチェックする – 技术之旅

データベースやテーブルのサイズ、接続ユーザー数の確認方法が書かれています。

PostgeSQLにおけるIN句の2種類の使い方とNULLの注意 – Qiita

UPDATE

PostgreSQL 8.0.4 文書 UPDATE

日期和時間

-- 今日
select current_date;
-- 明日
select current_date + 1;
-- 今
select current_timestamp;
-- 5分前
select current_timestamp + '-5minutes';
-- timestamp型で「2017/04/19 0:00:00」
select to_timestamp('20170419','yyyyMMdd');
    • PostgreSQL 日付の加算・減算を行う

 

    9.8. データ型書式設定関数 – PostgreSQL 12.4文書

授予

/* データベースを操作するの権限を付与する */
GRANT ALL ON database {データベース名} TO {ロール名}

插入

INSERT INTO table_name [ ( column_name [, ...] ) ]
  { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
  [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
    • PostgreSQL 9.4.5文書 INSERT

 

    レコードを挿入する【PostgreSQL】 – Programming Magic

当你想要看各种各样的东西时

/* カラムの型とかを見たい */
select * from information_schema.columns where table_name like '%見たいテーブル名の一部%' and column_name like '%みたいカラム名一部%';
/* 主キーとか外部キーとかの制約がくっついているカラムを見たい */
select * from information_schema.constraint_column_usage where table_name like '%見たいテーブル名の一部%';
/* テーブルにくっついている制約を見たい */
select * from information_schema.table_constraints where table_name like '%見たいテーブル名の一部%' and constraint_type = '見たい制約(CHECK、FOREIGN KEY、PRIMARY KEY、UNIQUE)';
/* テーブル一覧を見たい */
select * from pg_stat_user_tables;
/* 全Viewの情報が見たい */
SELECT * FROM pg_views;
/* Viewの定義を見たい */
SELECT definition FROM pg_views WHERE viewname = 'foobar';
/* 外部テーブルを見たい */
select * from pg_class where relkind='f' and relname like '%テーブル名%';
テーブル内容参考サイトpg_classテーブルとその他に列を保有しているもの、あるいはテーブルに似た全てのものを目録にしています。51.11. pg_class-PostgreSQL 12.4文書
/* データベース一覧を見たい */
SELECT * FROM pg_database;
/* 最大接続数を見たい */
SHOW max_connections;

/* バージョンを見たい */
select version();
                                                    version
----------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.3.15 on x86_64-unknown-linux-gnu, compiled by gcc .......
(1 row)

/* ユーザ一覧が見たい(パスワード見えない版) */
select * from pg_user;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig 
----------+----------+-------------+----------+---------+--------------+----------+----------+-----------
 postgres |       10 | t           | t        | t       | t            | ******** |          | 
 mana     |    16384 | t           | f        | f       | f            | ******** |          | 
(2 rows)
/* ユーザ一覧が見たい(パスワード見える版) */
select * from pg_shadow;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |               passwd                | valuntil | useconfig 
----------+----------+-------------+----------+---------+--------------+-------------------------------------+----------+-----------
 postgres |       10 | t           | t        | t       | t            |                                     |          | 
 mana     |    16384 | t           | f        | f       | f            | md5a6747d5690695f2d69c556af98aca23b |          | 
(2 rows)

/* 今使っているユーザ名を見たい */
select current_user;
 current_user 
--------------
 mana
(1 row)

请将常用命令记下来。

# ログイン
$ psql -h hostname -U username -d databasename
$ psql -U username -d databasename

# ログアウト
$ \q

# データベースの切り替え
$ \c databasename

# 権限情報
$ \z
                            Access privileges
 Schema | Name | Type | Access privileges | Column privileges | Policies 
--------+------+------+-------------------+-------------------+----------
(0 rows)

# ユーザ一覧
$ \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 mana      | Create DB                                                  | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
メタコマンド
(DB内で使うやつ)意味参考リンク\i {sqlファイル}ファイルから入力を読み取り、キーボードから入力された場合と同じように実行psql – PostgreSQL 13.1文書
/* null検索※NULLとNULLとは"等しい"関係にはありませんので、expression = NULLと記述してはいけません。 */
expression IS NULL
expression ISNULL
    • PostgreSQLからの切断 – PostgreSQLへの接続と切断 – PostgreSQLの使い方

 

    • PostgreSQLのバージョンを調べるには

 

    • hacknote PostgreSQLのバージョン確認方法

 

    • 9.2. 比較関数および演算子

 

    • information_schema

PostgreSQL: テーブルの主キーを列順に取得する – log.nissuk.info
35.50. table_constraints
35.17. constraint_column_usage
35.16. columns

PostgreSQLのシステムテーブル入門 (暗記用のSQL集) – 主に言語とシステム開発に関して
PostgreSQL 外部キー一覧の取得 – Qiita
Postgresql(psql)でViewビューの定義を調べる方法 · DQNEO起業日記
SHOW

PostgreSQL: Documentation: 9.6: SHOW
configuration – Query a parameter (postgresql.conf setting) like “max_connections” – Stack Overflow

我想查看表格和列的注释。

    PostgreSQLにてテーブルやカラムの各種情報を取得するSQL (テーブル一覧, カラム一覧, プライマリーキー情報取得, テーブルのコメントを取得, カラムのコメントを取得) – いろいろ備忘録日記

想要改写Oracle的SQL

    OracleのSQLをPostgeSQLのSQLにしてみる時に役立てたいリンク集 – Qiita

安装

    • MacにHomebrewでPostgreSQLをインストールしてデータベースを作る – ponsuke_tarou’s blog

 

    PostgreSQLのpsqlをインストールする – ponsuke_tarou’s blog

端口设置

    • デフォルトは5432です。

 

    Hatena::Diary (=゜ω゜)ノぃょぅ にっき PostgreSQLのポート番号を変更する

启动、停止、重新启动

    PostgreSQL の起動と停止

預訂言語

    SQLキーワード

客户端工具

    • Psequel

macOS High SierraにHomebrew CaskでPostgreSQLクライアントのPSequelをインストールする – Qiita

pgAdminIII

PostgreSQL 9.2にクライアントから接続する pgAdminのインストール設定 | IT関連の技術情報サイト
pgAdminIIIで楽々PostgreSQL [データベース] All About

为难

    • org.postgresql.util.PSQLException:

ERROR: permission denied for relation

アクセス権限を確認しましょう。
権限の追加 – ロール(ユーザー)の作成 – PostgreSQLの使い方

ERROR: relation “テーブル名” does not exist

テーブルの存在を確認しましょう。

ERROR: current transaction is aborted, commands ignored until end of transaction block

ロールバックしましょう。
Hatena iakioの日記 エラーの後にロールバックしなければいけない理由

bannerAds