この記事ははPostgreSQL Advent Calendar 2023シリーズ2の17日目です。
https://qiita.com/advent-calendar/2023#participating_calendar
はじめに
今年8月辺りからpostgresqlの勉強を始めて、10月にOSSDB Silverを取得しました。
よく使う基本的なコマンド、SQL文をメモ代わりにまとめておこうと思います。
psql
データベースに接続する基本のコマンドです。
psql -d [データベース名] -U [データベースユーザー名]
メタコマンド
テーブル作成したりアクセス権限を付与したりして、実行結果を確認するときによく使います。
\dt テーブル一覧を表示
\l データベース一覧を表示
\dp テーブル・シーケンス・ビューのアクセス権限一覧を表
情報スキーマ
postgresqlに限らずデータベースにはスキーマという情報を格納するスキーマという機能があります。
pg_tables
「pg_...」とはシステムカタログ。接続中のデータベースに格納されているテーブルが所属するスキーマ、テーブルスペース(テーブルの記憶領域)、テーブルの所有者を確認できます。
確認できる情報は情報スキーマよりもシステムカタログのほうが詳しいです。
こちらもシステム権限付の実行結果を確認する際に使っています。
情報スキーマ、システムカタログの違いは試験でもよく聞かれます。
copy from
テストデータ(複数行)をテーブルに取り込みたいときによく使っています。
copy [テーブル名] (id, date1) from '\aaaa\Book1.csv' with csv header;
実行すると以下のようなエラーが表示される時があります。
copy fromはサーバー上にアップされたファイルを入出力できるので、ローカルのファイルを取り込むことはできません。csvファイルを「PostgreSQL\16\bin」などサーバー上にコピーして再実行すると取り込むことができました。
copyコマンド
ローカル上のファイルをテーブルに取り込むことができます。
\copy [テーブル名] from '\aaaa\Book1.csv'delimiter','csv header;
Moreをoffにする
offにするコマンドがあります。
\pset pager off
ちなみに一度コマンド実行画面を閉じて再起動すると再びMoreが表示されるようになっていたので、offになるのは接続中のみのようです。
View
よく使うselect文を保存してことができるみたいな機能です。
最後に
覚えたことを忘れないために、簡単ではありますがメモにまとめてみました。
資格を取ってもまだまだ知らないことだらけです。
参加させていただきありがとうございました。