【これだけ】SQLの基本構文【現役エンジニアが解説】

PROGRAM

今回はSQLの基本構文について、事例を交えて簡単に解説していきます。

SELECT文

まず、データベースに以下のユーザ情報が入っているusersテーブルというものが存在すると仮定します。

user_id name
1 山田太郎
2 田中花子
3 小林一郎

このテーブルからuser_idとnameを取得する場合は、以下のSQL文で取得できます。

SELECT user_id, name FROM users;

テーブルのカラム全てを取得する場合は、わざわざすべてのカラム名を書き並べることは大変なので、

SELECT * FROM users;

このように*(アスタリスク)にすることで全てのカラムを取得してくれます。

DML文

DML文とはデータを操作するSQL文を意味しており、データの追加や更新、削除のSQL文を指します。

例えば、先程のusersテーブルで新規のデータを追加したい場合は、

INSERT INTO users (user_id, name) VALUES (4, '髙橋洋子');

このようにINSERT文を使うとデータを追加できます。
user_idが自動採番の場合はINSERT文のカラムから省くことも可能です。

次に既存のデータに対して、更新を加えたい場合には、

UPDATE users SET name = '未設定';

上記のようにUPDATE文でデータを更新することができます。

また、削除の場合は、DELETE文を使って実現できます。

DELETE FROM users;

あるデータを更新する際は、UPDATEで更新する場合もあれば、一度DELETEをしてからINSERTする場合もあります。

条件指定

INSERT文を除けば、全て何らかの条件を指定することが一般的です。

例えば、先程のSELECT文であれば、user_idを指定して単一の情報を取得するケースも多いと思います。

SELECT * FROM users WHERE user_id = '1';

その際には、上記のようにWHERE句を使って、user_idの条件を指定します。

UPDATE文に関してもWHERE句がなければ全てのデータが変わってしまうため、

UPDATE users SET name = '未設定' WHERE user_id = '2';

このようにして、指定されたレコードだけに更新をかけることが一般的です。

削除の場合も同様の注意が必要です。

DELETE FROM users WHERE user_id = '3';

更新と削除は操作後の取り返しがつかないことが多いため、コマンド等で実行する場合には一旦SELECT文で条件が合っていることを確認してから実行されると良いでしょう。