[記事公開日]2015/01/16
[最終更新日]2016/11/29

基本情報技術者試験 8-6(SQLとは??)

SQL(エスキューエル)

Structured Query Languageの略

(構築した*疑問*言語)

 

2つの言語に分かれます。

1.データ定義言語(DDL)

⇒DBや表を作る言語(操作)。

 

2.データ操作言語(DML)

抽出や挿入、更新、削除を行う言語(操作)。

 

SELECT文を覚えましょう。

・文法を覚える

・書く順番を覚える

・どのような結果になるか分かるようにする

 

このくらいで大丈夫です。

 

<例1>

SELECT 列名 FROM 表名で

任意の列を抜き取ります。

SELECT C FROM A表

 

1

 

<例2>

SELECT * を表記すると、

「当てはまるのを全て選べ」という意味になります。

WHEREは「条件」を提示します。

SELECT * ~

WHERE ~

ときたら、当てはまるのを全て選べとなります。

SELECT * FROM A

WHERE

A=’10’ OR

A=’20’ OR

A=’30’

2

「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

>= 10000 C<= 50000

10000以上、50000万未満という意味ですね。

3

「>=」は「≧」と同じ意味です。

二文字で表現しているだけです。

「BETWEEN」を使って、下記のように書くこともできます。

「BETWEEN」は「~の間」という意味です。

SELECT * FROM A

WHERE

C BETWEEN 10000 AND 50000

 

<例4>

SELECT A列,D列,E列

FROM X,Y

WHERE

X,B列 = Y表,C列

4

X,B列」は「X表のB列」という意味です。

「X表のB列」と「Y表のC列」が一致していたら、

そのA列、D列、E列を取り出せという意味に

なります。

 

<例5>

SELECT DISTINCT~(以下省略)

5

「 DISTINCT」を書くことで、

結果で出たデータに重複があった場合、

その行は一行にまとめられます。

 ↓

「DISTINCT」は重複を無くすと覚えましょう。

 

<例6>

SELECT * FROM A

WHERE

氏名 LIKE ’%%’

氏名列に「藤」の文字が入っていれば、

結果に出します。

他にも、

LIKE ’% →”藤”で終わる

LIKE ’%’ →”藤”で始まる

と検索できます。

 

<例7>

SELECT A1,A2,A3

FROM B

WHERE A4=’a’

6

A4列にある「a」である行を取り出します。

長くなりましたが以上です。

ある程度は感覚で解けるかと思います。