SQLを学び始めて2日目です。
なかなか覚えるのが難しい。
###○今日覚えたこと
select distinct(カラム名)
from テーブル名;
↑検索結果から重複するデータを除くことが可能
select sum(カラム名)
from テーブル名;
↑指定したカラムに保存されたデータの合計を計算することが可能
select avg(カラム名)
from テーブル名;
↑指定したカラムに保存されたデータの平均を計算することが可能
select count(カラム名)
from テーブル名;
↑指定したカラムのデータの数を計算
select max(カラム名)
from テーブル名;
↑指定したカラムのデータの中から最大のデータを取得することが可能
select min(カラム名)
from テーブル名;
↑指定したカラムのデータの中から最小のデータを取得することが可能
select (カラム名)
from テーブル名
group by カラム名;
↑指定したカラムで、完全に同一のデータを持つレコードどうしが同じグループになる
※group byを用いる場合、selectで使えるのは、group byに指定しているカラム名と、集計関数のみ
※group byはwhereとも併用することができ、その場合はwhereの後に書く
select (カラム名)
from テーブル名
group by カラム名
having 条件;
↑group byでグループ化したデータを更に絞り込みたい場合には、HAVINGを用いる
select (カラム名)
from テーブル名
where 条件 >(
select (カラム名)
from テーブル名
where 条件
)
↑SQLでは、クエリの中に他のクエリを入れることができ、この他のクエリをサブクエリと言う
※サブクエリが実行された後、外側にあるクエリが実行される
select (カラム名) as '変更したい名前';
↑asを使うことでカラム名などに別名を定義することができる
select*
from テーブルA
join テーブルB
on 結合条件 テーブルA.カラム名 = テーブルB.カラム名;
↑joinは複数のテーブルを1つに結合したいときに使う。onで条件を指定して、テーブルAにテーブルBを結合する。結合したテーブルは1つのテーブルとしてデータを取得することができる。
select*
from テーブルA
left join テーブルB
on 結合条件 テーブルA.カラム名 = テーブルB.カラム名;
↑left joinを使うことで、fromで指定したテーブルのレコードを全て取得(NULLのレコードもNULLのまま実行結果に表示される)
※joinやleft joinは複数回使用可