テーブル作成・編集時に役立つ!SQLiteで主キーを定義・追加する方法
SQLite に主キーを追加する方法
テーブル作成時に主キーを定義する
テーブルを作成する際に、CREATE TABLE
ステートメントに PRIMARY KEY
制約を追加することで、主キーを定義できます。
CREATE TABLE テーブル名 (
列名1 型1,
列名2 型2,
...
PRIMARY KEY (列名)
);
例:
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
この例では、employees
テーブルに id
という名前の主キー列が作成されます。id
列は、INTEGER
型で、NULL 値を含めることはできません。
既存のテーブルに主キーを追加するには、ALTER TABLE
ステートメントを使用します。
ALTER TABLE テーブル名 ADD PRIMARY KEY (列名);
ALTER TABLE employees ADD PRIMARY KEY (id);
この例では、employees
テーブルに id
という名前の主キー列が追加されます。
主キーの制約
- 主キーは、テーブル内の各レコードを一意に識別する必要があります。
- 主キーは、NULL 値を含めることはできません。
- 主キーは、1 つのテーブルにつき 1 つのみ定義できます。
複合主キー
複数の列を組み合わせて主キーとして使用することもできます。
CREATE TABLE テーブル名 (
列名1 型1,
列名2 型2,
...
PRIMARY KEY (列名1, 列名2)
);
CREATE TABLE orders (
order_id INTEGER,
customer_id INTEGER,
PRIMARY KEY (order_id, customer_id)
);
この例では、orders
テーブルに order_id
と customer_id
という 2 つの列を組み合わせた複合主キーが作成されます。
-- employees テーブルを作成する
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
-- データを挿入する
INSERT INTO employees (name, age) VALUES ("John Doe", 30);
INSERT INTO employees (name, age) VALUES ("Jane Doe", 25);
-- データを取得する
SELECT * FROM employees;
-- 結果:
-- id | name | age
-- --- | -------- | ---
-- 1 | John Doe | 30
-- 2 | Jane Doe | 25
既存のテーブルに主キーを追加する
-- テーブル employees に主キーを追加する
ALTER TABLE employees ADD PRIMARY KEY (id);
-- データを取得する
SELECT * FROM employees;
-- 結果:
-- id | name | age
-- --- | -------- | ---
-- 1 | John Doe | 30
-- 2 | Jane Doe | 25
-- orders テーブルを作成する
CREATE TABLE orders (
order_id INTEGER,
customer_id INTEGER,
PRIMARY KEY (order_id, customer_id)
);
-- データを挿入する
INSERT INTO orders (order_id, customer_id) VALUES (1, 100);
INSERT INTO orders (order_id, customer_id) VALUES (2, 200);
-- データを取得する
SELECT * FROM orders;
-- 結果:
-- order_id | customer_id
-- -------- | --------
-- 1 | 100
-- 2 | 200
SQLite で主キーを追加するその他の方法
GUI ツールを使用する
SQLite を操作するための GUI ツールを使うと、コードを書かずに主キーを追加することができます。
SQLite データベースブラウザは、SQLite データベースを視覚的に操作するためのツールです。多くのデータベースブラウザは、主キーを追加するための機能を提供しています。
仮想テーブルを使用する
仮想テーブルは、実際のテーブルとは異なり、データベースファイルに保存されないテーブルです。仮想テーブルを使用して、主キーを含む新しいテーブルを作成することができます。
ビューを使用する
sqlite