SQLite データベースの作成と管理

SQLiteBeginner
オンラインで実践に進む

はじめに

この実験 (Lab) では、sqlite3 コマンドラインツールを使用して SQLite データベースを操作する基本的な方法を学びます。SQLite は、初心者にとって理想的な、軽量なファイルベースのデータベースシステムです。データベースの作成、テーブルの作成、データの挿入、データのクエリ、カラムの追加、データの更新、そして最後にデータベースファイルの削除を行います。さあ、始めましょう!

SQLite データベースの作成と接続

このステップでは、新しい SQLite データベースファイルを作成し、sqlite3 コマンドラインツールを使用してそれに接続します。

  1. LabEx VM 環境でターミナルを開きます。デフォルトでは、/home/labex/project ディレクトリにいるはずです。以下のコマンドを実行して確認してください。

    pwd
    

    出力は次のようになります。

    /home/labex/project
    

    このディレクトリにいない場合は、次のコマンドを実行して移動してください。

    cd /home/labex/project
    
  2. sqlite3 コマンドを使用して、mydatabase.db という名前の新しい SQLite データベースを作成し、それに接続します。

    sqlite3 mydatabase.db
    

    このコマンドは、指定されたデータベースファイルが存在しない場合は作成し、接続を開きます。SQLite プロンプトが表示されます。

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

sqlite3 コマンドは、SQLite データベースの作成と接続の両方に使用されます。指定されたデータベースファイルが存在しない場合、SQLite はそれを自動的に作成します。これで、SQLite 環境内で SQL コマンドを実行する準備が整いました。

'users'テーブルの作成

このステップでは、mydatabase.db データベース内に users という名前のテーブルを作成します。

SQLite プロンプトで、以下の SQL コマンドを使用して users という名前のテーブルを作成します。

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

このコマンドは、users テーブルの構造を定義します。id カラムは整数であり、主キー (PRIMARY KEY) となっており、各ユーザーに一意の識別子があることを保証します。name カラムは空にできないテキストフィールド (NOT NULL) であり、age カラムは整数です。

CREATE TABLE コマンドは、データベース内のテーブル構造を定義するために使用される基本的な SQL コマンドです。PRIMARY KEY 制約は id カラムに各行に対して一意の値が含まれることを保証し、NOT NULL 制約は name カラムが空にできないことを保証します。

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

users テーブルを作成したので、データを挿入できます。これには、テーブルに行(レコード)を追加することが含まれ、各行はユーザーとその対応する情報を表します。

INSERT INTO コマンドを使用して、以下のレコードを users テーブルに挿入します。

INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25);
INSERT INTO users (id, name, age) VALUES (2, 'Bob', 30);
INSERT INTO users (id, name, age) VALUES (3, 'Charlie', 22);

これらのコマンドは、users テーブルに 3 つの新しい行を追加します。各行には idnameage が含まれます。

INSERT INTO コマンドは、テーブルに新しい行を追加するために使用されます。テーブル名の後の括弧内にリストされた対応するカラムに、VALUES 句で指定された値が挿入されます。

'users'テーブルからのデータクエリ

このステップでは、SELECT コマンドを使用して users テーブルからデータを問い合わせる方法を学びます。これにより、データベースから特定の情報を取得できます。

以下の SQL コマンドを使用して、users テーブルからすべてのデータを取得します。

SELECT * FROM users;

このコマンドは、users テーブルのすべての行からすべてのカラム(*)を選択します。出力には、前のステップで挿入したデータが表示されます。以下のような表示になるはずです。

1|Alice|25
2|Bob|30
3|Charlie|22

SELECT コマンドは、データベースからデータを取得するための強力なツールです。* ワイルドカード文字は、すべてのカラムを選択することを指定します。カラム名をカンマで区切ってリストすることで、特定のカラムを選択することもできます(例:SELECT name, age FROM users;)。

新しいカラムの追加とデータ更新

このステップでは、users テーブルに email という名前の新しいカラムを追加し、既存のレコードをメールアドレスで更新します。

  1. ALTER TABLE コマンドを使用して、users テーブルに email という名前の新しいカラムを追加します。

    ALTER TABLE users ADD COLUMN email TEXT;
    

    このコマンドは、users テーブルに TEXT 型の email という名前の新しいカラムを追加します。

  2. UPDATE コマンドを使用して、各ユーザーの email カラムを更新します。

    UPDATE users SET email = 'alice@example.com' WHERE id = 1;
    UPDATE users SET email = 'bob@example.com' WHERE id = 2;
    UPDATE users SET email = 'charlie@example.com' WHERE id = 3;
    

    これらのコマンドは、対応するメールアドレスで各ユーザーの email カラムを更新します。

  3. users テーブルを問い合わせて、更新されたデータを確認します。

    SELECT * FROM users;
    
    1|Alice|25|alice@example.com
    2|Bob|30|bob@example.com
    3|Charlie|22|charlie@example.com
    

ALTER TABLE コマンドは、既存のテーブルの構造を変更するために使用されます。この場合、新しいカラムを追加しています。UPDATE コマンドは、テーブル内の既存のデータを変更するために使用されます。SET 句は、どのカラムを更新するか、および新しい値を指定します。WHERE 句は、条件に基づいてどの行を更新するかを指定します。

SQLite の終了とデータベースファイルの削除

このステップでは、SQLite インターフェースを終了し、データベースファイルを削除します。SQLite はすべてのデータを単一のファイルに保存するため、データベースの削除は rm コマンドを使用してファイルを削除するのと同じくらい簡単です。この操作は元に戻せないので注意してください!

  1. SQLite プロンプトを終了します。

    .quit
    
  2. /home/labex/project ディレクトリにいることを確認します。確認するには以下を実行します。

    pwd
    

    出力は以下のようになるはずです。

    /home/labex/project
    

    そうでない場合は、以下のコマンドで移動してください。

    cd /home/labex/project
    
  3. rm コマンドを使用して mydatabase.db ファイルを削除します。

    rm mydatabase.db
    

    削除が成功した場合、出力はありません。

  4. ディレクトリの内容を再度リストして、ファイルが削除されたことを確認します。

    ls
    

    出力に mydatabase.db が表示されなくなり、ファイルが削除されたことが確認できます。

.quit コマンドは SQLite シェルを終了し、Linux ターミナルに戻ります。rm コマンドは、ファイルを削除するために使用される標準的な Linux コマンドです。この場合、SQLite データベースのすべてのデータと構造を含む mydatabase.db ファイルを永続的に削除します。

まとめ

この実験では、sqlite3 コマンドラインツールを使用して SQLite データベースを作成および管理するための基本的なスキルを学びました。データベースの作成、テーブルの作成、データの挿入、データの問い合わせ、新しいカラムの追加、データの更新、そして最後にデータベースファイルの削除を行いました。これらのステップは、SQLite データベースを扱う上での強固な基盤となります。