SQLite でのデータ操作

SQLiteSQLiteBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験(Lab)では、初心者にとって理想的な軽量ファイルベースのデータベースである SQLite でのデータ操作の基本を学びます。LabEx VM 環境での実践を通して、データベースの作成、テーブルのセットアップ、データの挿入、レコードのクエリ、情報の更新、エントリの削除などの主要なタスクを実行します。このステップバイステップガイドは、データベース初心者向けに調整されたシンプルな SQL コマンドを使用して、データベース管理の確固たる基盤を構築するのに役立ちます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/init_db("Create SQLite Database") sqlite/SQLiteGroup -.-> sqlite/make_table("Create New Table") sqlite/SQLiteGroup -.-> sqlite/add_rows("Insert Multiple Rows") sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/edit_row("Update Single Row") sqlite/SQLiteGroup -.-> sqlite/drop_row("Delete Single Row") subgraph Lab Skills sqlite/init_db -.-> lab-552340{{"SQLite でのデータ操作"}} sqlite/make_table -.-> lab-552340{{"SQLite でのデータ操作"}} sqlite/add_rows -.-> lab-552340{{"SQLite でのデータ操作"}} sqlite/get_all -.-> lab-552340{{"SQLite でのデータ操作"}} sqlite/query_where -.-> lab-552340{{"SQLite でのデータ操作"}} sqlite/edit_row -.-> lab-552340{{"SQLite でのデータ操作"}} sqlite/drop_row -.-> lab-552340{{"SQLite でのデータ操作"}} end

SQLite データベースとテーブルの作成

この最初のステップでは、SQLite データベースを作成し、データを格納するためのテーブルをセットアップします。SQLite は、データを単一のファイルに格納する軽量なデータベースであり、学習目的での使用が容易です。

まず、LabEx VM でターミナルを開きます。デフォルトのパスは /home/labex/project です。

次に、mydb.sqlite という名前の SQLite データベースを作成しましょう。次のコマンドを実行して、データベースファイルを作成し、SQLite コマンドラインツールを開きます。

sqlite3 mydb.sqlite

SQLite シェル内に入ったことを示すプロンプトが表示されます。

SQLite version 3.x.x
Enter ".help" for usage hints.
sqlite>

次に、基本的なユーザー情報を格納するために、users という名前のテーブルを作成します。このテーブルには、id (一意の識別子)、name、および email の 3 つの列があります。sqlite> プロンプトで次の SQL コマンドを入力し、Enter キーを押します。

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL
);

このコマンドは、users テーブルをセットアップします。

  • id は、新しいエントリごとに自動的に増加する整数です。PRIMARY KEY 制約により、各 id が一意であることが保証され、AUTOINCREMENT により自動的に増加します。
  • name は、空にできないテキストフィールド (NOT NULL) です。
  • email も、空にできないテキストフィールド (NOT NULL) です。

コマンドが正常に実行された場合、出力は表示されません。

テーブルへのデータの挿入

users テーブルを作成したので、いくつかのデータを追加してみましょう。3 つのユーザーレコードをテーブルに挿入します。

sqlite> プロンプトで次のコマンドを 1 つずつ実行して、3 つのユーザーレコードを users テーブルに挿入します。

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]');
INSERT INTO users (name, email) VALUES ('Bob', '[email protected]');
INSERT INTO users (name, email) VALUES ('Charlie', '[email protected]');

これらのコマンドは、users テーブルに 3 つの行を追加します。新しいエントリごとに自動的にインクリメントされるため、id 列の値を指定しないことに注意してください。

  • INSERT INTO users (name, email) は、users テーブルの name 列と email 列にデータを挿入することを指定します。
  • VALUES ('Alice', '[email protected]') は、各レコードに挿入する値を提供します。

データが正しく追加されたことを確認するには、次のコマンドを実行して、テーブル内のすべてのレコードを表示します。

SELECT * FROM users;

期待される出力:

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

この出力は、各レコードの idname、および email を示しています。SELECT * コマンドは、指定されたテーブルからすべての列を取得します。

SELECT を使用したデータのクエリ

