DB Browser for SQLiteを使ったSQLの実行

この記事では、RDBMSの「SQLite」のデータベースをGUIで操作できるソフト「DB Browser for SQLite」を使って、簡単なSQLを実行する方法について解説しています。

先月、DS検定を受験したのですが、出題内容にSQLに関する項目があり、普段DBを使わない人にとっては、本格的なRDBMSをインストールして勉強するのは敷居が高いかと思いましたので、勉強用にSQLを実行してみたい人向けに「DB Browser for SQLite」を使ってSQLを実行する方法をまとめてみました。

「SQLite」は、通常はプログラムやコマンドラインから操作できますが、「DB Browser for SQLite」を使うとWindowsの画面からSQLiteを操作できるため、最初はこちらの方が理解しやすいかと思い、今回の解説で利用させていただくことにしました。

[ DB Browser for SQLite ] https://sqlitebrowser.org/
[ SQLite ] https://www.sqlite.org/index.html

(補足)まだ内容のチェックができていない部分があるため、間違い、誤記等は、気付きしだい修正させていただきます。

このページの説明は「データサイエンティスト検定(リテラシーレベル)公式リファレンスブック 第2版 第2刷」の下記項目の内容が該当しているかと思います。
DE51~DE54(P.170~173)、DE78(P.178)、DE80~DE81(P.180~181)、DE88~DE89(P.185~187)、DE94(P.190)
SQLのパターンは、今後も追加させていただく予定です。
※書籍名が長いため、以降の説明では「DS検定 公式本」と記載させていただきます。

[書籍URL] https://gihyo.jp/book/2022/978-4-297-12832-6

説明内容

今回は、以下の流れで説明を行います。

大まかな流れは、「1~2. ZIPファイルをダウンロード&解凍」→「 3~13. SQLを色々試す」→ 「14. 終わったら 1. のフォルダを削除」するだけですので、気軽に試せるかと思います。
※動作確認は、Windows(Windows 10 Pro 64bit版)で行った内容となります。

  1. DB Browser for SQLite のダウンロードと展開
  2. DB Browser for SQLite の起動
  3. 作成するデータベースとテーブルの概要
  4. データベースの作成とテーブルの作成(CREATE TABLE)
  5. データの登録(INSERT)
  6. データ抽出&ソート(SELECT~ORDER BY)
  7. 抽出データの絞り込み(SELECT~WHERE)
  8. データのグループ化(SELECT~GROUP BY)
  9. テーブル結合1(カンマ版)
  10. テーブル結合2(JOIN版)
  11. データの更新(UPDATE)
  12. データの削除(DELETE)
  13. テーブルの削除(DROP TABLE)
  14. DB Browser for SQLite の削除
  15. おわり

1. DB Browser for SQLite のダウンロードと展開

1.1 DB Browser for SQLite のダウンロード

下記の DB Browser for SQLite のサイトへアクセスし 、「Download」タブを表示します。

 [ DB Browser for SQLite ] https://sqlitebrowser.org/

DB Browser for SQLite のダウンロード
DB Browser for SQLite のダウンロード

Windowsの環境に合わせて、ZIP版の「32bit用、64bit用」のどちらかをダウンロードして、任意のフォルダへ保存してください。

解説では ZIP版の Windows 64bit 用「DB.Browser.for.SQLite-3.12.2-win64.zip」を、下記のフォルダへダウンロードしました。

[ 保存先] C:\SQLiteTest\ ← 保存先は任意の場所で可

1.2 ZIPファイルの展開

さらにダウンロードしたZIPファイルを任意の場所へ展開します。

[ 展開先] C:\SQLiteTest\DB Browser for SQLite\ ← 今回はこのフォルダへ展開

DB Browser for SQLite の展開
DB Browser for SQLite の展開

展開したフォルダ内にツール本体「DB Browser for SQLite.exe」とSQLite3のDLL「sqlite3.dll」があることを確認します。

DB Browser for SQLite のファイル確認
DB Browser for SQLite のファイル確認

以上で「DB Browser for SQLite のダウンロードと展開」作業は完了となります。

2. DB Browser for SQLite の起動

