2.1 SQL の概要

データベース (DB) があり、その中にデータが含まれるテーブルがある場合、最も一般的なタスクは、このテーブルで特定のデータを検索することです。それが SQL が 40 年前に発明されたものです。

SQL はStructured Query Languageの略です。

最も単純な SQL クエリは次のようになります。

SELECT column1, column2, … columnN FROM table

スタートアップの従業員のリストを含む従業員テーブルがあるとします。

ID 名前 職業 給料 参加日
1 イワノフ・イワン プログラマー 100,000 25 2012-06-30
2 ペトロフ・ペトル プログラマー 80,000 23 2013-08-12
3 イワノフ・セルゲイ テスター 40,000 30 2014-01-01
4 ラビノビッチ・モイシャ 監督 200,000 35 2015-05-12
5 キリエンコ・アナスタシア 事務長 40,000 25 2015-10-10
6 バスカ 1,000 3 2018-01-01

employee namesそれらも表示するクエリを作成したい場合はsalaries、次のクエリを作成する必要があります。

SELECT name, salary FROM employee

クエリ結果が得られます。

名前 給料
イワノフ・イワン 100,000
ペトロフ・ペトル 80,000
イワノフ・セルゲイ 40,000
ラビノビッチ・モイシャ 200,000
キリエンコ・アナスタシア 40,000
バスカ 1,000

テーブルのすべての列を表示したい場合は、すべての列の名前をリストする代わりに、単純にアスタリスクを書くことができます。例:

SELECT * FROM employee

クエリ結果が得られます。

ID 名前 職業 給料 参加日
1 イワノフ・イワン プログラマー 100,000 25 2012-06-30
2 ペトロフ・ペトル プログラマー 80,000 23 2013-08-12
3 イワノフ・セルゲイ テスター 40,000 30 2014-01-01
4 ラビノビッチ・モイシャ 監督 200,000 35 2015-05-12
5 キリエンコ・アナスタシア 事務長 40,000 25 2015-10-10
6 バスカ 1,000 3 2018-01-01

2.2 SQL クエリの詳細ビュー

SQL 言語は、可能な限り使いやすいように設計されています。

まず、リクエスト テキストの大文字と小文字は関係ありません。SELECT、Select、または select と書くと、すべてが機能します。次に、改行はまったく考慮されません。DBMS はクエリを 1 つの長い文字列に変換するため、好きなように記述することができます。

すでにご想像のとおり、SELECT キーワードと FROM キーワードには制限がありません。そうでなければ、SQL についてこれほど話題になることはなかったでしょう。SQL クエリの拡張ビューは次のようになります。

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting

キーワードを使用すると、WHERE選択した行に条件/フィルターを設定できます。

例1.「プログラマー」という職業の従業員を選択するクエリを作成してみましょう。

SELECT * FROM employee WHERE occupation = 'Programmer'

そして、次のクエリ結果が得られます。

ID 名前 職業 給料 参加日
1 イワノフ・イワン プログラマー 100,000 25 2012-06-30
2 ペトロフ・ペトル プログラマー 80,000 23 2013-08-12

ご覧のとおり、クエリを実行した結果、従業員の職業が「プログラマ」である行のみが表示されます。

キーワードGROUP BYORDER BYおよびHAVING次の講義で説明します。ここでは、WHERE という単語を使用した例をさらにいくつか分析します。

例2.次に、給与が 100,000 を超えるすべての従業員を表示するクエリを作成してみましょう。以下のようになります。

SELECT * FROM employee WHERE salary > 100000

次のクエリ結果が得られます。

ID 名前 職業 給料 参加日
4 ラビノビッチ・モイシャ 監督 200,000 35 2015-05-12

例 3。では、もっと難しいことに挑戦してみましょう。2015 年に採用されたすべての従業員を表示するにはどうすればよいですか? そしてこのように:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

次のクエリ結果が得られます。

ID 名前 職業 給料 参加日
4 ラビノビッチ・モイシャ 監督 200,000 35 2015-05-12
5 キリエンコ・アナスタシア 事務長 40,000 25 2015-10-10

YEAR()このクエリでは、日付から年を取得し、その日付の年を数値 2015 と比較できる特別な関数を使用します。

2.3 SQL クエリ内のコメント

そしてもう 1 つ重要な点は、SQL クエリ内のコメントです。コメントはとても便利なものです。まず、説明やアイデアを書き込むことができます。次に、コメントを使用して、壊れたコードを無効にすることができます。または、古いバージョンのコードをコメントアウトします。

Java と同様、SQL には単一行コメントと複数行コメントがあります。さらに、複数行のコメントは Java と同じように見えます。その外観:


/*
 	comment text
 	comment text
 	comment text
*/
        

もちろん1行でも使えます。例:


/*comment text*/
        

Javaの「//」と似た「行頭から行末まで」のコメントもあります。SQL の場合のみ、 2 つのマイナス文字と 1 つのスペースを記述する必要があります。このようなコメントの一般的な見方は次のとおりです。

-- comment text

例:


        SELECT * FROM employee -- WHERE YEAR(join_date) = 2015 
        

上の例では、クエリ条件をコメントアウトしたため、MySQL はクエリのみを実行します。

SELECT * FROM employee

2.4 SQLの発音

外国人の顧客とコミュニケーションを取ったり、アメリカ企業のオンライン面接に合格したりする場合、後続言語の経験について尋ねられることがあります。あなたは、彼とは一緒に仕事をしなかったと正直に言い、すぐに面接で落ちてしまうでしょう。

そして問題は、SQL 言語はもともと SEQUEL と呼ばれていたもので、これは続編(ˈsēkwəl) のように発音されるため、米国やその他の英語ソースでは「エスクエル」ではなく「シークエル」と聞こえることが非常に多いのです。SQL が書き込まれ、続きが読み取られます。ここにそのような歴史的な矛盾があります。