共有

はじめに

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

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

テーブルの構造の確認

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

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人の新しい学生を1つのステートメントで追加できます。

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>;

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

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

アレックス・エメリッチ

アレックスは、鳥の観察、ヒップホップ好きの読書家で、データベースについて書くことも楽しんでいます。現在はベルリンに住んでおり、レオポルド・ブルームのようにあてもなく街を歩く姿が見られます。
© . All rights reserved.