Posted at 2007.10.16,Tue
ええと、苦手というか実務経験の無いデータベースの午後対策として、SQL全般を少し押さえておきたいと思います。ただ、私の場合、趣味程度にはさわったことがありますので、基本中の基本? SELECT とかは無視して進めます。
まずは、よく使われそうな関数から。
平均・出現数・最大・最小・合計 という単純なもの。
次に、関数と合わせて使うことで効果的なもの。
例えば、
SELECT 名前, SUM(点数) FROM 試験結果 GROUP BY 名前 HAVING AVG(点数) >= 50
とすると、平均点が 50点以上の人の名前と合計点数が表示される、って感じですね。
次に、条件に指定する部分のキーワード。
最後は、SELECT 文の結合に関するもの。
ええと、一個忘れてました。
こんなものでしょうか。
他にも、CONCATENATE だとか色々有りますが、サーバによって構文が異なるものが大半なので、問題には出なさそうです。
まずは、よく使われそうな関数から。
AVG, COUNT, MAX, MIN, SUM
構文:SELECT 関数 ( フィールド ) ...
意味:指定されたフィールドに対する演算結果を取得する
構文:SELECT 関数 ( フィールド ) ...
意味:指定されたフィールドに対する演算結果を取得する
平均・出現数・最大・最小・合計 という単純なもの。
次に、関数と合わせて使うことで効果的なもの。
GROUP BY
構文:SELECT ... FROM ... WHERE ... GROUP BY フィールド
意味:指定されたフィールド単位でまとめる
HAVING
構文:SELECT ... FROM ... WHERE ... HAVING 条件式
意味:条件式に応じた結果のみにフィリタリング
構文:SELECT ... FROM ... WHERE ... GROUP BY フィールド
意味:指定されたフィールド単位でまとめる
HAVING
構文:SELECT ... FROM ... WHERE ... HAVING 条件式
意味:条件式に応じた結果のみにフィリタリング
例えば、
SELECT 名前, SUM(点数) FROM 試験結果 GROUP BY 名前 HAVING AVG(点数) >= 50
とすると、平均点が 50点以上の人の名前と合計点数が表示される、って感じですね。
次に、条件に指定する部分のキーワード。
IN
構文:SELECT ... WHERE フィールド IN (値1, 値2... 値N)
意味:指定したリストに存在するもののみ抽出
BETWEEN ... AND ...
構文:SELECT ... WHERE フィールド BETWEEN 値1 AND 値2
意味:指定した値の範囲内のものを抽出
LIKE
構文:SELECT ... WHERE フィールド LIKE パターン
意味:指定したパターンとマッチング
構文:SELECT ... WHERE フィールド IN (値1, 値2... 値N)
意味:指定したリストに存在するもののみ抽出
BETWEEN ... AND ...
構文:SELECT ... WHERE フィールド BETWEEN 値1 AND 値2
意味:指定した値の範囲内のものを抽出
LIKE
構文:SELECT ... WHERE フィールド LIKE パターン
意味:指定したパターンとマッチング
最後は、SELECT 文の結合に関するもの。
UNION, UNION ALL, INTERSECT
構文:SELECT ... 結合 SELECT ...
意味:UNIONは重複データを省いた和集合。
:UNION ALL は単純な和集合。
:INTERSECT は重複データを省いた積集合。
構文:SELECT ... 結合 SELECT ...
意味:UNIONは重複データを省いた和集合。
:UNION ALL は単純な和集合。
:INTERSECT は重複データを省いた積集合。
ええと、一個忘れてました。
DISTINCT
構文:SELECT DISTINCT フィールド ...
意味:重複する値を除く
構文:SELECT DISTINCT フィールド ...
意味:重複する値を除く
こんなものでしょうか。
他にも、CONCATENATE だとか色々有りますが、サーバによって構文が異なるものが大半なので、問題には出なさそうです。
PR
Comments
Post a Comment