Eine Unterabfrage ist eine Abfrage in einer anderen Abfrage. In Oracle können Sie Unterabfragen innerhalb Ihrer SQL-Anweisungen. Diese Unterabfragen sind in der Klausel "Where" , "From" -Klausel oder "Select "-Klausel aufgenommen . Oft werden Sie feststellen, Unterabfragen in der "Where" -Klausel. Eine Unterabfrage rationalisiert den mehrteiligen Fragen . Zum Beispiel , um herauszufinden, die Mitarbeiter in der Abteilung John , eine Unterabfrage Bestimmung der Abteilung, wo John Werke ist sehr nützlich. Obwohl es Vorteile hat , gibt es einige Nachteile mit Unterabfragen . Zusätzliche Schritte
Unterabfrage verursacht zusätzliche Schritte für einen Datenbankserver , während es für die Ergebnisse aus der Unterabfrage wartet . Diese Schritte , wie Sortierung , sollte von der Abfrage-Optimierer , um richtig funktionieren durchgeführt werden.
Erhöhte Komplexität
Die Unterabfragen wird die Komplexität der SQL-Anweisungen zu erhöhen. SQL wird als eine komplexe Sprache angesehen, da sie ihre eigenen einzigartigen Grammatik und Semantik hat . SQL leiht COBOL - Stil keywording Verfahren, das wieder zu nutzen weniger Worte und Regeln führt . Die Multi-Tier- Struktur in Unterabfrage Ergebnisse ist eine erhöhte Komplexität der SQL-Abfrage.
Begrenzung der Unterabfrage
Unterabfrage , kann man nicht ändern, möglicherweise ein Tabelle und wählen Sie aus der gleichen Tabelle innerhalb der gleichen Aussagen . Die Unterabfrage dauert länger als ein "Join "-Anweisung , weil, wie die Datenbank -Optimierer führt sie auszuführen. Ein "Beitreten" -Anweisung gibt zwei oder mehr Tabellen über einen entsprechenden Spalte und die meisten Unterabfragen könnte mit "Join" Aussagen realisiert werden.
Cross-Platform Ausgabe
Unterabfrage doesn 't Unterstützung Cross-Plattform- Fähigkeit . Dies verringert die inter- Kommunikation zwischen verschiedenen Plattformen , die oft in Web Programmierung erforderlich . Dieses Problem wird durch die Unstimmigkeiten in der Programmierung von Plattform zu Plattform, die Unterabfrage sehr unvereinbar machen intensiviert.