関係代数
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を。