【初心者用】SQLの書き方・用途などまとめ

SQLはデータベースを操作するための言語です。

SQLを使うことでデータベースにデータを挿入したり、検索したりといった操作を効率的に行うことが可能です。


本記事ではSQLの基礎構文、用途、サンプルコードをまとめていきます。

なお、説明の便宜上、以下の表のデータを使用します。


1. 基礎構文①SELECT文

SELECT文はデータベースからデータを取り出すための構文です。

基本構造は以下のようになります。


「SELECT 列名 FROM テーブル名」


https://www.sejuku.net/blog/104588

列名を複数指定する場合は列名を「,」で区切ります。また、全選択する場合は列名の箇所に「*」を記述します。

全ての列のデータを取得するときのサンプルコードは以下のようになります。

SELECT * FROM user_list;

1-1. 条件の絞り込みは「WHERE句」を用いる

WHERE句は「FROM テーブル名」の後に付け加えることで、指定した列名のデータからさらに条件に見合ったデータを抽出できます。

書き方は「WHERE 列名 条件式 値」となります。

年齢が23歳以上のユーザーのIDと名前を取得するときはこのようになります。

SELECT id, name FROM user_list WHERE age >= 23;

10. まとめ

SQLの基礎構造や用途をまとめてみました。

SQLは他のプログラミング言語と比べ、そこまで難しいものではないといわれているので、基本的な記述ルールを覚えたら、あとは数をこなすことで習得に繋がると思います。

2. 基礎構文②INSERT文

INSERT文はデータベースにデータを登録するための構文です。

基本構造は以下のようになります。


「INSERT INTO テーブル名({列名1},{列名2},・・・)VALUES ({値1},{値2},・・・)」


https://www.sejuku.net/blog/104588

列名の部分は省略可能です。

列名の数と値の数が一致していない場合エラーとなるので注意です。

列名をすべて指定した場合のINSERT文のサンプルコードは以下のようになります。

INSERT INTO user_list(id, name, age, created_at, updated_at) 
VALUES (6, '太郎', 20, '2023/12/4', '2023/12/4');

3. 基礎構文③UPDATE文

UPDATE文はデータベースの情報を更新するための構文です。

基本構造は以下のようになります。


「UPDATE  テーブル名 SET {列名1}={列名1の値},{列名2}={列名2の値} WHERE {条件}」


https://www.sejuku.net/blog/104588

WHERE句は省略可能です。

その場合全ての行が更新対象となるので注意です。

IDが5のユーザー情報を更新するときのサンプルコードは以下のようになります。

UPDATE user_list SET name = '伍郎' , age = 29 WHERE id = 5;

4. 基礎構文④DELETE文

DELETE文はデータベースのデータを削除するための構文です。

基本構造は以下のようになります。


「DELETE FROM テーブル名 WHERE {条件}」


https://www.sejuku.net/blog/104588

UPDATE文同様にWHERE句は省略可能です。

その場合全ての行が削除対象となるので注意です。

IDが5の行のデータを削除するときのサンプルコードは以下のようになります。

DELETE FROM user_list WHERE id = 5;

5. 基礎構文⑤AS句

AS句を使用すると、テーブル名や列名に別の名前を指定できます。

まずは以下のサンプルコードを見てください。

SELECT id AS ID, name AS 名前 FROM user_list WHERE age >= 23;

users_listの列名は「id」や「name」ですが、AS句を使用することで「ID」や「名前」というようにテーブルに存在しない名前で結果を取得できます。

AS句は複数のテーブルを一気に取得する場合、同名の行名などを区別するために使用します。

6. 基礎構文⑥ORDER BY句

ORDER BYを使用すると、SELECTの結果の並び替えが可能です。

ORDER BY句は複数の並べ替え条件を指定できます。


ORDER BY句を指定しない場合、SELECT結果が不定となります。複数の結果を取得する可能性がある場合は、ORDER BYを指定する習慣をつけておきましょう。

データを昇順で抽出するときは「ASC」、降順で抽出するときは「DESC」を使います。


SELECT結果をID昇順の並びで取得するときのサンプルコードは以下のようになります。

SELECT id, name FROM user_list ORDER BY id ASC;

7. 基礎構文⑦GROUP BY句

GROUP BY句は、データをグループ化することができます。

ひとまとめにしたいデータがある場合などに有効です。


例えば、以下のようなデータを持つテーブルがあるとします。


このデータから「日付ごとに使った金額の合計」を知りたいとしましょう。

そのような場合、以下のようなサンプルコードで集計することが可能です。

SELECT SUM(price),date FROM cost_list GROUP BY date;


上記の記述により、以下のような結果が表示されます。

このように、ちりばめられたデータを共通の要素に従ってグループ化する際に使用します。

8. DDLとDML

本記事で紹介したSQL文はDML(Data Manipulation Languageの略)で、データを操作するSQL文です。

対するDDLは、Data Definition Languageの略でデータを定義するSQL文です。

こちらの記事では紹介していないのでご注意ください。


なお、DDLは以下のようなものがあります。

 ・CREATE文:データベース・テーブルなどを作成する

 ・ALTER文:テーブル内の定義を変更する

 ・DROP文:データベース・テーブルを削除する

9. エラーが出た際の対処法

SQL文でエラーが表示された場合、「エラーコード」を確認すればエラーの原因がわかります。

エラーコードはかなりの数に上り、全部を覚えるのは不可能です。

よくあるエラーは以下に記載します。


・『Error Code: 1064』
 スペルミスです。
 特に初心者のうちは、全角文字が入力されていないかに注意しましょう。

・『Error Code: 1046』
 データベースを指定していないエラーです。
 データベースの名前を「USE データベース名;」という形で指定する必要があります。