LoginSignup
2
3

More than 5 years have passed since last update.

SQLの基礎の基礎をメモしていくよ

Last updated at Posted at 2017-01-12

★データを抽出する

テーブルの項目すべて

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 ('追加データ:文字列は囲む', )

★データを更新する

データの更新

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
2
3
1

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
3