データベース入門
PostgreSQLをインストールして、SQLの学習を始めよう！
SRA OSS LLC
三和陽菜© 2024 SRA OSS LLC

1

会社紹介
SRA OSS合同会社

事業内容

所 在 地: 東京都豊島区南池袋2-32-8
設 立 日: 2022年6月17日
出資: 株式会社SRA
資 本 金: 7,000万円
社
長: 稲葉 香理顧
問: 石井 達夫
技術顧問: 増永 良文 (お茶の水女子大学名誉教授)

PostgreSQL
サポート開始1999

SRA OSS, Inc.
設立

2003

PowerGres
販売開始

2005

• オープンソースソフトウェア (OSS) 関連のサポート、製品開発・販売、構築・コンサル• OSSの教育、開発、コミュニティ運営支援• ソフトウェアの研究開発

Sylpheed Pro
販売開始

2007

libTextConv
販売開始

2009

Hinemos/Zabbix
サポート開始

2011

2012

OSSプロ
サポート開始© 2024 SRA OSS LLC

2014

Premija Viewer
販売開始

SRA OSS LLC
設立

2018

2022

Pgpool-II単体サポート開始

2

概要• データベース・SQLの初歩的な部分について解説• SQLの実行環境をWindowsで作る• PostgreSQLを使用• CLIツール© 2024 SRA OSS LLC

3

データベースとは何か© 2024 SRA OSS LLC

4

データベースとは• 狭義ではデータの集合• データベースを管理するためのシステム(DBMS)を含む
アプリケーション

目的に合わせた
多種多様な機能

データベース分離© 2024 SRA OSS LLC

データの保管・検索
共通的な処理5

リレーショナルデータベースとは• Relational Database Management
System(RDBMS)• リレーショナルモデルに基づく• 実世界をリレーションという二次元の表で表現• 最もよく使われているDBMS
id

name

price

1

もも298

2 マスカット 1980
3
© 2024 SRA OSS LLC

オレンジ398
6

PostgreSQLとは• オープンソースのRDBMS• 20年以上の歴史を持つ• 組織だって開発されている© 2024 SRA OSS LLC

7

Windows版インストール手順© 2024 SRA OSS LLC

8

インストーラをダウンロード• EDB社が提供するone click installerを使用• ビルド済みで簡単にインストールできる• ソースコードが公開されているので自分でビルドすることもできるが難しい• https://www.enterprisedb.com/downloads/p
ostgres-postgresql-downloads© 2024 SRA OSS LLC

9インストーラをダウンロード

今回は2024年7月の最新 16.3 のWindows用インストーラをダウンロード© 2024 SRA OSS LLC

10

インストーラの実行• ダウンロードできたらインストーラを起動• Nextをクリック© 2024 SRA OSS LLC

11

インストーラの実行• インストール先ディレクトリ
• 変更しなくてもよい• PG16のデフォルトはC:¥Program Files¥Postgres¥16© 2024 SRA OSS LLC

12

インストーラの実行• PostgreSQL Server• サーバとして動作• pgAdmin 4• GUIツール• Stack Builder• 追加アプリケーションのインストール• Command line Tool
• CLIツール© 2024 SRA OSS LLC

13

インストーラの実行• データディレクトリを指定• データベースが使用するファ
イル群がこのフォルダに保存• データベースクラスタとも呼ばれる© 2024 SRA OSS LLC

14

インストーラの実行• スーパーユーザpostgresのパスワードを指定• PostgreSQLでは慣習的にスーパーユーザはpostgres© 2024 SRA OSS LLC

15

インストーラの実行• データベースサーバが接続を待ち受けるポート番号を指定• 慣習的に5432が使用される© 2024 SRA OSS LLC

16

インストーラの実行• ロケールを指定• ロケールはアルファベットの並び順や通貨表示などに影響• 日本語と英語のみの場合、C(ロケールを使用しない)もよく使用される© 2024 SRA OSS LLC

