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 句では、集計を行った結果に対して絞り込みを行うので、取得結果の意味が大きく異なります。集計の前か後か、目的に応じて使い分けるようにしましょう。

今日のひるごはん

投稿者 sochankun

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です