SQLiteを展開したフォルダの「DB Browser for SQLite.exe」をダブルクリックして、ツールを起動します。起動後は、下記画像のように何も登録されていない状態となります。この後で新規データベースを作成して、テーブルを作成していくことになります。

DB Browser for SQLite の起動
DB Browser for SQLite の起動

3. 作成するデータベース、テーブルの概要

今回は、サンプルのデータベースとして「受注管理DB」を作成し、4つのテーブルを作成します。

※「DS検定 公式本」のDE51~DE54(P.170~173)の内容を参考にして、一部改変させていただきました。また、データ型はRDBMSによって記述が異なり、今回はSQLite固有のものですので注意してください。

受注管理DB テーブル
受注管理DB テーブル

テーブルには、以下のようなデータを登録して利用します。
(データは、私が適当に考えたものになります)

受注管理DB データ
受注管理DB データ

4. データベースの作成とテーブルの作成(CREATE TABLE)

4.1 データベースの作成

DB Browser for SQLite にて、先ほど説明した「受注管理DB」のデータベースの作成を行います。

新たなデータベースを作成するには下記画像のように、ツールバーの「新しいデータベース」をクリックして、データベースファイル名「受注管理」を入力して「保存」ボタンをクリックします。
保存先フォルダは必要に応じて変更してください。

データベース「受注管理」作成

「保存」ボタンクリック後、引き続き「■ テーブルの作成」を行ってください。

(補足) SQLiteのデータベースファイルについて

SQLiteでは、データベースが1ファイルに保存されます。

今回の例では「保存」ボタンクリック後に、「C:\SQLiteTest\」フォルダ内にデータベースファイル「受注管理.db」が作成されているかと思います。このファイルがSQLiteのデータベースファイルになります。

SQLiteのデータベースファイル
SQLiteのデータベースファイル

4.2 テーブルの作成

「保存」をボタンクリックすると、続いて「テーブルの定義を編集」画面が表示されます。

「テーブルの定義を編集」ダイアログ
「テーブルの定義を編集」ダイアログ

DB Browser for SQLite では、この画面でテーブルの作成(テーブル定義の登録)が行えます。
このほかにSQL文(CREATE TABLE)を実行してテーブルを作成することもできます。

今回は1テーブルはこの画面からでテーブルを作成し、残りの3テーブルはSQL文で登録を行います。
※どちらの方法でも構いません。

■ 「テーブルの定義を編集」画面での注文テーブルの作成

テーブル名、フィールド名は、通常は英単語やローマ字表記のものを使用しますが、今回は日本語表記(全角文字)のまま使用します。

(1)テーブル名の入力

作成するテーブル名「注文テーブル」を「テーブル」欄に入力します。
入力内容に合わせて、下段のテキストエリアのSQL文(CREATE TABLE)の内容が更新されます。

テーブル名を入力
テーブル名を入力

(2)フィールドの追加

フィールドタブの「追加」ボタンをクリックすると、フィールド一覧に新たに1フィールドが追加されれますので、名前、データ型、制約等を編集します。
制約[ NN:Not NULL、PK:Primary Key、AI:Auto Indent、U:Unique ]

フィールドの追加
フィールドの追加

残りのフィールドも追加します。

全フィールドを追加
全フィールドを追加

「OK」ボタンをクリックし、テーブルを登録します。

(3)テーブルの登録確認

メイン画面へ戻り、一覧に「注文テーブル」が登録されたことを確認します。
これで「注文テーブル」の作成は完了となります。
残りのテーブルは、SQL文(CREATE TABLE)で行います。

テーブルの登録確認
テーブルの登録確認

4.3 SQL文(CREATE TABLE)でのテーブル作成

「注文テーブル」は、「テーブルの定義を編集」画面から作成しましたが、残りの3テーブルは、SQL文で作成します。

4.3.1 テーブル作成SQL文(CREATE TABLE)の書式例

テーブル作成SQL文(CREATE TABLE)の書式の例になります。

CREATE TABLE テーブル名 (
  フィールド名1 データ型1 オプション,
  フィールド名2 データ型2 オプション,
  ...
  PRIMARY KEY(フィールド名1,フィールド名2,...)
  ...
);

