SQLite 外部キーとは? データの整合性を保ち、参照性を向上させる
外部キーとは?
- データの整合性を保つ:注文テーブルに存在しない顧客 ID を持つ注文を作成することはできません。
- データの参照性を向上させる:顧客 ID を使用して、注文テーブルから顧客テーブルに簡単にアクセスできます。
SQLite データベースブラウザで外部キーを作成するには、以下の手順に従います。
- テーブルを作成する
まず、外部キーを参照するテーブルと、外部キーを含むテーブルを作成する必要があります。
- 外部キーを含むテーブルを開く
外部キーを含むテーブルを SQLite データベースブラウザで開きます。
- 「構造」タブに移動する
テーブルの構造を表示するには、「構造」タブに移動します。
- 外部キーを作成する列を選択する
外部キーを含む列を選択します。
- 「外部キー制約」フィールドに外部キーの情報を入力する
以下の形式で外部キーの情報を入力します。
REFERENCES テーブル名 (列名)
テーブル名
: 外部キーを参照するテーブルの名前
- 「OK」ボタンをクリックする
外部キー制約が作成されます。
例
以下の例では、注文 テーブルに 顧客 テーブルの 顧客 ID を外部キーとして追加します。
CREATE TABLE 顧客 (
顧客ID INTEGER PRIMARY KEY,
名前 TEXT
);
CREATE TABLE 注文 (
注文ID INTEGER PRIMARY KEY,
顧客ID INTEGER,
商品名 TEXT
);
顧客 ID 列を選択します。
REFERENCES 顧客 (顧客ID)
外部キー制約が作成されたことを確認するには、以下の手順に従います。
- テーブルを開く
外部キー制約を持つテーブルを開きます。
- 外部キー制約を確認する
SQLite データベースブラウザで外部キーを作成するには、上記の簡単な手順に従うことができます。 外部キーは、データベースの整合性を保ち、データの参照性を向上させるために役立ちます。
-- テーブルを作成する
CREATE TABLE 顧客 (
顧客ID INTEGER PRIMARY KEY,
名前 TEXT
);
CREATE TABLE 注文 (
注文ID INTEGER PRIMARY KEY,
顧客ID INTEGER,
商品名 TEXT,
FOREIGN KEY (顧客ID) REFERENCES 顧客 (顧客ID)
);
-- 外部キー制約を確認する
SELECT * FROM sqlite_master
WHERE type = 'table'
AND name = '注文';
-- データを挿入する
INSERT INTO 顧客 (名前) VALUES ('山田太郎');
INSERT INTO 顧客 (名前) VALUES ('佐藤花子');
INSERT INTO 注文 (顧客ID, 商品名) VALUES (1, 'ノートパソコン');
INSERT INTO 注文 (顧客ID, 商品名) VALUES (2, 'スマートフォン');
-- 外部キー制約が機能していることを確認する
INSERT INTO 注文 (顧客ID, 商品名) VALUES (3, 'タブレット');
-- エラーが発生する:
-- 外部キー制約違反: 注文.顧客ID は 3 に存在しません
このサンプルコードは、SQLite データベースブラウザで外部キーを作成する方法を理解するのに役立ちます。
SQLite データベースブラウザで外部キーを作成する他の方法
SQL クエリを使用する
ALTER TABLE 注文
ADD FOREIGN KEY (顧客ID) REFERENCES 顧客 (顧客ID);
このクエリは、注文 テーブルに 顧客 ID という外部キーを追加します。
テーブル作成時に外部キーを指定する
CREATE TABLE 注文 (
注文ID INTEGER PRIMARY KEY,
顧客ID INTEGER,
商品名 TEXT,
FOREIGN KEY (顧客ID) REFERENCES 顧客 (顧客ID)
);
GUI ツールを使用する
SQLite データベースブラウザには、外部キーを作成するための GUI ツールが用意されている場合があります。 ツールバーのボタンをクリックしたり、メニューからコマンドを選択したりして、外部キーを作成できます。
どの方法を使用するかは、個人的な好みや状況によって異なります。 以下は、それぞれの方法の利点と欠点です。
方法 | 利点 | 欠点 |
---|---|---|
手順 | 簡単で分かりやすい | 手順を覚える必要がある |
SQL クエリ | 柔軟性が高い | SQL の知識が必要 |
テーブル作成時 | シンプル | テーブルを再作成する必要がある |
GUI ツール | 直感的で使いやすい | ツールに依存する |
SQLite データベースブラウザで外部キーを作成するには、いくつかの方法があります。 どの方法を使用するかは、個人的な好みや状況によって異なります。
sqlite