ホームページ >データベース >Oracle >オラクルで存在しないの使い方は何ですか

オラクルで存在しないの使い方は何ですか

WBOY
WBOYオリジナル
2022-03-03 10:46:2726748ブラウズ

Oracle では、句が結果セットを返すかどうかを判断するために、「存在しない」が使用されます。句が結果セットを返す場合、それは false です。句が結果セットを返さない場合、それは true です. 構文は「select * from daul where not存在 (句クエリ条件)」です。

オラクルで存在しないの使い方は何ですか

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

oracle での not contains の使用法は何ですか。

exists: 結果セットを返すかどうかに重点が置かれており、何が返されるかを知る必要はありません。例:

  select name from student where sex = 'm' and mark exists(select 1 from grade where ...)

によって導かれる子が存在する限り 文に結果セットが返された場合、exists 条件が確立されます。返されるフィールドは常に 1 であることに注意してください。「select 2 from」に変更された場合は、 Grade where..." の場合、返されるフィールドは 2 です。この数値には意味がありません。したがって、exists 句は何が返されるかではなく、返される結果セットがあるかどうかを考慮します。

exists と in の最大の違いは、in 句が 1 つのフィールドしか返せないことです (例:

  select name from student where sex = 'm' and mark in (select 1,2,3 from grade where ...)

、in 句は 3 つのフィールドを返しますが、これは正しくありません)では、exists 句は許可されますが、返されるフィールドは 1 つだけです。1、2、および 3 の任意の 2 つのフィールドを削除するだけです。

そして、notowned と not in は、それぞれ、exists と in の反対です。

  • 存在します (SQL は結果セットを true として返します)

  • 存在しません (SQL は結果セットを true として返しません)

存在しない場合の処理​​を以下に詳しく説明します。

次のように:

テーブル A

ID 名

1 A1

2 A2

3 A3

テーブル B

ID AID 名

1 1 B1

##2 2 B2

3 2 B3

テーブル A とテーブル B には 1 対多の関係があります A.ID => B.AID

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID)

実行結果は

1 A1

2 A2

理由は次のように分析できます

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=1)
--->SELECT * FROM B WHERE B.AID=1有值返回真所以有数据
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=2)
--->SELECT * FROM B WHERE B.AID=2有值返回真所以有数据
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=3)
--->SELECT * FROM B WHERE B.AID=3无值返回真所以没有数据

NOT EXISTS は逆です

SELECT ID,NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID=B.AID)

実行結果は

#3 A3

EXISTS = IN となり、意味は同じですが構文が若干異なります。IN を使用した方が効率が悪いような気がします。インデックスが実行されない理由

SELECT ID,NAME FROM A  WHERE ID IN (SELECT AID FROM B)

NOT EXISTS = NOT IN、意味は同じですが、構文に違いがあります。少しの違い

SELECT ID,NAME FROM A WHERE ID NOT IN (SELECT AID FROM B)

時々、このような状況に遭遇することがあります。ここで、特定の列を重複なく選択し、特定の列を選択条件として使用する必要があります。そうすれば、他の列は通常どおり出力されます。

推奨チュートリアル: 「

Oracle Video チュートリアル >>##」 #

以上がオラクルで存在しないの使い方は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。