Table of Contents
エンジニアの方にとってみれば、SQL は使えてあたりまえかもしれませんが、営業や管理部の人からすれば魅惑の魔法といわれることもあります。 しかし非エンジニアの方でも SQL が使えた方がいいですし、 そのほうがエンジニアの作業も楽になります。
今回は、 検索条件の否定と IN を使った検索条件について説明します。 データを見るのに必須ではないので、 急ぐ方はこの記事をとばしていただいても OK です。
環境
- PostgreSQL
- pgAdmin 3
- Windows 10
PostgreSQL を使います。 データベースに Oracle Database, MySQL を使用している場合でも同じです。
検索条件の否定
次のようなusersテーブルを考えます。
| id | |
|---|---|
| 1 | sample_1@mail.com |
| 2 | sample_2@mail.com |
| 3 | sample_3@mail.com |
| 4 | sample_4@mail.com |
| 5 | sample_5@example.com |
| 6 | sample_6@example.com |
| 7 | sample_7@example.com |
| 8 | sample_8@example.com |
| 9 | sample_9@example.com |
| 10 | sample_10@example.com |
id が 1以外のデータを検索します。 見るための データベース・SQL 1つのテーブルからデータを取り出す で書いたように != を使うこともできますが、 ここでは NOT を使って書いてみます。
|
1 2 3 4 |
SELECT id, email FROM users WHERE NOT id = 1 |
= 以外 の条件でも、 NOT をつけると否定の条件にできます。
|
1 2 3 4 |
SELECT id, email FROM users WHERE NOT email LIKE '%mail.com' |
どれかひとつに該当する場合の検索条件
id が 1, 3, 5 の中にあるデータを検索する場合を考えます。 id = 1, id = 3, id = 5 を OR でつなぐこともできますが、 IN を使って書くこともできます。
|
1 2 3 4 |
SELECT id, name FROM users WHERE id IN (1, 3, 5) |
補足
NOT が関係する条件には NOT IN, NOT LIKE などもあります。 しかし NOT xxx LIKE 'ZZZZ' のように書くのと基本的に変わらないため、 ここでは説明しませんでした。
見るためのデータベース・SQL 複数のテーブルからデータを取得する に続きます。