重複する値を除く
SELECT DISTINCT 列名
FROM 表名;
外部結合
emp表id列に一致するdpt表データが結合される
SELECT *
FROM emp e
LEFT JOIN dpt d
ON e.id=d.id;
集計関数の使用
・重複を含む数、NULLも含む
SELECT COUNT(*)
FROM 表名;
・重複含む、NULLは含まない
SELECT COUNT(列名)
FROM 表名;
・重複を除く数、NULLは含まない
(DISTINCT * はエラーになる)
SELECT COUNT(DISTINCT 列名)
FROM 表名;
GROUP BYが必須の条件
①集計列とそうでない列を同時に表示
集計列以外をGROUP BYに記述
SELECT dptno,job, MAX(sal)
FROM dpt
GROUP BY deptno,job;
②集計関数のネスト(3つ以上はエラー)
集計関数をネストするとき、同時に他の列を指定できない
SELECT MAX(AVG(sal))
FROM dpt
GROUP BY id;
ORDER BYのソート順
ASC(昇順)、DESC(降順)で指定
ORDER BYは列別名でも指定が可能
SELECT 列名1,列名2
FROM 表名
ORDER BY 列名1 ASC;
列番号でも指定できる
この場合列名1は昇順、列名2のみ降順になる
・明示しないと昇順になり
・指定は直前の列のみに反映される
SELECT 列名1,列名2
FROM 表名
ORDER BY 列名1,列名2 DESC;
昇順のとき
・数値:小→大
・文字列:小→大
・日付:古→新
・NULL:もっとも大きい値として扱われ、
昇順のとき一番うしろになる
・NULLを先頭に指定:NULLS FIRST
・NULLを最後に指定:NULLS LAST
列別名の指定
漢字、ひらがな、カタカナ、アルファベット、$_#は
"ダブルクォーテーションで囲まなくても指定できる
アルファベットはデフォルトで全て大文字になる
大文字小文字を区別するときは"Sal"のように囲む必要がある