演算子
LIKE 文:あいまい検索
1 |
SELECT <列名> FROM <テーブル名> WHERE <検索対象の列名> LIKE '%<検索文字>%'; |
(「%」は任意の文字列を指し、「_」は任意の 1 文字を指す)
BETWEEN 文:、範囲の絞り込み
「○○以上△△以下」
1 |
SELECT <列名> FROM <テーブル名> WHERE <対象となる列名> BETWEEN <最小値> AND <最大値>; |
IN 文:条件の比較
同じ列に対して値だけを変えて OR 条件としている場合
例:「○○=△△ OR ○○=▲▲ OR ○○=□□」→「○○ IN (△△, ▲▲, □□)」
1 |
SELECT <列名> FROM <テーブル名> WHERE <対象となる列名> IN (比較値A, 比較値B, 比較値C); |
集約関数
1 |
関数名(列名) |
COUNT | テーブルのレコード数(行数)を数える |
SUM | テーブルの数値列のデータ合計(NULLは無視して計算) |
AVG | テーブルの数値列のデータ平均(NULLは無視して計算) |
MAX | テーブルの任意の列のデータの最大値を求める |
MIN | テーブルの任意の列のデータの最小値を求める |
*関数の引数に「*」を使用出来るのは、COUNT 関数のみ。
*COUNT()を使いNULL の行を除外して数えたい場合 → 対象とする列を限定して引数に記述。
DISTINCT:重複値を除外
重複値を除外して集約関数を使う
1 |
関数名(DISTINCT 列名) |
*DISTINCT を引数にする → 「最初に列の重複値を除外し、それからその結果の行数を数える」
↑もし引数の外に書くと
例:SELECT DISTINCT 関数(<列名>) FROM <テーブル名>;
「最初に列の行数を数え、それからその結果の重複値を除外する」
GROUP BY 句:グループ分け
*SELECT 句に列の別名指定不可。
1 2 3 |
SELECT <列名 1>, <列名 2>, <列名 3>,…… FROM <テーブル名> GROUP BY <列名 1>, <列名 2>, <列名 3>,……; |
*集約キーに NULL が含まれていた場合 → 一括して「NULL」という 1 つのグループに分類。
*WHERE 句には集約関数を用いれない → 、GROUP BY 句や SELECT 句よりも先に実行されるため。
HAVING 句:グループに対して条件を指定
1 2 3 4 |
SELECT <列名 1>, <列名 2>, <列名 3>,…… FROM <テーブル名> GROUP BY <列名 1>, <列名 2>, <列名 3>,…… HAVING <グループの値に対する条件>; |
ORDER BY 句:結果の並び替え
*SELECT 句に列の別名指定可能。
1 |
ORDER BY 列名 順序(昇順または降順) |
*昇順「ASC」、降順「DESC」
【 複数のソートキーを指定】
1 2 3 |
SELECT * FROM Item ORDER BY <列名> <順序>, <列名> <順序>; |
【 NULL の順番 】
*「NULLS FIRST」→ NULL が先頭に、「NULLS LAST」→ NULL が最後に表示。
SELECT 句の実行順序
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
関連記事
Oracle研修1:データベースの概要とOracleの特徴、ユーザーと権限
Oracle研修2:SQLのデータ型。テーブルの作成、変更、削除。 列の追加、変更、削除。