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?

PostgreSQL:CREATE DATABASEからSELECTまで実践

0
Last updated at Posted at 2026-09-13

今回はPostgreSQLの学習として、Databaseの作成からSELECTまでを自分で実行しました。

途中で起きたエラーと修正も含めて、操作する場所、SQLの構文、取得したデータの意味を整理します。

所要時間は15分ほどです。
それでは、さっそく始めていきましょう!

今日のテーマと到達目標

今回はマスターカリキュラムのPhase これまで学んだことの確認テストです。到達目標は「DB作成からSELECTまで自力で実施する」です。

今回は練習用のDatabaseと商品Tableを作りました。

前提と用語の定義

用語 意味
PostgreSQL Databaseを管理するDBMS
Database 接続先として指定し、SchemaやTableなどを管理する単位
Schema Database内でTableなどの名前を管理する名前空間
Table Columnの定義とRowのデータを持つDB Object
Column Tableで名前とデータ型などが定義される列
Row 各Columnに対応する値の組
SQL Databaseの定義やデータ操作を記述する言語
psql PostgreSQLに接続して操作するクライアント
シェル ターミナルでプログラムの起動などのコマンドを受け付けるプログラム
識別子 SQL内でTable名やColumn名などを指定する名前
文字列リテラル SQLに直接記述する文字列の値

構造を整理する

今回のTable名はproductsです。1 Rowは商品1種類のデータを表します。

Column Data Type 格納する値の意味
product_id INTEGER 商品を識別するための番号
product_name TEXT 商品名
price_yen INTEGER 商品の価格。単位は円

product_idとprice_yenは同じ整数型ですが、商品の識別用の番号と価格という異なる役割を持ちます。今回はキーや制約を設定する課題ではありません。

また、シェルからpsqlを起動する操作と、psql内でSQLを実行する操作を区別します。

シェル
└── psqlを起動
    └── PostgreSQLの指定Databaseへ接続
        └── SQLを実行

PostgreSQLでの操作

以下は学習時に入力した操作を、読みやすく改行して整理したものです。

1. Databaseを作成する

接続済みのpsqlで実行しました。

CREATE DATABASE day14_practice;

実行結果は次のとおりでした。

CREATE DATABASE

2. 作成したDatabaseへ接続する

最初はpsql内にpsqlの起動コマンドを書いてしまいました。その後、次のメタコマンドでpsqlを終了しました。

\q

シェルに戻ってから、以下を実行しました。このパスは今回のMac環境のものです。

/opt/homebrew/opt/postgresql@17/bin/psql day14_practice

接続後のプロンプトは次の表示になりました。

 day14_practice=#

3. Tableを作成する

CREATE TABLE products (
    product_id INTEGER,
    product_name TEXT,
    price_yen INTEGER
);

実行結果です。

CREATE TABLE

4. Rowを追加する

修正後に成功したSQLは次のとおりです。

INSERT INTO products (product_id, product_name, price_yen)
VALUES (01, 'onigiri', 100);

実行結果です。

INSERT 0 1

末尾の1は追加したRowが1行であることを表します。

結果の確認

3つのColumnを指定して、追加したRowを取得しました。

SELECT product_id, product_name, price_yen
FROM products;

共有した実行画面には、次の結果が表示されました。

 product_id | product_name | price_yen
------------+--------------+-----------
          1 | onigiri      |       100
(1 行)

product_idに入力した01は整数の1として表示されました。商品名はonigiri、価格は100円です。

今日の演習と確認問題

Database作成・接続・Table作成・Row追加・SELECTを実行した後、次の質問に回答しました。

確認問題 回答
このTableの1 Rowは何を表すか 1件の商品データ
product_idとprice_yenはそれぞれ何を表すか product_idは商品ID、price_yenは商品価格

この演習での「1件の商品データ」は、商品1種類についてのデータです。価格の単位は円です。

理解したこと・間違えたこと

psqlの起動コマンドを入力する場所

psql内に起動コマンドを入力した後、\qで終了し、シェルから起動し直しました。

psql内で接続先を変更する方法として\c day14_practiceもあります。ただし、今回の実行画面で確認した接続方法は、シェルからの起動し直しです。

INSERTの構文

最初はINSERT ROW ...と書き、ROW付近の構文エラーになりました。対象Tableを指定するINSERT INTO productsと、値を指定するVALUESを使う形に修正しました。

文字列の引用符

次に、引用符を付けずにonigiriと書き、次のエラーになりました。

ERROR: column "onigiri" does not exist

引用符のないonigiriがColumn名として解釈されたためです。文字列リテラルの'onigiri'に修正して、追加できました。

合格条件と学習記録

この学習カリキュラムでは、到達目標を次の実技と説明で確認しました。

確認項目 確認できた根拠
Databaseを作成して接続する CREATE DATABASEの結果と接続後のプロンプト
指定されたColumnでTableを作る 入力SQLとCREATE TABLEの結果
Rowを追加し、SELECTで取得する INSERT 0 1と取得した1行の結果
RowとColumnの意味を説明する 商品データ・商品ID・商品価格についての回答

修正を経て全項目を確認できたため、学習側の判定をcompletedとしました。

まとめ

操作 使用したSQL・コマンド
Databaseを作成 CREATE DATABASE
psqlを終了 \q
シェルから接続 psqlと接続先Database名を指定
Tableを作成 CREATE TABLE
Rowを追加 INSERT INTO ... VALUES
Rowを取得 SELECT ... FROM

操作を実行する場所と、SQL内で指定する名前・値を区別しながら、Database作成からデータ取得までを実施できました。

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?