※カラム名(列名)は、「DB Browser for SQLite」の記載に合わせて「フィールド名」としています。

(1)実行するSQL文(CREATE TABLE)
以下に、テーブル作成用のSQL文を記載します。

CREATE TABLE 注文明細テーブル (
  注文ID TEXT,
  商品ID TEXT,
  数量   INTEGER NOT NULL,
  PRIMARY KEY(注文ID,商品ID)
);
CREATE TABLE 顧客マスタ (
  顧客ID   TEXT,
  顧客名   TEXT NOT NULL,
  住所     TEXT,
  電話番号 TEXT,
  PRIMARY KEY(顧客ID)
);
CREATE TABLE 商品マスタ (
  商品ID TEXT,
  商品名 TEXT NOT NULL,
  価格   INTEGER NOT NULL,
  PRIMARY KEY(商品ID)
);

「注文テーブル」は登録済みですが、参考としてSQL文を記載しておきます。

CREATE TABLE 注文テーブル (
  注文ID TEXT,
  顧客ID TEXT NOT NULL,
  日付   TEXT NOT NULL,
  PRIMARY KEY(注文ID)
);

(2)SQL文の入力

SQL文の実行は「SQL実行」タブから行います。
画像は「注文明細テーブル」作成用のSQL文(CREATE TABLE)を入力したものになります。

テーブル作成(CREATE TABLE)
テーブル作成(CREATE TABLE)

(3)SQL文の実行と作成したテーブルの確認

入力したSQL文を実行するには、ツールバーの「青い三角」ボタンをクリックします。
下段のテキストエリアに、実行結果が出力されます。エラーが発生した場合は、SQL文を見直して修正してください。これで「注文明細テーブル」の作成は完了です。
同様に「顧客マスタ」「商品マスタ」のSQL文も実行してください。

SQL文(CREATE TABLE)実行結果
SQL文(CREATE TABLE)実行結果

SQL実行後、「データベース構造」タブに戻り、4テーブルになったことを確認してください。

作成したテーブルの確認
作成したテーブルの確認

これでテーブルの作成作業は、完了となります。

4.4 データベースファイルの保存とプロジェクトファイルの保存

(1)データベースファイルへの保存

これまでのテーブル設定の内容をデータベースファイルへ保存します。
ツールバーの「変更を書き込み」ボタンをクリックすると、設定内容がデータベースファイルへ保存され、4.1で作成したデータベースファイルが更新されます。

変更を書き込み
変更を書き込み

(2)プロジェクトの保存

先ほどのデータベースファイルの保存とは別に、ツールのプロジェクトの設定についてもファイルへ保存しておきます。
プロジェクトの保存は、メニューから「ファイル」>「プロジェクトを保存」をクリックし、下記の画像のようにプロジェクトのファイル名を入力して保存します。

プロジェクトの保存
プロジェクトの保存

今後は、(1)データベースファイル、(2)プロジェクトファイルとも、任意のタイミングで保存するようにしてください。
どちらのファイルとも「ファイル」メニューから開くことができます。

5. データの登録(INSERT)

5.1 データ登録SQL文(INSERT)の書式例

テーブルへのデータの登録は、SQL文(INSERT)で行います。
SQL文の書式は、以下のようになります。
基本的な2パターンを例として記載しています。
全てのフィールド(カラム、列)のデータを登録する場合は、2つ目のようにフィールド名を省略することができます。今回作成するSQLは、全て「フィールド名指定」で行うことにします。

--データ登録(フィールド名指定)
INSERT INTO テーブル名(フィールド名1, フィールド名2,...) VALUES(値1, 値2,...);
--データ登録(フィールド名省略)
INSERT INTO テーブル名 VALUES(値1, 値2,...);

※カラム名(列名)は、「DB Browser for SQLite」の記載に合わせて「フィールド名」としています。

(1)実行するSQL文(INSERT)

以下に、データ登録用のSQL文を記載します。

