シェア

はじめに

データベースによって維持されるデータを制御するための鍵は、追加および削除操作です。挿入するには、新しい行ごとにテーブルの列要件を満たす項目を指定します。削除するには、削除したいテーブル内の行の一致条件を指定します。

この記事では、INSERT および DELETE コマンドを使用して SQLite テーブルにデータを追加または削除する方法を詳しく説明します。構文と、単一のステートメントで複数の行を操作するためのコマンドの少し高度なバリエーションについて説明します。

テーブルの構造の確認

データの挿入を開始する前に、テーブルの構造を知っておく必要があります。これにより、テーブルの列、データ型、および制約の要件を満たすことができます。

student というテーブルの構造を見つけるには、SQLite の .schema <table_name> コマンドを使用できます。

.schema student
CREATE TABLE student (id INTEGER PRIMARY KEY, first_name TEXT, last_name TEXT, age INTEGER, student_email TEXT NOT NULL, class TEXT);

出力には、テーブルの列名、データ型、および挿入されるデータの要件に関連するその他の情報が表示されます。

より読みやすい結果を得るには、.fullschema --indent コマンドを使用できます。これにより、接続されたデータベースのスキーマがより良い間隔で表示されます。

.fullschema --indent
CREATE TABLE student (
id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
age INTEGER,
student_email TEXT NOT NULL,
class TEXT
);

注意.fullschema コマンドには、統計テーブルが存在する場合、それらのダンプも含まれます。ここではそれについては説明しませんが、場合によってはこの出力があると役立つことがあります。

INSERT を使用してテーブルに新しいレコードを追加する

SQL の INSERT コマンドは、既存のテーブルに行データを追加するために使用されます。テーブルの構造がわかったら、テーブルの列と、新しいレコードに挿入する対応する値を一致させるコマンドを作成できます。

コマンドの基本的な構文は次のとおりです。

INSERT INTO my_table(column1, column2)
VALUES ('value1', 'value2');

列リストの列は、値リスト内で提供される値に直接対応します。

例として、上記の student テーブルに新しい学生を挿入するには、次のように入力します。

INSERT INTO student(first_name, last_name, student_email)
VALUES ('Bob', 'Smith', 'bob.smith@smith.com');

first_namelast_namestudent_email の値を指定します。id フィールドは空のままにします。SQLite がこのフィールドを自動的に入力できるためです。テーブルをクエリすると、新しいレコードが追加されていることがわかります。

SELECT * FROM student;
+-------------+------------+-----------+---------------------+
id | first_name | last_name | student_email |
+-------------+------------+-----------+---------------------+
1 | Bob | Smith | bob.smith@smith.com |
+-------------+------------+-----------+---------------------+

INSERT を使用して一度に複数の行を追加する

一度に複数の行のデータを挿入する方が、挿入を 1 つずつ行うよりもデータベースを効率的に設定する方法です。SQLite では、同じテーブルに追加する複数の行を指定できます。新しい各行は括弧で囲まれ、括弧の各セットはカンマで区切られます。

複数レコード挿入の基本的な構文は次のようになります。

INSERT INTO my_table(column_name, column_name2)
VALUES
('value', 'value2'),
('value3', 'value4'),
('value5', 'value6');

これまで参照してきた student テーブルの場合、次の入力をタイプすることで、単一のステートメントで 3 人の新しい学生を追加できます。

INSERT INTO student(first_name, last_name, student_email)
VALUES
('Abigail', 'Spencer', 'abispence@university.com'),
('Tamal', 'Wayne', 'tamalwayne@university.com'),
('Felipe', 'Espinosa', 'felesp@university.com');

DELETE を使用してテーブルから行を削除する

SQL の DELETE コマンドは、INSERT の補完として機能し、テーブルからレコードを削除するために使用されます。テーブルから行を削除するには、WHERE 句内に条件を指定して、ターゲットにする行を指定する必要があります。

基本的な構文は次のようになります。

DELETE FROM <table>
WHERE <condition>;

たとえば、last_nameWayne に設定されている student テーブルのすべての行を削除するには、次のように入力します。

DELETE FROM student
WHERE last_name = 'Wayne';

DELETE を使用して一度に複数の行を削除する

INSERT と同様に、DELETE コマンドを一度に 1 つずつ使用するのは面倒な場合があります。WHERE 句の選択条件を操作することで、DELETE を使用して一度に複数の行を削除できます。

たとえば、id で複数の行を削除するには、次のように入力します。

DELETE FROM student
WHERE id in (1,2);

WHERE 句を省略することで、特定のテーブルからすべての行を削除することもできます。

DELETE FROM student;

結論

この記事では、SQLite テーブルからデータを挿入および削除する方法の基本について説明しました。最初に、テーブル構造を見つけて、有効なデータ挿入クエリの構築を確実にする方法について説明しました。次に、データを一度に 1 つずつ、およびバッチで挿入および削除する方法について説明しました。

INSERT および DELETE コマンドは、テーブル内で維持されるデータを管理するための最も便利なコマンドの一部です。これらの基本的な構文と操作を理解することで、データベース構造からレコードを迅速かつ効果的に追加または削除できるようになります。

著者について
Alex Emerich

Alex Emerich

Alex は、典型的なバードウォッチング好き、ヒップホップ好きの読書家であり、データベースについて書くことも楽しんでいます。彼は現在ベルリンに住んでおり、レオポルド・ブルームのように街を目的もなく歩いている姿が見られます。