【DB入門】抽出条件を指定する(Where)

2019年10月4日

スポンサーリンク

Where文

Where文をSelect文の後につけることで、抽出条件を指定できます。

select 列名 from テーブル名 where 条件;

抽出条件が複数あった場合は、「and」でつなぎます。

select 列名 from テーブル名 where 条件1 and 条件2;

 

Select文に抽出条件を加えた例です。

--学生コード = 'stu01'となっているデータを抽出する。
select * from m_student_score where student_code = 'stu01';

--得点(score)が80以上のデータを取得する
select * from m_student_score where score >= 80;

--得点(score)が50以下のデータを取得する
select * from m_student_score where score <= 50;

--得点(score)が50以下のデータ かつ 学生コードが'sub06'となっているデータを抽出する。
select * from m_student_score where score <= 50 and student_code = 'stu06';

--得点(score)が30以上50以下のデータを取得する(以下の二つは結果が同じです)。
select * from m_student_score where score >= 30 and score <= 50;
select * from m_student_score where score between 30 and 50;

 

like

文字を抽出条件にする時、等しい場合は「=」、部分一致の場合は「like」を使います。

--等しいものを抽出
select 列名 from テーブル名 where 条件 = 文字列;

--前方一致するものを抽出
select 列名 from テーブル名 where 条件 like 文字列%;

--後方一致するものを抽出
select 列名 from テーブル名 where 条件 like %文字列;

--部分一致するものを抽出
select 列名 from テーブル名 where 条件 like %文字列%;

 

like例

--名前が「前田威雄」と一致するデータを取得
select * From m_student where student_name = '前田威雄';

--名前が「丹野」から始まるデータを取得
select * From m_student where student_name like '丹野%';

--名前が「綾奈」で終わるデータを取得
select * From m_student where student_name like '%綾奈';

--名前が「田」を含むデータを取得
select * From m_student where student_name like '%田%';

 

In

「○か○か○のもの」のように条件を指定する場合は、IN句を使用します。

select 列名 from テーブル名 where 列名 in(値1 , 値2 , 値3);

--例:商品分類が食品、電化製品、車の商品を取得する。
select * from 商品 where 分類 in('食品' , '電化製品' , '車');

 

Not In

「○か○か○でないもの」のように条件を指定する場合は、NOT IN句を使用します。

select 列名 from テーブル名 where 列名 not in(値1 , 値2 , 値3);

--例:商品分類が食品、電化製品、車でない商品を取得する。
select * from 商品 where 分類 not in('食品' , '電化製品' , '車');

 

サブクエリ

サブクエリとは、クエリ中のクエリのことです。

INでは値の指定だけでなく、SELECT文で取得した結果をもとに抽出することができます。

select 列名 from テーブル名1 
where 列名1 in(select 列名2 from テーブル名2); --列名1と列名2は一致してなくてもOKです。

--例:Aさんが購入した商品を取得する
select * from 商品 where 商品コード in(select 商品コード from 商品購入履歴 where ユーザーID = AさんのID);
上の例では、()内の『select 商品コード from 商品購入履歴 where ユーザーID = AさんのID』の結果で、商品コードで「商品」テーブルを取得しています。

 

次に

次は並び順をしていしてデータを取得します。

【DB入門】SELECT文(ORDER BY)

一つ前の説明はこちらです。

【DB入門】SELECT文(列の指定、*)