リレーショナルデータベース
- ひとつのデータベースに複数の表を持つことができる
- 複数の表から新たに表を作り出すことができる
- 集合論に基づいている
- 和・積・差・直積
- 行には順序が無い
- 列にも順序が無い
選択・射影・結合・商
結合(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 列名)