<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=445779107733115&amp;ev=PageView&amp;noscript=1">

SQLの書き方を種類別に解説!
記述ルールやエラーが出たときの対処法も

 2026.01.14  株式会社電算システム

SQLは、データベースの操作における代表的なプログラミング言語の1つです。SQLの書き方がわかれば、データベースを自由に操作でき、格納されたデータの活用にも役立ちます。

この記事では、SQLの概要や基本命令の書き方をわかりやすく解説しています。SQLの書き方に関するルールも把握できる内容になっているので、これからSQLの書き方を身につけたいという方は、ぜひ最後までご覧ください。

SQLとは?3つの言語も解説

SQLとは、データベースを操作するために使われるプログラミング言語です。SQLの使用によって、データベースに格納されているデータの「検索」「抽出」「書き変え」などができ、データベースのパフォーマンスの維持・最適化にも活用できます。SQLは、SQL ServerやOracle Database、MySQL、PostgreSQLといった多くのデータベースシステムで利用でき、データベースにおける代表的なプログラミング言語と言えます。SQLは、以下の3つの言語で成り立っているプログラミング言語です。

  • データ定義言語(Data Definition Language)
  • データ操作言語(Data Manipulation Language)
  • データ制御言語(Data Control Language)

それぞれの言語の特徴を確認して、SQLの基礎知識を身につけましょう。

データ定義言語(Data Definition Language)

データ定義言語(Data Definition Language)は、データベース自体を作成したり削除したりして定義づける言語です。この言語のイメージとしては、データを格納する箱を作成したり、削除したりする操作を命令できるものと言えます。データ定義言語には、以下のような命令文があります。

  • CREATE:新しいデータベースやテーブルといったオブジェクトを定義する
  • JOIN:テーブル同士を結合する
  • ALTER:定義したオブジェクトの内容を変更する
  • DROP:定義したオブジェクトを削除する
  • TRUNCATE:データをすべて削除する

データ定義言語は、データベースの大幅な変更に使う言語であるため、他の言語に比べて使用頻度は高くありません。

データ操作言語(Data Manipulation Language)

データ操作言語(Data Manipulation Language)は、データベースに格納されたデータを操作する言語です。エンジニアではない人がデータベース内のデータを操作したい場合にも使える言語で、データの検索や挿入などができます。データ操作言語には、以下のような命令文があります。

  • SELECT:データを検索する
  • INSERT:データを挿入する
  • DELETE:データを削除する
  • UPDATE:データを更新する

データ操作言語は、他の言語と比べて最も使用頻度が高い言語で、日常の業務に活かしやすいため、エンジニアではない人も覚えておくと便利です。

データ制御言語(Data Control Language)

データ制御言語(Data Control Language)は、データベースのアクセス権限を管理できる言語です。ユーザーに対して、個別にデータベースへのアクセス権限を付与・削除でき、データベースの状態を管理する役割もあります。データ制御言語には、以下のような命令文があります。

  • GRANT:ユーザー権限を付与する
  • REVOKE:ユーザー権限を削除する
  • BEGIN:トランザクションを開始する
  • COMMIT:トランザクションを確定する
  • ROLLBACK:トランザクションを取り消す

他の言語と比べて使用頻度は高くありませんが、データベースの管理者には必要不可欠な知識です。

【種類別】SQLにおける4つの基本命令の書き方

SQLにおける基本命令の書き方を、以下のような4つの種類別に解説します。

  • SELECT:データの取得
  • INSERT:データの追加
  • UPDATE:データの更新
  • DELETE:データの削除

命令の書き方を確認して、実際にSQLを使ってみましょう。

SELECT:データの取得

SELECTは、テーブルに登録済みのデータを検索する命令です。基本形は「SELECT 列名 FROM テーブル名;」で、SELECTはどの列のデータを検索するかを指定し、FROMはどのテーブル(表)のデータを検索するかを指定する項目です。(本記事では、テーブル名をtableXと名付けます)

name sales price

A

4 300
B 2 100
C 5 500