--注文テーブルのデータ登録
INSERT INTO 注文テーブル(注文ID, 顧客ID, 日付) VALUES('0001', '003', '2023-06-22');
INSERT INTO 注文テーブル(注文ID, 顧客ID, 日付) VALUES('0002', '002', '2023-06-30');
INSERT INTO 注文テーブル(注文ID, 顧客ID, 日付) VALUES('0003', '002', '2023-07-03');
INSERT INTO 注文テーブル(注文ID, 顧客ID, 日付) VALUES('0004', '001', '2023-07-03');
INSERT INTO 注文テーブル(注文ID, 顧客ID, 日付) VALUES('0005', '001', '2023-07-21');
--注文明細テーブルのデータ登録
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0001', 'B02', '2');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0001', 'D03', '1');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0002', 'A02', '5');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0003', 'A01', '3');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0003', 'A02', '3');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0003', 'C01', '3');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0004', 'B02', '1');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0004', 'B03', '1');
INSERT INTO 注文明細テーブル(注文ID, 商品ID, 数量) VALUES('0005', 'B02', '2');
--顧客マスタのデータ登録
INSERT INTO 顧客マスタ(顧客ID, 顧客名, 住所, 電話番号) VALUES('001', '顧客A', 'テスト市あいう町11', '0123-45-XXXX');
INSERT INTO 顧客マスタ(顧客ID, 顧客名, 住所, 電話番号) VALUES('002', '顧客B', '検証市かきく町222', '01-XXXX-9789');
INSERT INTO 顧客マスタ(顧客ID, 顧客名, 住所, 電話番号) VALUES('003', '顧客C', 'テスト市さしす町3-2', '0987-65-XXXX');
INSERT INTO 顧客マスタ(顧客ID, 顧客名, 住所, 電話番号) VALUES('004', '顧客D', 'テスト市あいう町1-2', '0123-45-YYYY');
--商品マスタのデータ登録
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('A01', '商品A01', '1200');
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('A02', '商品A02', '800');
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('B01', '商品B01', '500');
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('B02', '商品B02', '800');
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('C01', '商品C01', '1500');
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('D01', '商品D01', '2000');
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('D02', '商品D02', '1500');
INSERT INTO 商品マスタ(商品ID, 商品名, 価格) VALUES('D03', '商品D03', '3000');

(2)SQL文の入力

SQL文の実行は「SQL実行」タブから行います。
画像は「注文テーブル」のデータ登録用のSQL文(INSERT)を入力し、「青い三角」ボタンでSQL文を実行した結果になります。

データ登録
データ登録

これで「注文テーブル」のデータ登録は完了です。
同様に「注文明細テーブル」「顧客マスタ」「商品マスタ」のSQL文も実行してください。

(3)テーブルデータの確認

登録したテーブルデータは「データ閲覧」タブで確認します。
「テーブル」ドロップダウンで、表示するテーブルデータを切り替えます。

「注文テーブル」にデータ5件が登録されました。

登録データの確認
登録データの確認

6. データの抽出(SELECT~ORDER BY)

6.1 データ抽出SQL文(SELECT~ORDER BY)の書式例

テーブルデータの抽出を、SQL文(SELECT)で行います。
抽出結果をソートするには「ORDER BY」句でソート対象のフィールドを指定します。
SQL文の書式(参考例)は、以下のようになります。

--データ抽出(ソートなし)
SELECT フィールド名1, フィールド名2,...
FROM テーブル名
;
--データ抽出(ソートあり)
SELECT フィールド名1, フィールド名2,...
FROM テーブル名
ORDER BY フィールド名1, フィールド名2,...
;

6.2 実行するSQL文(SELECT)とSQLの実行

■ データ抽出(ソートなし)

以下は、「注文テーブル」の「注文ID, 顧客ID, 日付」データを抽出するSQL文になります。

--データ抽出(ソートなし)
SELECT 注文ID, 顧客ID, 日付
FROM 注文テーブル
;

SQLの実行後、注文テーブルの「注文ID, 顧客ID, 日付」のデータが抽出されました。

データ抽出 ソートなし
データ抽出 ソートなし

■ データ抽出(ソートあり)

以下は、「注文テーブル」の「注文ID, 顧客ID, 日付」データを抽出し、さらに「顧客ID」の昇順、「日付」の降順でソートするSQL文になります。

--データ抽出(ソートあり)
SELECT 注文ID, 顧客ID, 日付
FROM 注文テーブル
ORDER BY 顧客ID ASC, 日付 DESC
;

