PostgreSQLをMacで使う
PostgreSQLのインストールから基本的な使い方まで、手順にそって紹介します。
1. Homebrewをインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
まだインストールしていない場合はHomebewをインストールします。
下記のサイトへアクセスして、インストールコマンドをターミナルで実行してください。
https://brew.sh/index_ja
2. インストールできるpostgresqlを確認
brew search postgresql
% brew search postgresql
==> Formulae
postgresql postgresql@10 postgresql@11 postgresql@12 postgresql@9.4 postgresql@9.5 postgresql@9.6 qt-postgresql postgrest
==> Casks
navicat-for-postgresql
3. postgresqlをインストール
brew install postgresql
最新版をインストールする場合はpostgresqlを指定します。
バージョンを指定する場合はpostgresql@バージョンです。
4. インストールされたバージョンをチェック
psql --version
% psql --version
psql (PostgreSQL) 13.4
5. PostgreSQLを起動する
brew services start postgresql
% brew services start postgresql
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
brewコマンドで起動するのが簡単だと思います。
6. PostgreSQLの状態確認
brew services list
サービスのリストを出力することで、postgresqlが起動しているかチェックできます。
% brew services list
Name Status User Plist
mysql stopped
postgresql started user /Users/user/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
7. データベース一覧を表示
psql -l
% psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+-------+----------+---------+-------+-------------------
postgres | user | UTF8 | C | C |
template0 | user | UTF8 | C | C | =c/user +
| | | | | user=CTc/user
template1 | user | UTF8 | C | C | =c/user +
| | | | | user=CTc/user
8.データベース作成
まずは、データベースのpostgresにログインします。
psql postgres
ちなみに、ログインコマンドのオプションは以下の通りです。
psql -h ホスト名(ipアドレス) -p ポート番号 -U ユーザー名 -d データベース名
省略してもログインできます。
次に、データベース作成コマンドを実行します。
create database mydb;
\lで作成したデータベースをチェックできます。
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+-------+----------+---------+-------+-------------------
mydb | user | UTF8 | C | C |
postgres | user | UTF8 | C | C |
template0 | user | UTF8 | C | C | =c/user +
| | | | | user=CTc/user
template1 | user | UTF8 | C | C | =c/user +
| | | | | user=CTc/user
\qでデータベースから切断できます。exitでも切断可能です。
9. テーブル作成
先ほど作成したdbに接続します。
psql mydb
適当にテーブルを作成してみます。
create table books(id integer, name text);
テーブル作成コマンドは以下のようになっています。
CREATE TABLE テーブル名(カラム名 データタイプ, … );
デーブルの情報は\d テーブル名で確認できます。
mydb=# \d books
Table "public.books"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
name | text | | |
10. テーブルにデータを追加
全てのカラムにデータを入れる場合は、順番にカラムの値を指定します。
insert into books values (1, 'はらぺこあおむし');
指定したカラムにデータを入れる場合、こんな感じで指定します。
insert into books (id, name) values (2, 'ぐりとぐら');
11. テーブルのデータを取得
select * from books;
mydb=# select * from books;
id | name
----+------------------
1 | はらぺこあおむし
2 | ぐりとぐら
(2 rows)
SELECT文でデータが取得できます。
特定のカラムの情報だけ取得する場合は以下のようにします。
mydb=# select name from books;
name
------------------
はらぺこあおむし
ぐりとぐら
(2 rows)
複数カラムがある場合は、カラム1, カラム2, …と区切ればOK。
12. テーブルのデータを更新する
update books set name='おおきなかぶ' where id=2;
id=2のデータのnameを変更しました。
UPDATE テーブル名 SET カラム名=値 WHERE 条件式
といった感じです。
複数カラムの値を変更する場合、カラム1=値1, カラム2=値2, … と指定します。
更新されたか確認しましょう。
mydb=# update books set name='おおきなかぶ' where id=2;
UPDATE 1
mydb=# select * from books;
id | name
----+------------------
1 | はらぺこあおむし
2 | おおきなかぶ
(2 rows)
13. テーブルのデータを削除する
delete from books where id=2;
id=2のデータを削除します。
全て削除する場合は次のように指定します。
delete from books;
14. テーブルを削除する
drop table books;
DROP TABLE テーブル名; でテーブルが削除されます。
15. データベースを削除する
作成したデータベースを削除してみます。
ログイン中のデータベースは削除できないので、\q でログアウトしてからpostgresにログインします。
psql postgres
データベースを削除するコマンドはDROP DATABASE データベース名; です。
drop database mydb;
\l で、データベースが削除されているか確認します。
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+-------+----------+---------+-------+-------------------
postgres | user | UTF8 | C | C |
template0 | user | UTF8 | C | C | =c/user +
| | | | | user=CTc/user
template1 | user | UTF8 | C | C | =c/user +
| | | | | user=CTc/user
16. PostgreSQLを停止
ログイン状態であれば、\qでログアウトしてください。
brew services stop postgresql
% brew services stop postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
成功すれば、postgresqlが停止されます。
コメント