PHPプログラミング

ベストプラクティス

データベース SQLite

SQLite3でデータを新規登録:INSERT

  • このエントリーをはてなブックマークに追加

SQLite3ですでにあるテーブルへ新しくデータを登録する方法を解説。

目次

  1. #  データを登録する
  2. #  データ登録のSQL
  3. #  登録したデータを確認する

データを登録する

今回は、テーブルへデータを登録する方法をみていきます。
とは言っても、一般的なSQLを使用するので、他のデータベースなどでSQLを使ったことのある方にとってはお馴染みの方法になります。

今回は次のようなテーブルがすでにあることを前提に進めていきます。

テーブル名:test
カラム名 その他
id INTEGER PRIMARY KEY
name TEXT NOT NULL
age INTEGER NOT NULL
created_datetime TIMESTAMP DEFAULT (datetime(CURRENT_TIMESTAMP,’localtime’))

テーブルの作成方法については、「SQLite3でテーブルを作成:CREATE TABLE」をご覧ください。

データ登録のSQL

まずはデータ登録のSQLである「INSERT INTO」について、基本的な形を紹介します。

INSERT INTO テーブル(カラム1, カラム2) VALUES ( 値1, 値2);

「テーブル」にはデータの登録先であるテーブル名が入ります。
その後ろの「カラム1」と「カラム2」はデータを登録したいカラム名を指定。カラム名はテーブルに存在するものであれば任意で複数指定することが可能です。
特に「NOT NULL」が設定されているカラムは必ず指定するようにしましょう。

その後ろの「VALUES」以降では、登録するデータの値を指定します。
「VALUES」はその前に指定したカラムの数だけ指定する必要があり、順番も前から順に対応しています。

Note

細かいですが、「VALUES」の末尾の「S」を付け忘れ、「VALUE」と書いてエラーになってしまうことがあるので注意してください。

データ登録のSQLについて分かったところで、続いて上記のテーブルにデータを登録するSQLをみていきましょう。
次のようなSQLになります。

// データの追加
$sql = 'INSERT INTO test(
	name, age
) VALUES (
	"佐々木", 31
)';
$res = $db->query($sql);

テーブル名はtestを指定し、カラムには「name」と「age」を指定しています。
続くVALUESにおいても、カラムに対応するようにデータを渡しています。

このSQLを「$db->query($sql);」で実行し、成功したらテーブルにデータが追加されるという流れです。

今回はIDと登録日時が自動登録されるので指定をしていませんが、あえて値を指定してデータを登録することももちろん可能です。
その場合は、次のようなSQLになります。

// データの追加
$sql = 'INSERT INTO test(
	id, name, age, created_datetime
) VALUES (
	50, "吉川", 25, "2017-07-24 14:30:00"
)';
$res = $db->query($sql);

データの登録が成功すると、IDは次回以降も「50」以降から連番になるように自動設定がされます。
それ以前のIDが「4」で、今回のようにいきなりID「50」といった数値が離れている場合は、途中の数値(5〜49)はスキップされます。

登録したデータを確認する

ターミナルやコマンドプロンプトなどから、「sqlite3」のコマンドを使ってテーブルに入っているデータを確認してみましょう。
今回はSQLite3のファイルが「test.sqlite3」であることとして、テーブル「test」のデータを確認していきます。

#> sqlite3 test.sqlite3 // Enterを押す
SQLite version 3.15.2 2016-11-28 19:13:37
Enter ".help" for usage hints.
sqlite> select * from test; // Select文を打って、Enterを押す

1|大沢|24|2017-07-26 17:06:00
2|加藤|22|2017-07-26 18:08:00
3|石川|28|2017-07-26 20:30:45
4|佐々木|31|2017-07-27 15:15:20

単純にテーブルの全データを取得するコマンドですが、しっかりとデータが登録されていることが確認できます。

以上、SQLite3でテーブルにデータを登録する方法でした。

  • このエントリーをはてなブックマークに追加