概要:このチュートリアルでは、SQLステートメントの詳細を理解するのに役立つSQL構文を紹介します。
SQLは宣言型言語であるため、その構文は自然言語のように読めます。SQLステートメントは、SELECT、INSERT、UPDATE、DELETEなど、アクションを記述する動詞で始まります。動詞の後には、主語と述語が続きます。
述語は、真、偽、または不明として評価できる条件を指定します。
次のSQLステートメントを参照してください。
SELECT
first_name
FROM
employees
WHERE
YEAR(hire_date) = 2000;
Code language: SQL (Structured Query Language) (sql)
ご覧のとおり、通常の文のように読めます。
2000年に雇用された従業員の氏名を取得します。SELECT first_name
、FROM employees
、およびWHEREは、SQLステートメントの句です。SELECT
句とFROM
句など、一部の句は必須ですが、WHERE
句など、他の句はオプションです。

SQLは、特に技術者以外の人々を念頭に置いて設計されたため、非常にシンプルで理解しやすいです。SQLステートメントを作成するには、PHP、Java、C ++などの他の命令型言語のように、どのようにしたいかではなく、何をしたいかを伝えるだけです。
SQLは、主にアドホッククエリを実行してレポートを生成するユーザー向けの言語であるため、ユーザーフレンドリーな言語です。
今日では、SQLはデータアナリスト、データサイエンティスト、開発者、データベース管理者などの高度な技術者によって使用されています。
SQLコマンド
SQLは多くのコマンドで構成されています。各SQLコマンドは通常、セミコロン(;)で終了します。たとえば、セミコロン(;)で区切られた2つの異なるSQLコマンドを次に示します。
SELECT
first_name, last_name
FROM
employees;
DELETE FROM employees
WHERE
hire_date < '1990-01-01';
Code language: SQL (Structured Query Language) (sql)
SQLは、セミコロン(;)を使用してコマンドの終わりを示します。
各コマンドは、リテラル、キーワード、識別子、または式であるトークンで構成されます。トークンは、スペース、タブ、または改行で区切られます。
リテラル
リテラルは、定数とも呼ばれる明示的な値です。SQLは、文字列、数値、およびバイナリの3種類のリテラルを提供します。
文字列リテラルは、単一引用符で囲まれた1つ以上の英数字で構成されます。次に例を示します。
'John'
'1990-01-01'
'50'
Code language: SQL (Structured Query Language) (sql)
50は数字です。ただし、単一引用符(例:'50'
)で囲むと、SQLはそれを文字列リテラルとして扱います。
通常、SQLは文字列リテラルに関して*大文字と小文字を区別*するため、値'John'
は'JOHN'
と同じではありません。
数値リテラルは、整数、10進数、または科学表記法です。次に例を示します。
200
-5
6.0221415E23
Code language: SQL (Structured Query Language) (sql)
SQLは、表記x'0000'
を使用してバイナリ値を表します。ここで、各桁は16進値です。次に例を示します。
x'01'
x'0f0ff'
Code language: SQL (Structured Query Language) (sql)
キーワード
SQLには、SELECT、INSERT、UPDATE、DELETE、DROPなど、特別な意味を持つ多くのキーワードがあります。これらのキーワードは予約語であるため、テーブル、列、インデックス、ビュー、ストアドプロシージャ、トリガー、またはその他のデータベースオブジェクトの名前として使用することはできません。
識別子
識別子は、テーブル、列、インデックスなど、データベース内の特定のオブジェクトを参照します。SQLは、キーワードと識別子に関して大文字と小文字を区別しません。
次のステートメントは同等です。
Select * From employees;
SELECT * FROM EMPLOYEES;
select * from employees;
SELECT * FROM employees;
Code language: SQL (Structured Query Language) (sql)
SQLコマンドを読みやすく明確にするために、チュートリアル全体でSQLキーワードは大文字で、識別子は小文字で使用します。
コメント
SQLステートメントを文書化するには、SQLコメントを使用します。コメント付きのSQLステートメントを解析する場合、データベースエンジンはコメント内の文字を無視します。
コメントは、残りの行をコメントできる2つの連続したハイフン(--
)で表されます。次の例を参照してください。
SELECT
employee_id, salary
FROM
employees
WHERE
salary < 3000;-- employees with low salary
Code language: SQL (Structured Query Language) (sql)
これはSQLコメントです。
-- employees with low salary
Code language: SQL (Structured Query Language) (sql)
複数行にまたがるコードを文書化するには、次のステートメントに示すように、複数行のCスタイルの表記(/**/
)を使用します。
/* increase 5% for employees whose salary is less than 3,000 */
UPDATE employees
SET
salary = salary * 1.05
WHERE
salary < 3000;
Code language: SQL (Structured Query Language) (sql)
このチュートリアルでは、SQLステートメントの各コンポーネントを理解するのに役立つSQL構文を紹介しました。
SQL言語をより効果的に学習するには、練習するための適切なサンプルデータベースが必要です。次のチュートリアルでは、簡単なSQLデータベースを紹介します。