0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

0から分かるPostgreSQL

Posted at

PostgreSQL のインストールが完了したら、データベース(DB)を作成する手順を説明します!
初心者でもわかりやすいように、順を追って解説しますね。


1. PostgreSQL を起動する

まず、PostgreSQL のサーバーを起動する必要があります。
以下のコマンドを実行してください。

brew services start postgresql

ポイント: brew services start を使うと、Mac を再起動しても PostgreSQL が自動で起動します。

動作を確認するには、以下のコマンドを使います。

pg_ctl -D /usr/local/var/postgres status

出力例(正常時):

pg_ctl: server is running

エラーが出た場合は、以下を試してください。

pg_ctl -D /usr/local/var/postgres start

2. PostgreSQL に接続する

PostgreSQL には、デフォルトで postgres という管理ユーザーがいます。
このユーザーで PostgreSQL に接続します。

psql postgres

成功すると、以下のような psql の対話モード(シェル)が開きます。

psql (14.3)
Type "help" for help.

postgres=#

もし psql: command not found というエラーが出たら、以下を試してください。

export PATH="/usr/local/opt/postgresql/bin:$PATH"

3. 新しいデータベースを作成する

psql のシェルで、以下のコマンドを実行します。

CREATE DATABASE mydb;

ポイント: mydb の部分は好きな名前に変更できます。

データベースが作成されたか確認するには、以下を実行します。

\l

データベースの一覧が表示され、その中に mydb があれば成功です!


4. データベースに接続する

作成したデータベースに接続するには、以下を実行します。

psql mydb

または、psql のシェル内で

\c mydb

と入力しても OK です。

成功すると、プロンプトが以下のように変わります。

You are now connected to database "mydb" as user "postgres".
mydb=#

5. テーブルを作成する

データを保存するには「テーブル」を作成する必要があります。
例えば、「users」というテーブルを作るには以下の SQL を実行します。

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    age INT
);

解説

  • id SERIAL PRIMARY KEY → 自動で連番を振る主キー
  • name TEXT NOT NULL → 名前(必須)
  • age INT → 年齢(整数)

作成したテーブルを確認するには以下を実行します。

\d

または

\d users

users テーブルの詳細を表示できます。


6. データを追加する

テーブルにデータを追加してみましょう。

INSERT INTO users (name, age) VALUES ('Taro', 25);
INSERT INTO users (name, age) VALUES ('Hanako', 30);

データが追加されたか確認するには、以下を実行します。

SELECT * FROM users;

ポイント: SQL のコマンドは ; を忘れないようにしましょう!

実行すると、以下のように表示されるはずです。

 id |  name  | age
----+--------+-----
  1 | Taro   |  25
  2 | Hanako |  30
(2 rows)

7. PostgreSQL を終了する

作業が終わったら、psql を終了しましょう。

\q

これで psql のシェルを抜けられます。

もし PostgreSQL のサーバーを停止したい場合は、以下を実行してください。

brew services stop postgresql

まとめ

  1. PostgreSQL を起動
    brew services start postgresql
    
  2. PostgreSQL に接続
    psql postgres
    
  3. データベースを作成
    CREATE DATABASE mydb;
    
  4. データベースに接続
    psql mydb
    
  5. テーブルを作成
    CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT NOT NULL, age INT);
    
  6. データを追加
    INSERT INTO users (name, age) VALUES ('Taro', 25);
    
  7. データを確認
    SELECT * FROM users;
    
  8. 終了
    \q
    

DBの確認

以下のコマンドを入力して、作成したデータベース mydb があるか確認してみてください。

\l

もし mydb が一覧に表示されれば、データベースの作成は成功しています 🎉
一覧に mydb がない場合は、もう一度 CREATE DATABASE mydb; を実行してみてください。


💡 psql コマンドの注意点

  • \lデータベースの一覧を表示/l ではなく \l
  • \c mydbデータベースに接続
  • \qpsql を終了

postgres-#mydb=# の違いをわかりやすく説明します!


postgres=#mydb=# の違い

PostgreSQL のプロンプト(コマンド入力画面)の "最初の部分" は、現在接続しているデータベースの名前 を表しています。

プロンプト 説明
postgres=# postgres データベースに接続している状態
mydb=# mydb データベースに接続している状態

例えば、以下のように \c mydb を実行すると、プロンプトが mydb=# に変わります。

\c mydb
You are now connected to database "mydb" as user "postgres".
mydb=#

これは、mydb というデータベースの中にいる ことを示しています! 🎉


postgres-# になるのはなぜ?

postgres-# という表示は SQL コマンドの入力が途中になっている状態 です。

例えば、以下のように SELECT 文を途中まで書いて ;(セミコロン)を付け忘れると…

SELECT * FROM users
postgres-#

となります。

これは、まだ SQL 文が完結していない ので、次の行で続きを入力するのを待っている状態です。
ここで ; を追加すると、実行されます。

SELECT * FROM users;
 id |  name  | age
----+--------+-----
  1 | Taro   |  25
  2 | Hanako |  30
(2 rows)
postgres=#

プロンプトが postgres=# に戻ったら、通常の入力待ち状態 に戻っています!


postgres-# から抜ける方法

もし SQL 文を途中でやめたい 場合は、以下のキーを押してください。

Ctrl + C

これで 未完成のコマンドをキャンセル し、通常の postgres=# に戻ります!


まとめ

🔹 postgres=#postgres データベースに接続している状態
🔹 mydb=#mydb データベースに接続している状態
🔹 postgres-#SQL コマンドの入力が途中の状態; を忘れている)
🔹 Ctrl + Cpostgres-# の状態を抜ける


次に試してみること

1️⃣ \c mydb を実行して、mydb=# に切り替えてみる
2️⃣ SELECT * FROM users だけ入力して Enter を押し、postgres-# になるか試す
3️⃣ Ctrl + C を押して通常のプロンプトに戻す

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?