17

インストーラの実行• 設定項目に間違いがないかを確認© 2024 SRA OSS LLC

18

インストーラの実行• Nextをクリック© 2024 SRA OSS LLC

19

インストーラの実行• インストールが実施される• 完了には数分かかる© 2024 SRA OSS LLC

20

インストーラの実行• Stack Builderを起動するかのチェックを外してFinish• 後からツールが必要になった
ときに起動すればよい© 2024 SRA OSS LLC

21

インストール後の構成• 各種アプリケーションの配置• データベースクラスタの作成• Windows サービスとして自動起動© 2024 SRA OSS LLC

22

インストール後の構成© 2024 SRA OSS LLC

23

データベースクラスタ• PostgreSQLが使用するディレクトリ(フォルダ)• インストール時に指定されたデータディレクトリ
• 以下が格納される• PostgreSQLが管理するデータ(テーブルなど)• PostgreSQL自身が使用するファイル• ログファイル
• 設定ファイル

© 2024 SRA OSS LLC

24

データベースクラスタ© 2024 SRA OSS LLC

25

SQL発行方法© 2024 SRA OSS LLC

26

SQL発行方法• CLIのSQL発行ツールpsqlを使用• SQLを発行するまでの手順と基本的なSQLを紹介• 学習用のデータベースを作成• データベースに接続• INSERT, SELECT, UPDATE, DELETE
問い合わせ(SQL送信)

結果を送信© 2024 SRA OSS LLC

27

環境変数の設定
1. インストール先ディレクトリを確認
2. Windows の「設定」を開き、「システム」>「詳細情報」＞「詳細設定」＞「環境変数」(検索で「環境変数」と入力してもよい)

3. Pathを選択して「編集」をクリック
4. 「新規」をクリックし、C:¥Program
Files¥PostgreSQL¥16¥binを入力

5. OKで閉じる© 2024 SRA OSS LLC

28

環境変数の設定確認• PowerShellを開いて、psql -Vと入力＃バージョン番号が返ってきたら成功
PS C:¥postgres> psql -V
psql (PostgreSQL) 16.3
#失敗している場合はエラーが発生
PS C:¥postgres> psql -V

psql : 用語 'psql' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。

© 2024 SRA OSS LLC

29

ユーザを作成• 接続用ユーザを作成する• 学習の場合は問題ないが、業務ではスーパーユー
ザの使用は最小限にする
PS C:¥postgres> createuser -U postgres -d -P testuser# 新しいロールのためのパスワードを2回入力
新しいロールのためのパスワード:
もう一度入力してください：# postgresユーザのパスワードを入力
パスワード:© 2024 SRA OSS LLC

30

データベースを作成• 学習に使用するデータベースを作成• createdbコマンドでデータベースを作成する
PS C:¥postgres> createdb -U testuser testdb# testuserのパスワードを入力
パスワード:© 2024 SRA OSS LLC

31

データベースを作成
データベースクラスタ

データベース

データベース

テーブル

テーブル

テーブル

テーブル

© 2024 SRA OSS LLC

32

psqlでデータべースに接続• psql: SQLを発行するためのツール• データベースにSQLを送信し、結果を受け取るためのCLIアプリケーション# -Uで接続ユーザ、-dで接続先DB名を指定

PS C:¥postgres> psql -U testuser -d testdb
ユーザー testuser のパスワード:
psql (16.3)"help"でヘルプを表示します。

※終了したいときは¥qと入力し、エンター

testdb=>© 2024 SRA OSS LLC

33

テーブルを作成• RDBMSでは、データを保管するための器(テーブル)を事前に定義する必要がある
CREATE TABLE テーブル名(列名1 データ型1, 列名2 データ型2...);
testdb=> CREATE TABLE fruit(id INT, name TEXT, price INT);
CREATE TABLE
testdb=> ¥d