SQLの実行後、注文テーブルの「注文ID, 顧客ID, 日付」のデータが、「顧客ID」の昇順、「日付」の降順でソートされて抽出されました。

データ抽出 ソートあり
データ抽出 ソートあり

7. 抽出データの絞り込み(SELECT~WHERE)

7.1 データ抽出SQL文(SELECT~WHERE)の書式例

テーブルデータの抽出を、SQL文(SELECT)で行う際に、抽出条件を指定する場合は「WHERE句」で抽出条件を指定します。
SQL文の書式(参考例)は、以下のようになります。

--抽出データの絞り込み
SELECT フィールド名1, フィールド名2,...
FROM テーブル名
WHERE 絞り込み条件
ORDER BY フィールド名1, フィールド名2,...
;

7.2 実行するSQL文(SELECT~WHERE)とSQLの実行

■ 抽出データの絞り込み

以下は、「注文テーブル」で「顧客IDが’002’以上」で「2023年6月以前」のデータを抽出するSQL文になります。

--抽出データの絞り込み
SELECT 注文ID, 顧客ID, 日付
FROM 注文テーブル
WHERE 顧客ID >= '002' AND 日付 <= '2023-06-30'
ORDER BY 注文ID, 顧客ID, 日付
;

SQLの実行後、注文テーブルの「顧客IDが’002’以上」で「2023年6月以前」のデータが抽出されました。

WHERE句での条件指定
WHERE句での条件指定

8. データのグループ化(SELECT~GROUP BY)

8.1 グループ化SQL文(SELECT~GROUP BY)の書式例

テーブルデータの抽出を、SQL文(SELECT)で行う際に、抽出結果をグループ化する場合は「GROUP BY句」でグループ化するフィールド指定します。
SQL文の書式(参考例)は、以下のようになります。

--抽出データのグループ化
SELECT フィールド名1, フィールド名2,...
FROM テーブル名
GROUP BY フィールド名1, フィールド名2,...
ORDER BY フィールド名1, フィールド名2,...
;

7.2 実行するSQL文(SELECT~GROPU BY)とSQLの実行

■ 抽出データのグループ化(集計 COUNT関数)

以下は、「注文テーブル」で「顧客ID」別の注文件数を集計するSQL文になります。
COUNT関数を使用して件数を集計しています。

--抽出データのグループ化
SELECT 顧客ID, COUNT(*) AS 注文件数
FROM 注文テーブル
GROUP BY 顧客ID
ORDER BY 顧客ID
;

SQLの実行後、注文テーブルの「顧客ID」別の注文件数が集計されました。

グループ化 集計結果
グループ化 集計結果

■ 抽出データのグループ化(合計 SUM関数)

以下は、「注文明細テーブル」で「商品ID」別の注文数の合計を集計するSQL文になります。
SUM関数を使用して合計額を集計しています。

--抽出データのグループ化
SELECT 商品ID, SUM(数量) AS 注文数合計
FROM 注文明細テーブル
GROUP BY 商品ID
ORDER BY 商品ID
;

SQLの実行後、注文明細テーブルの「商品ID」別の注文件数の合計が集計されました。

グループ化 合計結果
グループ化 合計結果

9. テーブル結合1(カンマ版)

9.1 テーブル結合SQL文(カンマ版)の書式例

2つ以上のテーブルのデータを指定した条件で結合(連結)して出力する場合に、FROM句 に結合対象のテーブル名をカンマ[ , ]で区切って指定します。結合条件は、WHERE句に記述します。
SQL文の書式(参考例)は、以下のようになります。

--テーブル結合1(カンマ版)
SELECT フィールド名1, フィールド名2,...
FROM テーブル名1 T1, テーブル名2 T2,...
WHERE T1.フィールド名1 = T2.フィールド名1
  AND T1.フィールド名2 = T2.フィールド名2
ORDER BY フィールド名1, フィールド名2,...
;

9.2 実行するSQL文(カンマ版)とSQLの実行

■ テーブル結合1(カンマ版)

