★データを抽出する
テーブルの項目すべて
select * from テーブル名;
テーブル項目すべてのうち、条件に合致するものだけ
select * from テーブル名
where 条件;
*条件とは、フィールド名 > 1000 など
一部のフィールドだけ
select 抽出したいフィールド名1, 抽出したいフィールド名2 from テーブル名;
抽出時に別名をつける
select 抽出したいフィールド名 as 抽出後につけたいフィールド名
from テーブル名 as 抽出後につけたいテーブル名
where 抽出条件;
LIKEによるあいまい抽出
任意の0文字以上の文字列
%
任意の1文字
_
select * from テーブル名
where 抽出したいフィールド名 like '%抽出したい文字列%';
BETWEENによる範囲指定抽出
between ● and ●
select * from テーブル名
where 抽出したいフィールド名 between '範囲指定の開始:文字列は囲む' and '範囲指定の終了値';
IN / NOT INによる複数値比較
in (比較する値,比較する値,比較する値)
select * from テーブル名
where 抽出したいフィールド名 in ('比較文字列1', '比較文字列2');
★データを追加する
行の挿入
insert into テーブル名
values ('追加データ:文字列は囲む', 0)
★データを更新する
データの更新
update テーブル名
set 更新対象のフィールド名 = 更新する値
条件つきのデータの更新
update テーブル名
set 更新対象のフィールド名 = 更新する値
where 更新条件があるフィールド名 = 更新条件の値
★データを削除する
データの削除
delete from テーブル名
where 削除条件があるフィールド名 = 削除条件の値
★テーブルを結合する
AとBテーブルを結合する
- joinで結合する他の表を指定
- onで結合条件を指定
EX)テーブルA.結合対象のフィールド名 = テーブルB.結合対象のフィールド名
select 抽出したいフィールド名1,抽出したいフィールド名2
from テーブルA
join テーブルB
on 結合条件
結合相手が複数あるとき
EX)テーブルA.結合対象のフィールド名 該当が1つあった
テーブルB.結合対象のフィールド名 該当が2つあった
→ Aのフィールドの値が1つコピーされ、Bの値が2つ収まる(結合の結果、行が増えている)
結合相手がいないとき
EX)テーブルA.結合対象のフィールド名 該当が1つあった
テーブルB.結合対象のフィールド名 該当が1つもなかった
→結合結果が出力されない
結合相手がいないときでも出力をしたいとき
- テーブルAを左表、Bを右表とする
- Bの表に該当がなくても、Aの表をすべて表示させる
select ~~ from テーブルA
left join テーブルB
on 結合条件
- テーブルAを左表、Bを右表とする
- Aの表に該当がなくても、Bの表をすべて表示させる
select ~~ from テーブルA
right join テーブルB
on 結合条件
- テーブルAを左表、Bを右表とする
- 左右どちらの表も全行を必ず表示させる
select ~~ from テーブルA
full join テーブルB
on 結合条件
★NULLの判定方法
NULLであることを判定
is null
NULLでないことを判定
is not null