リレーション一覧
スキーマ | 名前 | タイプ | 所有者----------+-------+----------+---------public| fruit | テーブル | testuser(1 行)© 2024 SRA OSS LLC

34

データを追加
INSERT INTO テーブル名(列名1...)VALUES (データ1...);
testdb=> INSERT INTO fruit(id, name, price) VALUES
testdb-> (1, 'もも', 298);

INSERT 0 1# 複数登録も可能testdb=> INSERT INTO fruit VALUES
testdb-> (2, 'マスカット', 1980),testdb-> (3, 'オレンジ', 398);
INSERT 0 2© 2024 SRA OSS LLC

35

データを検索
SELECT 列名 FROM テーブル名 [ オプション ] ;testdb=> SELECT * FROM fruit;
id |
name
| price----+------------+------1 | もも|298
2 | マスカット | 1980
3 | オレンジ|398(3 行)
testdb=> SELECT name, price FROM fruit WHERE price >= 300;
name
| price------------+------マスカット | 1980
オレンジ|
398
(2 行)
© 2024 SRA OSS LLC

36

データを更新UPDATE テーブル名 SET 列名 = データ
WHERE 検索条件;• WHERE句を指定しないと全件更新されてしまう
testdb=> UPDATE fruit SET price = price * 1.1 WHERE id = 1;
UPDATE 1
testdb=> SELECT * from fruit WHERE id = 1;
id | name | price----+------+------1 | もも |
328
(1 行)
© 2024 SRA OSS LLC

37

データを削除DELETE FROM テーブル名 WHERE 検索条件;• WHERE句を指定しないと全件削除されてしまう
testdb=> DELETE FROM fruit WHERE name = 'オレンジ';
DELETE 1
testdb=> SELECT * FROM fruit;
id |name| price----+------------+------2 | マスカット | 1980
1 | もも|328(2 行)© 2024 SRA OSS LLC

38

環境初期化方法© 2024 SRA OSS LLC

39

環境の初期化• 学習を進めていると、初期状態・ある時点までの状態にもどしたくなる• 環境を初期化する方法• テーブルデータの全件削除• テーブル、データベースの削除• バックアップ取得、リストア© 2024 SRA OSS LLC

40

データの全件削除• テーブルのデータをすべて削除するための構文
TRUNCATE テーブル名;• DELETE文でも削除できるが、TRUNCATE文の方が速い
testdb=> TRUNCATE fruit;
TRUNCATE TABLE

testdb=> SELECT * FROM fruit;id | name | price----+------+------(0 行)© 2024 SRA OSS LLC41

データベース、テーブルの削除• テーブルを削除するときDROP TABLE テーブル名;• データベースごと削除するときDROP DATABASE データベース名;
testdb=> DROP TABLE fruit;
DROP TABLE
testdb=> ¥d
リレーションが見つかりませんでした。

© 2024 SRA OSS LLC

42

データベースのバックアップを取得• データベースの内容をSQLに変換し、ファイルに保存• データベース単位でバックアップを取得• -C データベース自体を作成• -c データベースオブジェクトを削除

PS C:¥postgres> pg_dump -U testuser -Cc-f C:¥postgres¥testdb.sql testdb
パスワード:© 2024 SRA OSS LLC

43

バックアップのリストア• psqlにはファイルに記載されているSQLを実行するというオプションがある
PS C:¥postgres> psql -f C:¥postgres¥testdb.sql -U testuser-d postgres
ユーザー testuser のパスワード:
SETSET(中略)DROP DATABASE
CREATE DATABASE
ALTER DATABASE(略)© 2024 SRA OSS LLC

44

終わりに

© 2024 SRA OSS LLC

45

ご清聴ありがとうございました■講演資料■技術情報配信中！
YouTubehttps://www.youtube.com/c/sraoss-official

Tech Blog
https://www.sraoss.co.jp/tech-blog© 2024 SRA OSS LLC

46