SQL(エスキューエル)
⇒Structured Query Languageの略
(構築した*疑問*言語)
2つの言語に分かれます。
1.データ定義言語(DDL)
⇒DBや表を作る言語(操作)。
2.データ操作言語(DML)
抽出や挿入、更新、削除を行う言語(操作)。
◆SELECT文を覚えましょう。
・文法を覚える
・書く順番を覚える
・どのような結果になるか分かるようにする
このくらいで大丈夫です。
<例1>
SELECT 列名 FROM 表名で
任意の列を抜き取ります。
↓
SELECT C FROM A表
<例2>
SELECT * を表記すると、
「当てはまるのを全て選べ」という意味になります。
WHEREは「条件」を提示します。
↓
SELECT * ~
WHERE ~
ときたら、当てはまるのを全て選べとなります。
↓
SELECT * FROM A表
WHERE
A=’10’ OR
A=’20’ OR
A=’30’
↓
「OR」は、「A列に10とか20とか30とか
含まれてたら、その列をA表から取り出せ」
という意味です。
下記のように書くこともできます。
↓
SELECT * FROM A表
WHERE
A IN(’10’,’20’,’30’)
【演算子の優先順位】
今回は「OR」を使いましたが、
他にも
・NOT
・AND
があります。
SQLでは、
NOT>AND>ORの順で優先順位が
決まっています。
数学で「+」や「-」より、
「×」「÷」が優先されるのと同じです。
もし優先順位に左右されたくなければ、
()を使います。
↓
(A OR B) AND C
<例3>
SELECT * FROM A表
WHERE
C >= 10000 C<= 50000
↓
10000以上、50000万未満という意味ですね。
↓
「>=」は「≧」と同じ意味です。
二文字で表現しているだけです。
「BETWEEN」を使って、下記のように書くこともできます。
「BETWEEN」は「~の間」という意味です。
↓
SELECT * FROM A表
WHERE
C BETWEEN 10000 AND 50000
<例4>
SELECT A列,D列,E列
FROM X表,Y表
WHERE
X表,B列 = Y表,C列
↓
「X表,B列」は「X表のB列」という意味です。
「X表のB列」と「Y表のC列」が一致していたら、
そのA列、D列、E列を取り出せという意味に
なります。
<例5>
SELECT DISTINCT~(以下省略)
↓
「 DISTINCT」を書くことで、
結果で出たデータに重複があった場合、
その行は一行にまとめられます。
↓
「DISTINCT」は重複を無くすと覚えましょう。
<例6>
SELECT * FROM A表
WHERE
氏名 LIKE ’%藤%’
↓
氏名列に「藤」の文字が入っていれば、
結果に出します。
↓
他にも、
LIKE ’%藤‘ →”藤”で終わる
LIKE ’藤%’ →”藤”で始まる
と検索できます。
<例7>
SELECT A1,A2,A3
FROM B表
WHERE A4=’a’
↓
A4列にある「a」である行を取り出します。
長くなりましたが以上です。
ある程度は感覚で解けるかと思います。