マルチテーブル操作のSQL言語と関係演算子(V)

関係代数

SQL言語:と運用UNION、交差点操作INTERSECT、EXCEPT動作不良。

基本的な構文:サブクエリ{連合[ALL] |交差[ALL] |除き[ALL]サブクエリ}

通常は自動的に重複したタプルのケースを削除:ALLなし。重複したタプルを保持するには、ALLを持参する必要があります。

サブクエリのタプルがm回発生し、グループを照会するサブ要素2はn回発生すると仮定し、タプル。

1ユニオンALLサブクエリサブクエリ2、M + N回発生

1交差するすべてのサブクエリサブクエリ2は、分(M、N)回現れます

ALLサブクエリサブクエリ2を除き1、MAX(0、m個-n)が表示されます倍

そして、操作

#学校の学生番号002または学習クラス003を通じて、クラスの生徒は数学ぶ
どこSCから=「002を選択STUDENT_IDがcouse_id 
UNION 
STUDENT_IDはどこSCから=「003 couse_id選択」; 
上記#ステートメントは、UNIONなく採用することができるがする方法 couse_id = 'SCからSTUDENT_IDを選択 002' OR C#= '003';

交差点の操作

両方を求めている#002は教訓と学生がコース番号003、学ぶ学ん
選択STUDENT_IDはSCから=「002 Course_IDに
INTERSECT 
選択STUDENT_ID Course_IDにはSC =「003 ;」
上記の#文は、INTERSECTなく採用することができるが道 を選択しSTUDENT_IDから SC どこにC#=「002」と STUDENT_ID IN(STUDENT_IDがCourse_IDに選択する場所SCから=「003」);

交差演算子のSQLを発現する能力を高め払っていない、何の交差、SQLも同じクエリのニーズを表現する他の方法を使用することはできません。いくつかを表現するだけで簡単にと交差しますが、SQL言語の独自性を増加させません

差分演算

#は、すべての学生が選択科目ていることを前提とし、002コースの学生数学んだことがないシーク
から選択DISTINCT STUDENT_ID   SC 
EXCEPT 
選択がCourse_IDにしSTUDENT_IDをどこSC =「002 

#実行するための方法をEXCEPTないかもしれない文を上記
から選択DISTINCT STUDENT_ID  SCをSC1は ないが、EXISTS  (SELECT * Course_IDにどこSCから= '002'とCourse_IDに= SC1.student_id);

オペレーターのSQLの間に違いはありません除き、SQLも同じクエリのニーズを表現する他の方法を使用することができる以外に、表現する能力を高めます。簡単にちょうどSQL言語の独自性を高めるいくつかを表現する必要がありますが、ない場合を除き

NULL値である検出[ない] NULL 

生徒の名前の年齢を見つけるために#が空である
セレクト名の学生時代からNULLである場合は
#注:条件上記の例では、どこセージ= nullのように記述することはできません。null値が業務を行っていません

概要

また、それはありますか?[未]?ヌル以外に、NULL値は、任意の検索条件を満たしていません

算術演算はヌルに関与する場合には、演算式はnullであります

nullは、比較動作に関与した場合、結果はfalseを考慮することができます。SQL-92では不明とみなすことができます

nullが収集操作に関与した場合、COUNT(*)に加えて、集約関数は、ヌル以外の無視されます

外部接続の接続

列名を選択し、[[カラム名] ...]

表名1 [NATURAL] [INNERから| {LEFT | RIGHT | FULL} [OUTER]

表2 {ON接続状態をJOIN |使用(COLNAME {COLNAME ...})}

[ザ・どこの検索条件] ...。

外部結合の完全な、外部ジョイン右、外部結合左接続型内部結合(Aから選択された4つの)

(から選ば3)接続状態ナチュラル、ONを使用して、<結合条件>(のCol1、Col2に、 ...、コルン)

自然な接続を使用してください

  結果は一度だけ、2人の共通性に等しい接続関係、および一般的性質の関係タプル値で表示され

上で使用されている接続<結合条件>

  結果値の2つのタプルの接続関係は、接続条件の関係を満たし、かつ一般的なプロパティが2回表示します

(のCol1、Col2に、...、コルン)を使用して接続して使用

  (のCol1、Col2に、...、コルン)、共通属性二つの接続関係、タプル(のCol1、Col2に、...、コルン)値に等しく、及び(のCol1、Col2にのサブセットであります.. 。、コルンは)一度だけ表示されます

インナー参加します 

番号で注文した教室の先生(も表に記載されている教室の先生をする必要はありません)を探しているすべての教師の#
選択Teacher.id、Teacher.nameを、Course.nameから  教師   
インナー参加コース、ON  
Teacher.id = Course.teacher_id注文Teacher.idのASCによります。

アウター・ジョイン

すべての担任教師(担任教師も表に記載されている必要はありません)の#探して
選択Teacher.id、Teacher.name、COURSE_NAMEから  教師   
左外側コース、ON参加 
注文でASC Teacher.id = Course.teacher_id Teacher.idを。

 

おすすめ

転載: www.cnblogs.com/ic710/p/11265700.html