今回の記事ではPostgreSQLでロール・データベース・テーブルを作成する方法について解説します。
バージョンは次の通りです。
- macOS Ventura 13.4
- PostgreSQL 15.3(Homebrew)
PostgreSQLはコマンドでの操作とpgAdmin4を使ってGUIで操作をすることができます。
今回はどちらの方法も紹介していくので、自分が使いたい方を使って実践してみてください。
ちなみに、PostgreSQLをMadにインストールする方法はこちらの記事で解説しています。
コマンドを使って作成する
まずはPostgreSQLのサーバーを起動させます。
ターミナル等で以下のコマンドを入力します。
brew services start postgresql@15
サーバーが起動したか確認するためにデータベースの一覧を表示してみます。こんな感じでデータベースの一覧が出てきたら完璧です。
psql -l
PostgreSQLが起動したら次のコマンドで接続します。
[username]の箇所は、psql -lで確認した所有者欄の名前を入力してください。
psql -U [username] -d postgres
ターミナルの先頭が「postgres=#」となっていたら接続が成功しています!
コマンドでロールの作成
まずはロールを作成します。
PostgreSQLにおけるロールはほぼユーザーのようなものです。
ロールを作成し、適切な権限を与えることで作成したロールを使ってPostgreSQLを利用することが可能になります。
次のコマンドを使って「uhablog」という名前のロールを作成します。
CREATE ROLE uhablog LOGIN PASSWORD 'P@sswr0d' CREATEDB;
ロールuhablogには次の権限を与えています。
- LOGIN・・・Postgreにログインする権限
- PASSWORD・・・ログインする際に必要なパスワード
- CREATEDB・・・Postgreにデータベースを作成する権限
ロールの作成に成功したら、一度exitコマンドで抜け出します。
コマンドでデータベースの作成
次に先ほど作成したuhablogを使って、データベースを作成していきます。
次のコマンドを実行することで、データベースを作成することができます。
createdb test_db -O uhablog
先ほどの「psql -l」コマンドでデータベース一覧を表示し、先ほど作成したデータベースが追加されていればデータベースの作成は完了です。
コマンドでテーブルの作成
次にテーブルの作成をします。まずはデータベースに接続しましょう。
psql -U uhablog test_db
ターミナルの先頭が「 test_db=>」となっていたら、接続に成功しています。
「\d」コマンドで、テーブルの一覧を確認することができます。
先ほど作成したばかりのデータベースなので、何も表示されません。
test_db=> \d
リレーションが見つかりませんでした。
テーブルの作成を行います。
今回はusersという名前のテーブルを作成します。
idとpasswordというカラムを持ち、idは主キーにします。「CREATE TABLE」と表示されたらテーブルの作成は成功です。
test_db=> create table users (id varchar(50) primary key, password varchar(50));
CREATE TABLE
せっかくなので作成したテーブルにデータを追加してみます。
uha-blog, keisuke, ikezakiという3人のユーザーを追加しました。
attendanceDb=> insert into users values ('uha-blog', 'uha-pass'), ('keisuke', 'professional'), ('ikezaki', 'justice');
追加したユーザーをSELECT文で取得してみます。
SELECT * FROM users;
3人のユーザーが表示されていたら、データが追加されています。
ここまでの実行結果は次のようになります。
次のようなテーブルがPostgreSQLに作成されました。
id | password |
---|---|
uha-blog | uha-pass |
keisuke | professional |
ikezaki | justice |
pgAdmin 4を使って作成
ここからはpgAdmin 4を使ってロール・データベース・テーブルを作成する方法を解説していきます。
pgAdmin 4はGUIでPostgreSQLを管理することができるツールです。
インストール方法はこちらの記事で解説していますので、まだインストールされていない方は参考にしてください。
pgAdmin4でロールの作成
pgAdmin4を使ってロールを作成します。
ローカルのPostgreSQLに接続した状態で、「Login/Group Roles」を右クリックし「Create」→「Login/Group Role...」と進みます。
Generalタブでロール名を入力します。
Definitionタブでパスワードの設定をします。
先ほどと同じようにログイン権限とデータベースの作成権限を付与します。
右側にロールが新しく追加されていたら作成が完了しています。
pgAdmin4でデータベースの作成
pgAdmin4でデータベースの作成を行います。
Databasesを右クリックして「Create」→「Database...」と進みます。
「General」タブでデータベース名を入力します。
「Save」を押して、データベースが追加されていたら、完了です!
pgAdmin4 でテーブルの追加
最後にpgAdmin4でテーブルの追加を行います。
テーブルは「test_db2」→「Schemas」→「public」→「Tables」と進んでいって、「Create」→「Table...」をクリックします。
「General」タブでテーブル名を入力します。
「Coloum」タブでカラムを追加します。
今回はidとパスワードという2つのカラムを追加します。
右上の「➕」ボタンを押すとカラムの追加が可能です。
それぞれ次のように入力して、「Save」を押します。
右側にテーブルが作成されていたら完了です!