Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल डीबी ए, बी, सी से बनाम जॉइन करता है

नहीं। ओरेकल, किसी भी अन्य उचित संबंधपरक डेटाबेस की तरह, अधिक कुशल होता है जब आप सेट-आधारित संचालन करते हैं और जब आप प्रक्रियात्मक रूप से अनुकरण करने वाले जॉइन (जैसे, नेस्टेड कर्सर लूप) के बजाय जुड़ते हैं।

हालांकि, मेरा अनुमान है कि आप वास्तव में उस कोड के बारे में बात नहीं कर रहे हैं जिसमें शामिल होने की कमी है। मेरा अनुमान है कि आप उस कोड के बारे में बात कर रहे हैं जो आपके आदी होने से अलग सिंटैक्स का उपयोग करता है। दोनों

SELECT a.*
  FROM a
       JOIN b ON (a.a_id = b.a_id)
       JOIN c ON (b.b_id = c.b_id)

और

SELECT a.*
  FROM a,
       b,
       c
 WHERE a.a_id = b.a_id
   AND b.b_id = c.b_id

वे क्वेरी हैं जो a . से जुड़ती हैं करने के लिए b करने के लिए c . दो प्रश्न बिल्कुल समान हैं-- Oracle पार्सर वास्तव में पहली क्वेरी को दूसरे में आंतरिक रूप से फिर से लिखेगा। फर्क सिर्फ इतना है कि पहली क्वेरी अपने जॉइन को निर्दिष्ट करने के लिए नए SQL 99 सिंटैक्स का उपयोग करती है।

ऐतिहासिक रूप से, ओरेकल को एसक्यूएल 99 सिंटैक्स को अपनाने में अपेक्षाकृत देर हो चुकी थी, एसक्यूएल 99 सिंटैक्स उपलब्ध होने से पहले बहुत अधिक मात्रा में कोड लिखा गया था, और कुछ ओरेकल लोग आदत से पुराने स्टाइल सिंटैक्स को पसंद करते हैं यदि कुछ और नहीं। उन सभी कारणों से, पुराने जॉइन सिंटैक्स का उपयोग करके विशेष रूप से ओरेकल आधारित परियोजनाओं को ढूंढना अपेक्षाकृत आम है। इसमें स्वाभाविक रूप से कुछ भी गलत नहीं है (हालांकि मैं व्यक्तिगत रूप से नए सिंटैक्स को पसंद करता हूं)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक ही टेबल पर ट्रिगर डालने के बाद अपडेट करें

  2. Oracle डिक्शनरी व्यू का उपयोग करके PL/SQL पैकेज-स्तरीय प्रकारों की खोज करें

  3. JDBC डेटा स्रोत स्तर पर Oracle से लौटाई गई पंक्तियों की संख्या को कैसे सीमित करें?

  4. प्रति समूह एक कॉलम के अधिकतम मान के साथ वापसी पंक्ति

  5. Oracle में ASCIISTR () फ़ंक्शन