このステップでは、SELECT ステートメントを使用してテーブルからデータを取得する方法を学びます。データのクエリは、データベースを操作するための重要なスキルであり、保存されている情報を表示および分析できます。

sqlite> プロンプトで、まず users テーブルからすべてのデータを取得しましょう。次のコマンドを実行します。

SELECT * FROM users;

期待される出力:

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

SELECT ** は「すべての列」を意味するため、このコマンドは users テーブルのすべての列と行を表示します。

次に、表示する特定の列を選択できます。name 列と email 列のみを表示するには、次を実行します。

SELECT name, email FROM users;

期待される出力:

Alice|[email protected]
Bob|[email protected]
Charlie|[email protected]

このコマンドは、出力を指定された列のみに制限し、id を省略します。

最後に、WHERE 句を使用して条件でデータをフィルタリングします。'Alice' のレコードのみを表示するには、次を実行します。

SELECT * FROM users WHERE name = 'Alice';

期待される出力:

1|Alice|[email protected]

WHERE 句は、条件に一致する行に結果を絞り込みます。この場合、name が 'Alice' である行です。

  • SELECT * FROM users は、users テーブルからすべての列を選択します。
  • WHERE name = 'Alice' は、name 列が 'Alice' と等しい行のみを含むように結果をフィルタリングします。

テーブル内のレコードの更新

ここでは、UPDATE ステートメントを使用して、テーブル内の既存のデータを変更する方法を学びます。レコードの更新は、データベース内の情報を修正または変更する必要がある場合に重要です。

まず、users テーブルの現在のデータを確認して、何を更新するかを確認します。次を実行します。

SELECT * FROM users;

期待される出力:

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

次に、'Bob' のメールアドレスを [email protected] に更新します。sqlite> プロンプトで次のコマンドを入力します。

UPDATE users SET email = '[email protected]' WHERE name = 'Bob';

コマンドが成功した場合、出力は表示されません。このコマンドは、name が 'Bob' である行の email の値を変更します。WHERE 句は、一致するレコードのみが更新されるようにします。

  • UPDATE users は、users テーブルを更新することを指定します。
  • SET email = '[email protected]' は、email 列の新しい値を設定します。
  • WHERE name = 'Bob' は、更新を name が 'Bob' である行にのみ適用されるようにフィルタリングします。

テーブルを再度クエリして、変更を確認します。

SELECT * FROM users;

期待される出力:

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

Bob のメールが更新されたことがわかります。

テーブルからレコードを削除する

この最後のステップでは、DELETE ステートメントを使用してテーブルからデータを削除する方法を学びます。レコードの削除は、データベースから古くなったデータや誤ったデータをクリーンアップする必要がある場合に必要です。

まず、users テーブルの現在のデータを表示して、何を削除するかを特定します。次を実行します。

SELECT * FROM users;

期待される出力:

1|Alice|[email protected]
2|Bob|[email protected]
3|Charlie|[email protected]

次に、次のコマンドを実行して、'Charlie' のレコードを削除します。

DELETE FROM users WHERE name = 'Charlie';

コマンドが成功した場合、出力は表示されません。このコマンドは、name が 'Charlie' である行を削除します。WHERE 句は、指定されたレコードのみが削除されるようにします。

  • DELETE FROM users は、users テーブルから削除することを指定します。
  • WHERE name = 'Charlie' は、削除を name が 'Charlie' である行にのみ適用されるようにフィルタリングします。

テーブルを再度クエリして、削除を確認します。

SELECT * FROM users;

期待される出力:

1|Alice|[email protected]
2|Bob|[email protected]

Charlie のレコードがテーブルに存在しなくなったことがわかります。

まとめ

この実験(Lab)では、LabEx VM 環境内で SQLite のデータを操作するための重要なスキルを学びました。SQLite データベースとテーブルを作成し、INSERT INTO ステートメントを使用してデータを挿入し、SELECT で情報をクエリし、UPDATE でレコードを更新し、DELETE を使用してエントリを削除しました。これらの実践的な演習は、データベース管理の包括的な入門となり、SQLite を使用してデータを効果的に処理するための基礎知識を身につけることができました。