2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQLの記述順序と実行順序の基本

Posted at

#記述の順序
1.select 取得する列の指定
2.from テーブルの指定
3.(inner,outer) join 結合処理
4.where 絞り込み条件の指定
5.group by グループ条件の指定
6.having グループ化後の絞り込み条件の指定
7.order by 並び替え条件の指定
8.limit 取得する行数の指定

#実行順序
1.from テーブルの指定
2.(inner,outer) join 結合処理
3.where 絞り込み条件の指定
4.group by グループ条件の指定
5.having グループ化後の絞り込み条件の指定
6.select 取得する列の指定
7.order by 並び替え条件の指定
8.limit 取得する行数の指定

#集約関数
集約関数とは、集計操作を行う際に用いる関数です。代表的な集約関数と使い方は以下。

-- 出力結果:6
select avg(age) from users; /* ユーザーの平均年齢を求める */
-- 出力結果:23.5000
select sum(math + japanese) from users where user_name = 'tani'; /* 谷さんの合計点を求める */
-- 出力結果:188
select max(math) from users; /* 数学の最高点を求める */
-- 出力結果:90
select min(math) from users; /* 数学の最低点を求める */
-- 出力結果:39

#GROUP BY
グループ化を行うときに使用する。特定の場所で集約関数を使用したいときに使用する。基本的には、カラムでグループ化して、その別のカラムに関して集約関数を適用することが多い。

#HAVING
group byで指定した場所を計算した後に、その計算結果に関してwhere句のように条件指定できるのがhaving句。

select user_name, sum(math+japanese)
from users
group by user_name
having sum(math+japanese) >= 180;

#order by
selectで取り出したデータの順番を並び替えることができる。ascで昇順、descで降順になる。

#IN
リスト形式に比較が可能になる

#limit
取得するレコードを制限できる

#date関連
業務において日付や時間に関するデータの取り扱いは重要。
時間・日付関数の代表例は以下。
current_date:現在の日付
current_time:現在の時間
date_format:指定した書式にフォーマット

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?