はじめに
この実験(Lab)では、初心者にとって理想的な軽量ファイルベースのデータベースである SQLite でのデータ操作の基本を学びます。LabEx VM 環境での実践を通して、データベースの作成、テーブルのセットアップ、データの挿入、レコードのクエリ、情報の更新、エントリの削除などの主要なタスクを実行します。このステップバイステップガイドは、データベース初心者向けに調整されたシンプルな SQL コマンドを使用して、データベース管理の確固たる基盤を構築するのに役立ちます。
この実験(Lab)では、初心者にとって理想的な軽量ファイルベースのデータベースである SQLite でのデータ操作の基本を学びます。LabEx VM 環境での実践を通して、データベースの作成、テーブルのセットアップ、データの挿入、レコードのクエリ、情報の更新、エントリの削除などの主要なタスクを実行します。このステップバイステップガイドは、データベース初心者向けに調整されたシンプルな SQL コマンドを使用して、データベース管理の確固たる基盤を構築するのに役立ちます。
この最初のステップでは、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]
この出力は、各レコードの id
、name
、および email
を示しています。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 を使用してデータを効果的に処理するための基礎知識を身につけることができました。