1. SQLite3 は、ローカル ディスクにデータを保存できる軽量のリレーショナル データベースです。SQLite3 の基本的な使用法と構文は次のとおりです。
-
データベースを開く コマンド ライン ツールまたは SQLite クライアント ツールを使用して、次のような SQLite データベース ファイルを開きます。
sqlite3 mydatabase.db
ファイルが存在しない場合は、新しいデータベース ファイルが自動的に作成されます。
-
テーブルの作成 CREATE TABLE コマンドを使用して、新しいテーブルを作成します。次に例を示します。
CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER );
上記のステートメントは、id、name、age の 3 つの列を持つ「users」というテーブルを作成します。
-
データの挿入 INSERT INTO コマンドを使用して、新しいデータ行を挿入します。次に例を示します。
INSERT INTO users (name, age) VALUES ('Alice', 25);
上記のステートメントは、「users」テーブルに新しいデータ行を挿入します。この行には、名前と年齢の 2 つの列が含まれています。名前は「Alice」、年齢は 25 です。
-
データのクエリ SELECT ステートメントを使用して、テーブル内のデータ行をクエリします。次に例を示します。
SELECT * FROM users;
上記のステートメントは、「users」テーブル内のすべての行を返します。
-
データの更新 UPDATE ステートメントを使用して、テーブル内のデータ行を更新します。次に例を示します。
UPDATE users SET age = 26 WHERE name = 'Alice';
上記のステートメントは、「users」テーブルの「Alice」という名前の行の年齢列を 26 に更新します。
SQLite データベース内の特定のデータの特定の値を変更する場合は、UPDATE ステートメントを使用できます。
UPDATE ステートメントを使用すると、1 つ以上の列の値を更新でき、WHERE 句を使用して更新する特定の行を指定できます。基本的な UPDATE ステートメントの構文は次のとおりです。
UPDATE table_name SET column1 = new_value1, column2 = new_value2 WHERE some_column = some_value;
ここで、table_nameは更新するテーブルの名前、column1とcolumn2は更新する列の名前、new_value1とnew_value2はこれらの列の値を更新する新しい値です。WHERE 句は更新する特定の行を指定するために使用され、some_column は行の指定に使用される列の名前、some_value はその列の値です。
たとえば、 users テーブル内の ID 1 のユーザーの電子メールを「[email protected]」に更新する場合は、次のステートメントを使用できます。
UPDATE users SET email = '[email protected]' WHERE id = 1;
WHERE 句がない場合は、すべての行が更新されることに注意してください。したがって、更新する特定の行のみが更新されるように、データを更新する前に必ず WHERE 句を指定してください。
6. データの削除 DELETE FROM ステートメントを使用して、テーブル内のデータ行を削除します。次に例を示します。
DELETE FROM users WHERE name = 'Alice';
上記のステートメントは、「users」テーブル内の「Alice」という名前の行を削除します。
SQLite では、データを削除する方法がいくつかあります。
- 単一または複数の行を削除するには、DELETE ステートメントを使用します。
- テーブル全体を削除するには、DROP TABLE ステートメントを使用します。
- TRUNCATE TABLE ステートメントを使用して、テーブル全体のすべての行を削除します。
- VACUUM コマンドを使用して未使用のスペースを再利用し、削除された行によって占められていたスペースを削除します。
各方法の詳細な手順は次のとおりです。
-
単一または複数の行を削除するには、DELETE ステートメントを使用します。
DELETE FROM tableName WHERE condition;
ここで
tableName
、 はデータを削除するテーブルの名前であり、 はcondition
削除する行を指定する WHERE 句の条件です。WHERE 句が空の場合、テーブル内のすべての行が削除されます。 -
テーブル全体を削除するには、DROP TABLE ステートメントを使用します。
DROP TABLE tableName;
ここで、
tableName
は削除するテーブルの名前です。注: DROP TABLE を使用すると、テーブル構造とデータを含むテーブルが完全に削除されるため、このステートメントを使用する前に、テーブル全体を本当に削除するかどうかを確認してください。
-
TRUNCATE TABLE ステートメントを使用して、テーブル全体のすべての行を削除します。
TRUNCATE TABLE tableName
;
その中には、
tableName
データを消去するテーブルの名前が含まれています。注: TRUNCATE TABLE は、テーブル内のすべての行を削除しますが、テーブル自体は削除せず、削除された行の数も返さないという点で DELETE とは異なります。また、TRUNCATE TABLE はテーブルに対して DELETE トリガーまたは UPDATE トリガーをトリガーしません。
-
VACUUM コマンドを使用して未使用のスペースを再利用し、削除された行によって占められていたスペースを削除します。
VACUUM;
VACUUM コマンドは、テーブルの物理ストレージを再編成し、未使用の領域を再利用し、削除された行をテーブルから完全に削除します。これにより、未使用の領域がオペレーティング システムに解放されるため、データベース ファイルが小さくなる可能性があります。
7. データベースを閉じる .exit コマンドを使用するか、SQLite クライアント ツールを閉じて、データベース接続を閉じます。
以上がSQLite3の基本的な使い方と構文です。実際の使用では、SQLite の C/C++ API または他のプログラミング言語の SQLite パッケージ ライブラリを通じて SQLite データベースと対話できます。
2. SQLite は次のデータ型をサポートします。
- NULL: 空の値。
- INTEGER: 値のサイズに応じて、1、2、3、4、6、または 8 バイトで構成される符号付き整数。
- REAL: 浮動小数点数。8 バイトの IEEE 浮動小数点数として格納されます。
- TEXT: エンコーディングで保存された文字列。
- BLOB: 入力として保存されるバイナリ データ。
VARCHAR は、リレーショナル データベースの一般的な列の型であり、SQLite の列の型の 1 つです。可変長文字列を格納するために使用されます。CHAR 型とは異なり、VARCHAR 型は記憶域に必要な領域のみを使用し、固定領域を事前に割り当てません。VARCHAR の最大長はデータベースの制限によって異なりますが、通常は 65535 文字です。
SQLite では、VARCHAR 列型は TEXT 型に置き換えることができます。これらは同義語であり、実際には違いはありません。たとえば、次の 2 つの定義は同等です。
CREATE TABLE myTable (id INTEGER PRIMARY KEY, name VARCHAR(50)); CREATE TABLE myTable (id INTEGER PRIMARY KEY, name TEXT(50));
さらに、SQLite は、他の列タイプと同一の INT や BOOLEAN などの列タイプのエイリアスをサポートしています。VARCHAR、TEXT、CHARACTER など、他の列タイプの別名もあります。これらはすべて TEXT 列タイプの別名であり、文字列の格納に使用できます。