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 BY
、ORDER 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 が書き込まれ、続きが読み取られます。ここにそのような歴史的な矛盾があります。
GO TO FULL VERSION