以下は、「注文テーブル」と「注文明細テーブル」を「注文ID」をキーにして、キーが一致するデータを抽出するSQL文になります。
※「T1.*」のように*を指定すると、全フィールドの値が抽出対象になります。

--テーブル結合1(カンマ版)
SELECT T1.*, T2.商品ID, T2.数量
FROM 注文テーブル T1, 注文明細テーブル T2
WHERE T1.注文ID = T2.注文ID
ORDER BY T1.注文ID, T2.商品ID
;

SQLの実行後、「注文テーブル」と「注文明細テーブル」のデータを「注文ID」をキーにして、結合したデータが抽出されました。

テーブル結合1(カンマ版)
テーブル結合1(カンマ版)

10. テーブル結合2(JOIN版)

10.1 テーブル結合SQL文(JOIN版)の書式例

前章9では、テーブルの結合をカンマ[ , ]で区切って指定しましたが、今回は「JOIN句」を使用して結合を行います。
この章では、内部結合(INNER JOIN版)と左外部結合(LEFT OUTER JOIN版)の2パターンについてのみ、説明を行います。
SQL文の書式(参考例)は、以下のようになります。

--テーブル結合2(INNER JOIN版)
SELECT フィールド名1, フィールド名2,...
FROM テーブル名1 T1
INNER JOIN テーブル名2 T2
   ON T1.フィールド名1 = T2.フィールド名1
  AND T1.フィールド名2 = T2.フィールド名2
ORDER BY フィールド名1, フィールド名2,...
;
--テーブル結合2(LEFT OUTER JOIN版)
SELECT フィールド名1, フィールド名2,...
FROM テーブル名1 T1
LEFT OUTER JOIN テーブル名2 T2
   ON T1.フィールド名1 = T2.フィールド名1
  AND T1.フィールド名2 = T2.フィールド名2
ORDER BY フィールド名1, フィールド名2,...
;

10.2 実行するSQL文(JOIN版)とSQLの実行

■ テーブル結合2(INNER JOIN版)

以下は、「注文テーブル」と「注文明細テーブル」を「注文ID」をキーにして、キーが一致するデータを抽出するSQL文になります。9.の「カンマ版」と同様の処理となります。

--テーブル結合2(INNER JOIN版)
SELECT T1.*, T2.商品ID, T2.数量
FROM 注文テーブル T1
INNER JOIN 注文明細テーブル T2
   ON T1.注文ID = T2.注文ID
ORDER BY T1.注文ID, T2.商品ID
;

SQLの実行後、「注文テーブル」と「注文明細テーブル」のデータを「注文ID」をキーにして、結合したデータが抽出されました。

テーブル結合2(INNER JOIN版)
テーブル結合2(INNER JOIN版)

■ テーブル結合2(LEFT JOIN版)

以下は、「注文テーブル」と「注文明細テーブル」を「注文ID」をキーにして、キーが一致するデータを抽出するSQL文になります。INNER JOINと異なり、条件に一致するデータがない場合も比較元(下記例の場合は「注文テーブル」)のデータが抽出され、「注文明細テーブル」のフィールドは、全てNULLとなります。

今回は、「注文テーブル」のみに存在するデータを1件追加して、検証を行います。

--検証用に「注文テーブル」のみに存在するデータを1件追加
--  注文ID'1001'は「注文明細テーブル」に存在しないデータ
INSERT INTO 注文テーブル(注文ID, 顧客ID, 日付) VALUES('1001', '001', '2023-07-23');

--テーブル結合2(LEFT OUTER JOIN版)
SELECT T1.*, T2.商品ID, T2.数量
FROM 注文テーブル T1
LEFT OUTER JOIN 注文明細テーブル T2
  ON T1.注文ID = T2.注文ID
ORDER BY T1.注文ID, T2.商品ID
;

SQLの実行後、「INNER JOIN」で抽出されたデータに加えて、「注文テーブル」のみに存在している データも抽出され、「注文明細テーブル」の項目はNULLが設定されるようになりました。

テーブル結合2(LEFT JOIN版)
テーブル結合2(LEFT JOIN版)

11. データ更新(UPDATE)

11.1 データ更新SQL文(UPDATE)の書式例

テーブルデータの更新はSQL文(UPDATE)で行います。
SQL文の書式(参考例)は、以下のようになります。

