トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

簡単なSQLの説明

リレーショナルデータベース

  • ひとつのデータベースに複数の表を持つことができる
  • 複数の表から新たに表を作り出すことができる
  • 集合論に基づいている
    • 和・積・差・直積
    • 行には順序が無い
    • 列にも順序が無い

選択・射影・結合・商

結合(Join)

  • 交差結合(クロスジョイン)
  • 等結合(イクイジョイン)
  • 自然結合(ナチュラルジョイン)
  • θ(シータ)結合

DML

DDL

DCL

SELECT文

SELECT * FROM 表 [WHERE 条件]
SELECT [DISTINCT] 列名[,...] FROM 表 [WHERE 条件]

算術演算子

記号 意味
+ 加算
- 減算
* 乗算
/ 除算

比較演算子

記号 意味
= 等しい
<> 等しくない
> 大きい
>= 大きいか等しい(以上)
< 小さい
<= 小さいいか等しい(以下)
IS [NOT] NULL

0(ゼロ)、' '(空白)、''(長さゼロの文字列)の何れでもない。

= NULL          ×

論理演算子

AND かつ
OR または
NOT 否定(〜でない)
  • NOT a = b ⇔ a <> b
  • NOT a <> b ⇔ a = b
  • NOT a > b ⇔ a <= b
  • NOT a >= b ⇔ a < b
  • NOT a < b ⇔ a => b
  • NOT a <= b ⇔ a > b
  • NOT (a IS NULL) ⇔ a IS NOT NULL

LIKE述語

a LIKE b [ESCAPE c]
  • %

任意の文字列にマッチする。空の文字列にもマッチする。

'入門%'

入門で始まる文字列

'%入門'

入門で終わる文字列

'%入門%'

入門を含む文字列

  • _

任意の1文字にマッチする。'E_'は2文字の文字列で、'E'にはマッチしない。

a NOT LIKE b ⇔ NOT a LIKE b

IN述語

a IN (v1,v2,v3,...)
a = v1 OR a = v2 OR a = v3 OR …

と同じ

a NOT IN ()
⇔ NOT a IN ()
⇔ a <> v1 AND a <> v2 AND …

BETWEEN述語

b BETWEEN a AND c

bはaとcの範囲内にある。

a≦b≦c
a <= b AND b <= c
b NOT BETWEEN a AND c ⇔ NOT (b BETWEEN a AND c)

 集合演算子

UNION演算子

SELECT文 UNION [ALL] SELECT文

ふたつのクエリの結果をつなぎ合わせ、そこから重複する行を取り除く(ALLを付けると重複したままになる)。

INTERSECT演算子

EXCEPT演算子

 集計関数

COUNT関数

COUNT(*)
COUNT(列名)
COUNT(DISTINCT 列名)

SUM関数

AVG関数

MAX関数

MIN関数

 文字列関数

UPPER関数

LOWER関数

SUBSTRING関数