PostgreSQL、「The World’s Most Advanced Open Source Relational Database」だそうです。ソースが公開されているデータベースの内、現状商業用に多く使われているRelational Databaseの一つ。
よく使うコマンド、よく使う割にすぐ忘れてしまうので備忘録。
環境はMACです。
ターミナルでのコマンド
まずはターミナルで実行するコマンドから。
データベースを作ったり、破棄したり。
カレントディレクトリがどこであっても処理できると言う理解。
$ createdb <データベース名> $ dropdb <データベース名> $ dropdb <データベース名> && createdb <データベース名>
createdb〜はデータベースを作る(Create a database)
dropdb〜はデータベースを破棄する(Destroy a database)
dropdb〜 && createdb〜はデータベースをリセットする(Reset a database)。今ある物を破棄して新たなものを作る。このdrop & createはデータベースやテーブルを作る時の決まり文句の様だ。
ターミナルからはこの他にもデータベースサーバーを起動(start)、停止(stop)させたりもするが、このエントリの主眼ではないので一旦置いといて、psqlと言うデータベースを扱うターミナル(PostgreSQL interactive terminal)を起動してデータベースを操作します。
psqlを起動
$ psql <データベース名> psql (13.4) Type "help" for help. plantsdb=#
ユーザー名を設定していたらデータベース名の後に入れる様だが、データベース名だけでも起動できる。
デフォルトのデータベース名はpostgres。
行頭に[データベース名=#]が付くのでpsqlが起動したと分かる。
psql内でのコマンド
以降[データベース名=#]の#以降を記載。
“\”はMacなら[option] + [¥]で出せる。
# \l
サーバーにある全てのデータベース一覧を出力。一覧にはデータベース名、オーナー名、アクセスレベルの情報が含まれる。
# \c <dbname>
指定した名前のデータベースにアクセス=>操作するデータベースを変更する。
# \dt
そのデータベースが持つテーブル一覧(database tables)を出力
# \d
tables, views, and sequencesの一覧を出力
# \d <tablename>
\dの後にテーブル名を続けると、指定したテーブルの仕様(schema : コラム名、データタイプ等の詳細)を出力
# \i ファイル名
指定したファイルを実行する。
この場合、ファイル名はフルパス。ルートからファイル名まで書き込む。
# \ir ファイル名
interactive terminalで打ち込む分には\i同様フルパスで書いてファイル実行。
だが、script(fileと同義)から実行する場合はscriptの場所からの相対パスで書く事が出来る。
# \q
psqlから出てターミナルに戻る
# \?
ヘルプ コマンドリストの出力
\iの利用例
sampledb_setup.sqlの名前で下記ファイルを作成
DROP DATABASE IF EXISTS plantsdb; DROP USER IF EXISTS student; CREATE DATABASE plantsdb; CREATE USER student WITH ENCRYPTED PASSWORD 'student'; GRANT ALL PRIVILEGES ON DATABASE plantsdb TO student; ALTER USER student CREATEDB; ALTER USER student WITH SUPERUSER;
以下のコマンドでファイルを実行する。
postgres=# \ir /Users/MBPro/dbfile/sample/sampledb_setup.sql DROP DATABASE DROP ROLE CREATE DATABASE CREATE ROLE GRANT ALTER ROLE ALTER ROLE postgres=#
DatabaseとUSERが作られた。
憶えておきたいコマンドがあればまた追加します。
コメント
[…] PostgreSQL コマンドの備忘録 […]
[…] PostgreSQL コマンドの備忘録 […]