SQL
よく使う機能の復習 前日記事参照
テーブルの作成: CREATE TABLE ステートメント
データの追加: INSERT ステートメント
データの更新: UPDATE ステートメント
データの削除: DELETE ステートメント
一番使うSELECT
SELECT 列名1, 列名2, …
FROM テーブル名
WHERE 検索する行の条件
この構文はしっかり書いて覚えよう。
WHERE 句で利用できる演算子
比較演算子: =、<、>、<=、>=、<>


Note: AND と OR の優先順位
AND と OR がある場合は、AND が優先されます。可読性が悪いので()で囲んであげるとよい

ORを優先したいとき ()で囲む

BETWEEN 演算子による範囲検索
SQL では、BETWEEN 演算子を利用すると、“~以上 ~以下” という条件を簡単に記述できるよ
うになります。
SELECT 列名1, 列名2, …
FROM テーブル名
WHERE 列名 BETWEEN 値1 AND 値2

上と下は同じことを書いている。
IN 演算子による複数値の検索
IN 演算子を利用すると、“A または B または C” というように、”複数の値を指定し
た条件” を簡単に記述できるようになります。

こちらも上下同じ
IS NULL 演算子による NULL 値の検索
SELECT * FROM 社員
WHERE 給与 IS NULL
NULL 値は、前述の「IN」演算子の中では利用することができません。「IN」演算子を利用する場合は、別途条件式を記述する必要があります。

SELECT * FROM 社員
WHERE 給与 IN (300000,700000)
OR 給与 IS NULL
LIKE 演算子による文字列検索
LIKE 演算子を利用すると、文字データをワイルドカード検索できるようになります。
ワイルドカードには、「%」と「」があり、それぞれ次のように利用できます。
% は、“0 文字以上の任意の文字列”
_は、”任意の1 文字”

Note: キーワード検索はパフォーマンスが悪いことに注意。4時間がかかる。
集計関数とテーブルの結合
集計関数: SUM、AVG、MAX、MIN、COUNT

列名なしになるのでAS 〇〇 で列名追加
Note: 集計関数では NULL 値が無視される
SUM と AVG、MAX、MIN 関数では、NULL 値が無視されるされて計算される。
NULL 値があった場合に、それを別の値(0 など)へ変換して集計関数で処理させる方法もあります。これは「ISNULL」という関数を使って、次のように記述する。

グループ化: GROUP BY 句
集計関数は、GROUP BY 句と一緒に利用することで、グループごとの集計値を計算できるように
なります。
SELECT 列名1, 列名2, …
FROM テーブル名
WHERE 検索する行の条件
GROUP BY 列名1, 列名2, ・・・[ HAVING 絞込み条件 ]

COUNT 関数でグループごとに集計

Note: WHERE 句と HAVING 句の絞り込みの違い
WHERE 句と HAVING 句は、取得するデータの絞り込みができるという点では同じですが、WHERE 句が、集計演算をする前に絞り込みを行うのに対して、HAVING 句では、集計を行った結果に対して絞り込みを行うので、取得結果の意味が大きく異なります。集計の前か後か、目的に応じて使い分けるようにしましょう。
今日のひるごはん
