データ挿入って何?
例えば、君が大学を開いたとしよう。studentsみたいなテーブルで学生の情報を管理するデータベースがあるよね。どの学生が入学したか発表して、そのデータをテーブルに追加する時が来た!SQLではINSERT INTOコマンドを使うんだ。これはテーブルに新しい行を追加するためのもの。Excelで手動で新しい行を追加するみたいな感じだけど、もっと速くてパワフル、しかもコードでできる!
データ追加は基本的な作業だけじゃなくて、いろんな場面で使われるよ。ネットショップの注文記録から銀行のトランザクション情報の保存まで。大学なら学生リストや先生リスト、時間割なんかもそうだね。
INSERT INTOコマンドの基本構文
SQLのINSERT INTOコマンドは、テーブルに新しい行を追加するシンプルな方法だよ。基本の構文を見てみよう:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
各パーツの説明:
table_name— データを追加したいテーブル名。(column1, column2, column3, ...)— 値を指定するカラムのリスト。VALUES (value1, value2, value3, ...)— それぞれのカラムに入れる値のリスト。
例:新しい学生をstudentsテーブルに追加してみよう。例えば、こんなテーブルがあるとする:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 数学 |
じゃあ、INSERT INTOで2人目の学生を追加しよう:
INSERT INTO students (id, name, age, course)
VALUES (2, 'Anna Lin', 19, '情報科学');
このクエリを実行した後、テーブルはこうなるよ:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 数学 |
| 2 | Anna Lin | 19 | 情報科学 |
全カラムへのデータ挿入
テーブルの全カラムに値を入れたい場合は、INSERT INTOでカラム名を省略できるよ。ただし、すべてのカラムに正しい順番で値を指定する必要があるから注意!
構文:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
例:さらにもう一人学生をstudentsテーブルに追加する場合:
INSERT INTO students
VALUES (3, 'Dan Sim', 20, '物理学');
結果:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 数学 |
| 2 | Anna Lin | 19 | 情報科学 |
| 3 | Dan Sim | 20 | 物理学 |
でも、このやり方はテーブルの構造が変わった時に危険だから、カラム名は毎回指定するのがオススメだよ。エラーを防げるからね。
実践:学生を追加してみよう
今度はINSERT INTOコマンドの力をフル活用して、新しい学生をstudentsテーブルに追加してみよう!
ステップ1:今あるデータを確認
まずはテーブルにどんなデータが入ってるか確認しよう。SELECTコマンドを使うよ:
SELECT * FROM students;
ステップ2:新しい学生を追加
今度はPeter Chiって学生を追加しよう。彼は「生物学」コースで、21歳だよ:
INSERT INTO students (id, name, age, course)
VALUES (4, 'Peter Chi', 21, '生物学');
ステップ3:ちゃんと追加されたか確認
もう一度全データをSELECTしてみよう:
SELECT * FROM students;
結果:
| id | name | age | course |
|---|---|---|---|
| 1 | Otto Song | 18 | 数学 |
| 2 | Anna Lin | 19 | 情報科学 |
| 3 | Dan Sim | 20 | 物理学 |
| 4 | Peter Chi | 21 | 生物学 |
イケてるでしょ?これでPeterも大学に追加されたよ!
INSERT INTOでよくあるミス
カラムと値の数が合わない。 例えば4つカラムを指定してるのに、値が3つしかなかったら、SQLはエラーを返すよ:
INSERT INTO students (id, name, age)
VALUES (5, 'Eva Green', 22, '化学');
エラー:カラム数と値の数が一致しない。
制約違反。 カラムがUNIQUEやNOT NULLみたいな制約を持ってる場合、それを破るとエラーになるよ。
データ型ミス。
例えば、数値フィールドにテキストを入れようとすると、PostgreSQLは怒るよ:
INSERT INTO students (id, name, age, course)
VALUES (5, 'Axel Linz', 'にじゅう', '化学');
これって実際のプロジェクトで何に使うの?
INSERT INTOコマンドを知ってると、データベースを使うほぼすべてのアプリで役立つよ。実際にはこんな場面で使う:
- 新しいユーザーのシステム登録。
- ネットショップでの注文追加。
- 決済システムでの支払いデータ保存。
- 教育システムでの学生、出席、成績などの日々のデータ更新。
アプリがユーザーや外部データソースとやりとりするたびに、INSERT INTOはデータベースにデータを書き込むメインツールになるんだ。
もし君がbackendアプリを作ったり、データ処理用のAPIを作るつもりなら、SQLでデータを挿入できるスキルは超基本だけど、めっちゃ大事な基礎力だよ!
GO TO FULL VERSION