【初学者必見!】SQLの基本、実務使用例を徹底解説!AND編

サムネイル SQL

※この記事にはプロモーションが含まれています。

ふりかえり

筆者
筆者

本記事は、SQLの基本、実務使用例編になります。

SQLの基礎に関しましては、

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

本編に入ります!

ANDの基本構文

筆者
筆者

まずは、基本構文から見ていきましょう!

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

A子
A子

select,from,where,andだね

筆者
筆者

はい、そうです!

AND「2つ以上の条件をすべて満たすデータを取得する」 ときに使います。

where の後に 条件 を書きます

and複数の条件をつなげます

すべての条件が 「真(TRUE)」 の場合のみ、データが取得されます。

実務レベルの使用例を見ていこう!

筆者
筆者

実際に、SQLを使用してデータを確認していきましょう。

SQLに関しては以下を使用して解説していきます。

create table文、select文、insert文、update文、delete文、

drop table文、につきましては、過去にアップロードした

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

目次の、「ふりかえり」のところにそれぞれの記事のリンクが

貼ってあるよ!

または、サイドバーのカテゴリーにSQLがあるから、そちらからでも

参照できます!

[事前準備]今回、実行するSQLの一覧

-- 申請管理情報テーブルの作成
create table 申請管理情報 (
    STAFF_NO varchar2(10) not null,   -- 職員番号 (Staff Number) 
    APPLI_NO varchar2(10) not null,   -- 申請番号 (Application Number) 
    APPLI_DATE date,                  -- 申請年月日 (Application Date) 
    DEPARTMENT varchar2(10),          -- 部署名(Department)
    constraint PK_申請管理情報 primary key (STAFF_NO, APPLI_NO)

);
create table 申請内容の詳細 (
    職員番号          varchar2(10) not null,  -- 親テーブルの STAFF_NO に対応
    申請番号          varchar2(10) not null,  -- 親テーブルの APPLI_NO に対応
    申請内容の詳細    varchar2(100),          -- 申請の詳細内容を格納するカラム
    constraint PK_申請内容の詳細 primary key (職員番号, 申請番号),
    constraint FK_申請内容の詳細 foreign key (職員番号, 申請番号)
        references 申請管理情報 (STAFF_NO, APPLI_NO)
);

insert into 申請管理情報 (STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT) 
values ('1001', 'A001', TO_DATE('2024-02-25', 'YYYY-MM-DD'),'営業');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT) 
values ('1001', 'A002', TO_DATE('2024-02-26', 'YYYY-MM-DD'),'営業');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT) 
values ('1002', 'A003', TO_DATE('2024-02-27', 'YYYY-MM-DD'),'開発');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT) 
values ('1002', 'a003', TO_DATE('2024-01-27', 'YYYY-MM-DD'),'開発');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT) 
values ('1003', 'A004', TO_DATE('2024-02-28', 'YYYY-MM-DD'),'営業');

insert into 申請内容の詳細 (職員番号, 申請番号, 申請内容の詳細)
values ('1001', 'A001', 'レギュラーとハイオク間違えたので、もう一回入れに行きたいです。');
insert into 申請内容の詳細 (職員番号, 申請番号, 申請内容の詳細)
values ('1001', 'A002', 'ガソリン高いから、もっと補助してほしい');
insert into 申請内容の詳細 (職員番号, 申請番号, 申請内容の詳細)
values ('1002', 'A003', 'ハイオク満タンにしちゃった');
insert into 申請内容の詳細 (職員番号, 申請番号, 申請内容の詳細)
values ('1002', 'a003', 'レギュラー満タンにしちゃった');

「営業部門の申請情報」を取得する

select STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT
from 申請管理情報
where DEPARTMENT = '営業';

この SQL を実行すると、営業部門の申請情報だけが取得できます。

AND を使って「営業部門で 2024-02-25 以降の申請情報」を取得する

select STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT
from 申請管理情報
where DEPARTMENT = '営業'
  and APPLI_DATE >= TO_DATE('2024-02-25', 'YYYY-MM-DD');

この SQL では、以下の条件を満たすデータのみ取得します。

  • 営業部門のデータ (DEPARTMENT = '営業')
  • 申請日が 2024-02-25 以降 (APPLI_DATE >= '2024-02-25')

「営業部門の職員で、かつ申請番号が A002 のデータ」を取得する

select STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT
from 申請管理情報
where DEPARTMENT = '営業'
  and APPLI_NO = 'A002';

特定の申請番号 (APPLI_NO = 'A002') のみを取得したい場合、さらに AND を追加します。

「営業部門で、かつ 申請番号が ‘A002’ または ‘A004’ のデータ」を取得する

select STAFF_NO, APPLI_NO, APPLI_DATE, DEPARTMENT
from 申請管理情報
where DEPARTMENT = '営業'
  and (APPLI_NO = 'A002' or APPLI_NO = 'A004');

この SQL では、以下の条件を満たすデータを取得します。

  • 営業部門 (DEPARTMENT = '営業')
  • 申請番号が ‘A002’ または ‘A004’ のいずれか (APPLI_NO = 'A002' or APPLI_NO = 'A004')

「申請内容の詳細を確認する(営業部門 & 2024-02-25 以降)」

select m.STAFF_NO, m.APPLI_NO, m.APPLI_DATE, m.DEPARTMENT, d.申請内容の詳細
from 申請管理情報 m
join 申請内容の詳細 d
  on m.STAFF_NO = d.職員番号 and m.APPLI_NO = d.申請番号
where m.DEPARTMENT = '営業'
  and m.APPLI_DATE >= TO_DATE('2024-02-25', 'YYYY-MM-DD');

この SQL のポイント:

  • join を使って 申請管理情報 (申請管理情報)申請内容の詳細 (申請内容の詳細) を結びつける。
  • AND を使って、営業部門 (DEPARTMENT = '営業') かつ 申請日が 2024-02-25 以降 (APPLI_DATE >= '2024-02-25') の条件を指定。

まとめ

筆者
筆者

ANDを使うと、複数の条件を満たすデータのみ取得 できます。

SQL の AND は、データを絞り込むために非常に重要な演算子 なので、ぜひ色々なパターンで試してみてください!

次回もお楽しみに!

この記事を書いた人
たくたく

文系出身・3年目のWeb系エンジニアです。
C#とSQLを得意としています。
同棲生活は2年目に入り、日々仲良く楽しく暮らしています。
プライベートではバイクや車で旅行に行くことが趣味です。
サンリオ好きで、中でもシナモン推しです。
お酒好きとして毎週の晩酌をリラックスタイムにしています。

たくたくをフォローする
SQLエンジニア
シェアする

コメント

タイトルとURLをコピーしました