WHERE節などで複数の条件を結合したり、条件を否定したりするには 以下の論理演算子を使います (参考:PostgreSQL 9.5.4文書 - 9.1. 論理演算子)。
演算子 | 意味 |
---|---|
AND | 論理積(両方真なら真) |
OR | 論理積(どちらか一方でも真なら真) |
NOT | 否定(偽なら真) |
書式
【書式1】2つの条件が両方とも真であるデータを抽出 SELECT カラム名 FROM テーブル名 WHERE カラム名1=値1 AND カラム名2=値2 【書式2】2つの条件がどちらか一方でも真であるデータを抽出 SELECT カラム名 FROM テーブル名 WHERE カラム名1=値1 OR カラム名2=値2 【書式3】条件に一致しないデータを抽出 SELECT カラム名 FROM テーブル名 WHERE NOT カラム名1=値1
例
Order | Family | Genus | Species | Species_ja |
---|---|---|---|---|
Primate | Hominidae | Home | sapiens | ヒト |
Primate | Cercopithecidae | Macaca | fuscata | ニホンザル |
Primate | Hominidae | Gorilla | gorilla | ニシゴリラ |
Cetartiodactyla | Bovidae | Bos | taurus | ウシ |
Cetartiodactyla | Suidae | Sus | scrofa | イノシシ |
Cetartiodactyla | Physeteridae | Physeter | macrocephalus | マッコウクジラ |
Perissodactyla | Equidae | Equus | caballus | ウマ |
Perissodactyla | Rhinocerotidae | Ceratotherium | simum | シロサイ |
Rodentia | Muridae | Mus | musculus | ハツカネズミ |
Rodentia | Muridae | Rattus | norvegicus | ドブネズミ |
【例1】MammaliaテーブルからOrderの値が「Primate」で、かつFamilyの値が「Hominidae」であるデータを抽出し、Genus、Species、Species_jaの値を出力する。
SELECT Genus,Species,Species_ja FROM Mammalia WHERE Order='Primate' AND Family='Hominidae' ↓ Genus | Species | Species_ja -------------------------------- Homo | sapiens | ヒト Gorilla | gorilla | ニシゴリラ
【例2】MammaliaテーブルからOrderの値が「Cetartiodactyla」、または「Perissodactyla」であるデータを抽出し、Genus、Species、Species_jaの値を出力する。
SELECT Genus,Species,Species_ja FROM Mammalia WHERE Order='Cetartiodactyla' OR Order='Perissodactyla' ↓ Genus | Species | Species_ja ----------------------------------------------- Bos | taurus | ウシ Sus | scrofa | イノシシ Physeter | macrocephalus | マッコウクジラ Equus | caballus | ウマ Ceratotherium | simum | シロサイ
【例3】MammaliaテーブルからOrderの値が「Cetartiodactyla」で、かつFamilyの値が「Physeteridae」ではないデータを抽出し、Genus、Species、Species_jaの値を出力する。
SELECT Genus,Species,Species_ja FROM Mammalia WHERE Order='Cetartiodactyla' AND NOT Family='Physeteridae' ↓ Genus | Species | Species_ja ------------------------------ Bos | taurus | ウシ Sus | scrofa | イノシシ