有助于初次接触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
資料型態
结构化查询语言
-
- 数値を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 '%テーブル名%';
/* データベース一覧を見たい */
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の日記 エラーの後にロールバックしなければいけない理由