--データ更新
UPDATE テーブル名
   SET フィールド名1 = 更新データ1,
       フィールド名2 = 更新データ2,
       ...
WHERE 更新条件
;

11.2 実行するSQL文(UPDATE)とSQLの実行

■ データ更新

以下は、「注文テーブル」で「注文IDが’1001’」のデータの日付 ‘2023-07-23’ を ‘2023-07-22’ へ更新するSQL文になります。

--更新前のデータ確認
SELECT 注文ID, 顧客ID, 日付
FROM 注文テーブル
WHERE 注文ID = '1001'
ORDER BY 注文ID, 顧客ID, 日付
;
--データ更新
UPDATE 注文テーブル
   SET 日付 = '2023-07-22'
WHERE 注文ID = '1001'
;
--更新後のデータ確認
SELECT 注文ID, 顧客ID, 日付
FROM 注文テーブル
WHERE 注文ID = '1001'
ORDER BY 注文ID, 顧客ID, 日付
;

更新前データ確認、注文テーブルの「注文IDが’1001’」の日付が ‘2023-07-23’ であることを確認します。

更新前データ確認
更新前データ確認

データ更新後、日付に ‘2023-07-22’ がセットされていることを確認できました。

更新後データ確認
更新後データ確認

12. データの削除(DELETE)

12.1 データ削除のSQL文(DELETE)の書式例

テーブルデータの削除はSQL文(DELETE)で行います。
SQL文の書式(参考例)は、以下のようになります。

--データ削除
DELETE FROM テーブル名
WHERE 削除条件
;

12.2 実行するSQL文(DELETE)とSQLの実行

■ データ削除

以下は、「注文テーブル」で「注文IDが’1001’」のデータを削除するSQL文になります。

--削除前のデータ確認
SELECT 注文ID, 顧客ID, 日付
FROM 注文テーブル
WHERE 注文ID = '1001'
ORDER BY 注文ID, 顧客ID, 日付
;
--データ削除
DELETE FROM 注文テーブル
WHERE 注文ID = '1001'
;
--削除後のデータ確認
SELECT 注文ID, 顧客ID, 日付
FROM 注文テーブル
WHERE 注文ID = '1001'
ORDER BY 注文ID, 顧客ID, 日付
;

削除前データ確認、注文テーブルの「注文IDが’1001’」のデータが抽出されることを確認します。

削除前データ確認
削除前データ確認

データ削除後、該当データが抽出されなくなったことを確認できました。

削除後データ確認
削除後データ確認

13. テーブルの削除(DROP TABLE)

13.1 テーブル削除のSQL文(DROP TABLE)の書式例

テーブルデータの削除はSQL文(DROP TABLE)で行います。
SQL文の書式(参考例)は、以下のようになります。

--テーブル削除
DROP TABLE テーブル名;

12.2 実行するSQL文(DROP TABLE)とSQLの実行

■ テーブル削除

以下は、「注文テーブル」を削除するSQL文になります。
※このSQLを実行すると、テーブルが削除されてしまうため、まだテーブルを利用する場合はSQLを実行する必要はありません。

--テーブル削除
DROP TABLE 注文テーブル;

--テーブル確認
SELECT *
FROM 注文テーブル
;

SQLの実行後、「注文テーブル」が正常に削除されることを確認します。

テーブル削除
テーブル削除

テーブル削除後、該当テーブルが抽出できなくなったことを確認できました。

テーブル削除確認
テーブル削除確認

14. DB Browser for SQLite の削除

※この処理は「DB Browser for SQLite」を削除する作業のため、まだツールを利用する場合は削除する必要はありません。ツールが不要になった場合に実行してください。

ツールを削除する場合は、手順「1.2 ZIPファイルの展開」で展開を行ったフォルダごと削除してください。

[ 展開先] C:\SQLiteTest\DB Browser for SQLite\ ← 手順ではこのフォルダを削除

フォルダを削除するだけで、ツールの削除が完了となります。

15. おわり

以上で、「DB Browser for SQLiteを使ったSQLの実行」の解説は終了となります。

■ 更新履歴
 2023/07/23 新規作成

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です