前回、説明したJDBCで使用するSQLを今回説明していきます。
SQLは、データベースを操作するための言語です。難しそうに聞こえるかもしれませんが、いくつかの基本的なコマンドを覚えれば、データの検索、追加、更新、削除が簡単にできるようになります。今回は、特に使う頻度の高いSELECT、INSERT、UPDATE、DELETEの4つのコマンドに絞って、それぞれの使い方をじっくり見ていきましょう!
1. データの検索:SELECT文
データベースに保存されているデータを見たいときに使うのがSELECT文です。Excelでいうところの「フィルターをかけてデータを見る」ようなイメージですね。
基本の形
SQL
SELECT カラム名 FROM テーブル名;
カラム名には見たいデータの項目(列)を、テーブル名にはデータが保存されている場所(表)を指定します。
例を見てみよう
例えば、usersというテーブルがあって、その中にid、name、ageという情報が入っているとしましょう。
| id | name | age |
|---|---|---|
| 1 | 山田太郎 | 25 |
| 2 | 佐藤花子 | 30 |
| 3 | 田中一郎 | 22 |
例1:全てのカラムを表示
テーブルの中身を全部見たいときは、カラム名の代わりに*(アスタリスク)を使います。
SQL
SELECT * FROM users;
実行結果:
| id | name | age |
|---|---|---|
| 1 | 山田太郎 | 25 |
| 2 | 佐藤花子 | 30 |
| 3 | 田中一郎 | 22 |
例2:特定のカラムだけ表示
名前と年齢だけ見たい場合は、カンマ区切りでカラム名を指定します。
SQL
SELECT name, age FROM users;
実行結果:
| name | age |
|---|---|
| 山田太郎 | 25 |
| 佐藤花子 | 30 |
| 田中一郎 | 22 |
例3:条件をつけて絞り込む (WHERE句)
「25歳以上の人だけ見たいな」というときは、WHERE句を使って条件を指定します。
SQL
SELECT * FROM users WHERE age >= 25;
実行結果:
| id | name | age |
|---|---|---|
| 1 | 山田太郎 | 25 |
| 2 | 佐藤花子 | 30 |
WHERE句では、他にも様々な条件を指定できます。
=:等しい!=または<>:等しくない>:より大きい<:より小さい>=:以上<=:以下AND:かつ(複数の条件を組み合わせる)OR:または(複数の条件のいずれかを満たす)LIKE:あいまい検索(例:name LIKE '山%'で「山」で始まる名前を検索)IN:複数の値のいずれかに一致(例:age IN (25, 30)で年齢が25か30の人を検索)
2. データの追加:INSERT文
新しいデータをデータベースに追加したいときに使うのがINSERT文です。
基本の形
SQL
INSERT INTO テーブル名 (カラム名1, カラム名2, ...) VALUES (値1, 値2, ...);
データを追加したいテーブル名と、そのテーブルのどのカラムに、どんな値を入れるかを指定します。
例を見てみよう
先ほどのusersテーブルに新しいユーザーを追加してみましょう。
例1:全てのカラムに値を追加
すべてのカラムに順番通り値を入れる場合は、カラム名を省略できます。
SQL
INSERT INTO users VALUES (4, '鈴木健太', 28);
実行後、SELECT * FROM users;の結果:
| id | name | age |
|---|---|---|
| 1 | 山田太郎 | 25 |
| 2 | 佐藤花子 | 30 |
| 3 | 田中一郎 | 22 |
| 4 | 鈴木健太 | 28 |
例2:特定のカラムに値を追加
例えば、最初は名前だけ登録しておいて、年齢は後で登録する、というような場合です。この場合、値を入れないカラムはNULLになります。
SQL
INSERT INTO users (id, name) VALUES (5, '高橋優子');
実行後、SELECT * FROM users;の結果:
| id | name | age |
|---|---|---|
| 1 | 山田太郎 | 25 |
| 2 | 佐藤花子 | 30 |
| 3 | 田中一郎 | 22 |
| 4 | 鈴木健太 | 28 |
| 5 | 高橋優子 | NULL |
3. データの更新:UPDATE文
既存のデータを変更したいときに使うのがUPDATE文です。
基本の形
SQL
UPDATE テーブル名 SET カラム名1 = 新しい値1, カラム名2 = 新しい値2, ... WHERE 条件;
どのテーブルの、どのカラムを、どんな新しい値に更新するかを指定します。そして、最も重要なのがWHERE句です。これを付け忘れると、テーブル内の全データが更新されてしまうので、細心の注意が必要です!
例を見てみよう
usersテーブルのデータを更新してみましょう。
例1:特定のユーザーの情報を更新
IDが5の「高橋優子」さんの年齢を27歳に更新してみます。
SQL
UPDATE users SET age = 27 WHERE id = 5;
実行後、SELECT * FROM users;の結果:
| id | name | age |
|---|---|---|
| 1 | 山田太郎 | 25 |
| 2 | 佐藤花子 | 30 |
| 3 | 田中一郎 | 22 |
| 4 | 鈴木健太 | 28 |
| 5 | 高橋優子 | 27 |
例2:複数のカラムを同時に更新
IDが1の「山田太郎」さんの名前を「山田一郎」、年齢を26歳に更新してみます。
SQL
UPDATE users SET name = '山田一郎', age = 26 WHERE id = 1;
実行後、SELECT * FROM users;の結果:
| id | name | age |
|---|---|---|
| 1 | 山田一郎 | 26 |
| 2 | 佐藤花子 | 30 |
| 3 | 田中一郎 | 22 |
| 4 | 鈴木健太 | 28 |
| 5 | 高橋優子 | 27 |
4. データの削除:DELETE文
データベースからデータを削除したいときに使うのがDELETE文です。
基本の形
SQL
DELETE FROM テーブル名 WHERE 条件;
どのテーブルからデータを削除するかを指定します。UPDATE文と同じく、WHERE句がとても重要です。これを付け忘れると、テーブル内の全データが削除されてしまうので、本当に本当に注意してください!
例を見てみよう
usersテーブルのデータを削除してみましょう。
例1:特定のユーザーを削除
IDが3の「田中一郎」さんを削除してみます。
SQL
DELETE FROM users WHERE id = 3;
実行後、SELECT * FROM users;の結果:
| id | name | age |
|---|---|---|
| 1 | 山田一郎 | 26 |
| 2 | 佐藤花子 | 30 |
| 4 | 鈴木健太 | 28 |
| 5 | 高橋優子 | 27 |
例2:複数条件で削除
年齢が25歳以下の人を削除してみます。
SQL
DELETE FROM users WHERE age <= 25;
実行後、SELECT * FROM users;の結果:
| id | name | age |
|---|---|---|
| 2 | 佐藤花子 | 30 |
| 4 | 鈴木健太 | 28 |
| 5 | 高橋優子 | 27 |
まとめ
今回はSQLの基本的な操作であるSELECT、INSERT、UPDATE、DELETEの4つの文について学びました。
- SELECT: データベースからデータを検索するときに使うよ!
- INSERT: データベースに新しいデータを追加するときに使うよ!
- UPDATE: データベースの既存のデータを更新するときに使うよ!
- DELETE: データベースからデータを削除するときに使うよ!
特にUPDATEとDELETEはWHERE句を付け忘れると大変なことになるので、常に意識して使ってくださいね!
これらの基本をマスターすれば、データベースを使ったアプリケーション開発の第一歩を踏み出せます。次回は、これらのSQL文をJavaのプログラムからどうやって実行するのか、JDBCについて解説していく予定です。
それでは、また次回の記事でお会いしましょう!


コメント