上記で「SELECT name,sales FROM tableX;」と書いた場合、氏名と販売台数のみのデータが抽出されます。「WHERE 条件式」を加えれば、条件を細かく指定して抽出するデータを絞り込めます。例えば「SELECT name,sales,price FROM tableX WHERE 100 <= price;」であれば、priceが100以上の行に絞り込んでデータを取得可能です。

INSERT:データの追加

INSERTは、データベースにデータを追加する命令です。基本形は「INSERT INTO テーブル名 (列名) VALUES (列に入れるデータ);」になります。先ほどSELECTで使用したtableXに「name D」「sales データなし」「price 200」というデータを追加する場合は「INSERT INTO tableX (name, price) VALUE (D,200);」と記述します。

name sales price
A 4 300
B 2 100
C 5 500
D NULL 200

データが追加されなかった部分は「NULL」と表示され、すべての列にデータを追加する場合は、列名の記述を省略可能です。例えば、商品Dのsalesの値が10の場合「INSERT INTO tableX VALUE (D,10,300);」と記述できます。

UPDATE:データの更新

UPDATEは、データの更新を行う命令です。基本形は「UPDATE テーブル名 SET 更新処理内容;」になります。例えば、tableXでsalesのデータをすべて0にする場合は「UPDATE tableX SET sales = 0」と記述します。

また、UPDATEでは、条件を指定して特定のデータに限定した更新も可能です。その場合の基本形は「UPDATE テーブル名 SET 更新処理 WHERE 条件式」となります。例えば、tableXで「priceが200のものだけsalesを0」にする場合は「UPDATE tableX SET sales = 0 WHERE price = 200;」と記述し、以下のような結果になります。

name sales price
A 4 300
B 2 100
C 5 500
D 0 200

DELETE:データの削除

DELETEは、データの削除を行う命令です。基本形は「DELETE FROM テーブル名;」になります。「DELETE FROM tableX;」でテーブルごと削除も可能ですが、条件を指定して部分的にデータを削除するケースが一般的です。部分的にデータを削除する場合の基本形は「DELETE FROM テーブル名 WHERE 条件式;」です。

例えば、tableXから商品Cのデータを削除する場合は「DELETE FROM tableX WHERE name = C;」と記述します。WHEREの部分を指定しなければすべての行が削除されるため、誤ってデータを削除しないように注意する必要があります。

SELECT文で取得したデータを活用する際の3つの句

SELECT文で取得したデータを活用する際には、以下の3つの句が役立ちます。

  • AS句:カラムの名付け
  • ORDER BY句:検索結果の並び替え
  • GROUP BY句:データのグループ化

それぞれの句の使用方法を確認して、実際にSELECT文で取得したデータを活用してみましょう。

AS句:カラムの名付け

AS句は、SELECT文で抽出したカラムに別名をつけられます。カラムに名前をつければ、一目で内容を把握でき、確認するコミュニケーションを最小限にできます。AS句の基本構文は「SELECT 列名 AS 別名 FROM テーブル名;」です。例えば「SELECT name AS '氏名' , sales AS '販売台数' , price AS '金額' FROM tableX」と記述した場合は、以下のような結果になります。

氏名 販売台数 金額
A 4 300
B 2 100
C 5 500

AS句は、複数のテーブルを一度に取得する場合に、例えば同名の行名を区別する際に使用されます。

ORDER BY句:検索結果の並び替え

ORDER BY句では、SELECTの結果の並び替えが可能です。複数の並べ替え条件の指定も可能で、ORDER BY句を指定しない場合は、SELECT結果が不定になります。複数の結果を取得する可能性があるときは、ORDER BY句の指定を習慣にしておくと良いでしょう。SELECT結果を昇順に並び替える場合と降順に並び替える場合の書き方は、以下の通りです。

昇順に並び替える場合

tableXを販売台数の昇順に並べ替える場合の基本構文は「SELECT * FROM tableX ORDER BY sales ASC;」です。この基本構文を活用すれば、以下のようにtableXを販売台数の昇順に並べ替えできます。

name sales price
B 2 100
A 4 300
C 5 500

降順に並び替える場合

tableXを販売台数の降順に並べ替える場合の基本構文は「SELECT * FROM tableX ORDER BY sales DESC;」です。この基本構文を活用すれば、以下のようにtableXを販売台数の降順に並べ替えできます。

