EXISTSとは
あるテーブルに存在するレコードを検索するとき、「IN」を利用していたが、ORACLEでは「IN」では利用に制限があるようだ。「EXISTS」使うのが一般的らしい。利用方法を調べてみようと思う。「EXISTS」和訳すると存在するという意味もあるようだ。
準備するデータ
テーブル:zip_code:郵政のページからダウンロード

テーブル:zip_code_copy:上記テーブルから6000000:だけ格納。

zip_code_copyに存在するレコードを抽出する
SQL
SELECT * FROM zip_code AS A where exists
(SELECT 1 FROM zip_code_copy AS B WHERE A.zip_code_7 =B.zip_code_7 )

zip_code_copyに存在するレコードだけ抽出される。
zip_code_copyに存在しないレコードを抽出する
SQL
SELECT * FROM zip_code AS A where not exists
(SELECT 1 FROM zip_code_copy AS B WHERE A.zip_code_7 =B.zip_code_7 )

zip_code_copyに存在しないレコードだけ抽出される。郵便番号:0600000が抽出対象から外れている。