SORU
28 Temmuz 2009, Salı


Oracle arasında'in fark artı ( ) gösterim ve ansı gösterim KATILMAK mı?

Oracle plus gösterimde kullanmak arasındaki fark ( ) ansı standart join gösterim nedir?

Performans olarak bir fark var mı?

Artı gösterim önerilmiyor?

CEVAP
28 Temmuz 2009, Salı


AFAIK, ( ) gösterim Oracle birleşimler için ANSI Standardı yerine koymak önce giriş yaptı çünkü geriye doğru uyumluluk için sadece mevcut. Oracle için özel ve eşdeğer standartlarla uyumlu sürümü mevcut olduğunda yeni kodu kullanarak kaçınmanız gerekir.

Düzenleme:*İkisi arasında farklılıklar var gibi görünüyor, ve ( ) gösterim birleşim sözdizimi olan ANSI olmayan kısıtlamalar vardır. Oracle kendilerini ( ) gösterimde değil kullanmanızı öneririz. Tam açıklama Oracle® Database SQL Language Reference 11g Release 1 (11.1) burada:*

Oracle FROM fıkra OUTER JOIN sözdizimi yerine Oracle katılın operatörü kullanmanızı önerir. Dış ( ) FROM maddesi için geçerli olan şu kural ve kısıtlamalar, tabidir Oracle katılın operatörü OUTER JOIN kullanımı: kullanan sorguları katıl

  • Ayrıca FROM sözdizimi join yan tümcesi içeren bir sorgu bloğu ( ) operatör belirtemezsiniz.
  • ( ) operatör görünür sadece WHERE maddesi, bağlamında sol korelasyon (zaman belirtme TABLE fıkra) FROM yan ve uygulanabilir tek bir sütun bir tablo veya Görünüm.
  • Eğer A ve B birden fazla koşul katılın tarafından katıldı, bu koşulları ( ) operatörünü kullanmanız gerekir. Eğer değilse, o zaman Oracle Veritabanı satırları basit bir sonucu, ama bir uyarı olmadan veya bir dış sonuç yok tutmanızı tavsiye hata katılın yalnızca döndürecektir.

  • ( ) santral dış sorgu bir tabloda belirtin ve bir iç sorguda diğer tablo ise bir dış birleşim üretmez.

  • Olamaz kendini geçerli katılır, ancak kendisi için dış birleşim tablosu ( ) operatörünü kullanın.

Örneğin, aşağıdaki ifade geçerli değildir:

SELECT employee_id, manager_id
FROM employees
WHERE employees.manager_id( ) = employees.employee_id;

Ancak, aşağıdaki öz geçerlidir katılın:

SELECT e1.employee_id, e1.manager_id, e2.employee_id
FROM employees e1, employees e2
WHERE e1.manager_id( ) = e2.employee_id;
  • ( ) operatör sadece keyfi bir ifade, bir sütun için uygulanabilir. Ancak, rasgele bir ifade, bir veya daha fazla sütun ( ) operatörü ile işaretlenmiş içerebilir.

  • * *25 bir durum ( ) operatör başka bir durum OR mantıksal işleç kullanarak birleştirilemez içeren.

  • WHERE koşul olamaz IN karşılaştırma sütun bir ifade ile ( ) operatörü ile işaretlenmiş karşılaştırmak için bu durumu kullanın.

Eğer WHERE tümcesi içeren bir durum karşılaştıran bir tablo sütun B ile bir sabit, daha sonra ( ) operatör uygulanmalıdır sütun Oracle döner satırları, Bir tablo için hangi vardır oluşturulan boşluk için bu sütun. Aksi Oracle basit sadece birleştirme sonuçlarını verir.

Tablo ikiden fazla çift katıldı dış gerçekleştiren bir sorgu, tek bir tablo sadece bir tablo için boş tarafından oluşturulan bir tablo olabilir. Bu nedenle, uygulayamazsınız ( ) operatör için sütunları B katılmaya durum için A ve B ve birleştirme durumu için B ve C. Başvurmak için SELECT sözdizimi için bir dış birleşim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • gadgetgal38

    gadgetgal38

    9 HAZİRAN 2009
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006