name sales price
C 5 500
A 4 300
B 2 100

GROUP BY句:データのグループ化

GROUP BY句では、指定したカラムのグループ化が可能です。指定したカラムの件数、合計値、平均、最大、最小も取得できます。GROUP BY句の基本構文は「SELECT [カラム名] FROM [テーブル名] GROUP BY [グループ化したいカラム名、条件];」です。この基本構文を活用すれば、以下のように指定したカラムをグループ化できます。

name team
A チーム1
B チーム2
C チーム2
D チーム1
E チーム1

また「SELECT team, COUNT(team) FROM user GROUP BY team;」では、グループごとの人数をカウントできます。

SQLの書き方に関する5つのルール

SQLの書き方に明確なルールはありませんが、視認性や可読性のためにある程度のルールは必要です。以下では、多くの企業で利用されている一般的なルールを5つ紹介します。

状況に応じて「;」「*」「’」を使い分ける

SQLで使用する記号は以下のように意味が異なるため、それぞれを状況に応じて使い分ける必要があります。

  • 「;」(セミコロン):文の終わり/SQL文を終わりにする際に使用
  • 「*」(アスタリスク):すべて/すべてを選択する際に使用
  • 「’」(シングルコーテーション):指定/文や句で条件を指定する際に使用

大文字と小文字を使い分ける

大文字・小文字を使う際のルールを作れば、可読性は大きく変わります。大文字・小文字を使う際は、関数や予約語(SQLのルールで指定された言語)は大文字、非予約語(テーブル名やカラム名などのデータベースごとで意味を持つもの)は小文字にするというルールが一般的です。

インデントを揃える

SQLを書く際は、インデント(字下げ)のルールの統一も重要です。一般的なルールとしては、以下のようなものがあります。

  • 1カラムにつき1行
  • カンマは行頭
  • インデントは半角スペース2つ(= TreasureDataやBigQueryでの「Tab」
  • 1つ分)
  • WHERE句の中のAND/ORの前で改行(AND/ORを先頭に)
  • 「=」「>」といった不等号の前後は半角スペース1つ

横に長い記述は可読性の悪化につながるため、縦に記述していくイメージで書く方法がおすすめです。この方法で記述すれば、不要になった行を素早く特定できたり、コメントアウトでカラムの説明を記載したりしやすくなります。

定数は「'」で囲む

SQL文では、抽出条件を指定する場面で「定数」を記述できます。「定数」を記述する場合は、定数であることを明確にするために「'」シングルコーテーションで囲む方法が一般的です。

1行コメントは「--」・複数行コメントは「/* */」で記述する

複雑なSQL文を説明する際は、コメントを残すケースがあります。その場合は、コメントの行数によって記号を使い分ければ、コメントの読み落としを防止できます。コメントは、SQLの実行時に考慮されない行であるため、基本的には何を書いても問題ありません。

SQLでエラーが発生した時の対処法

SQL文でエラーが表示された場合は、エラーコードの確認で原因を把握できます。エラーコードには膨大な数の種類があるため、よくあるエラーコードに絞って覚えておくと便利です。よくあるエラーコードには、以下のようなものがあります。

  • 「Error Code: 1064」:スペルミスがある場合のエラー
  • 「Error Code: 1046」:データベースを指定していない場合のエラー

SQLの書き方を覚えてデータベースを活用しよう

SQL文は、データベースを操作する際に利用されるプログラミング言語です。データベースのエンジニアにとっては必須となる言語で、多くのデータベースシステムに対応しています。SQLの基本命令には「SELECT:データの取得」「INSERT:データの追加」「UPDATE:データの更新」「DELETE:データの削除」の4種類があり、これらの書き方を覚えれば、データベースを簡単に操作できます。

SQLが書ければ、Google Apps scriptを活用した業務効率化が実現でき、プログラマーとしての自身の市場価値も上がるため、新しいスキルとして積極的に学び、身につけましょう。データベースの操作や分析ができる状態にデータを加工する方法が知りたいという方は、無料でダウンロードできる以下の資料をぜひご覧ください。