Heim  >  Artikel  >  Datenbank  >  Oracle-Lernen mit Schlüsselwörtern (detaillierte Beispiele)

Oracle-Lernen mit Schlüsselwörtern (detaillierte Beispiele)

WBOY
WBOYnach vorne
2022-03-02 18:05:282794Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle, das hauptsächlich das relevante Wissen über das Schlüsselwort using einführt. Ich hoffe, dass es für alle hilfreich ist.

Oracle-Lernen mit Schlüsselwörtern (detaillierte Beispiele)

Empfohlenes Tutorial: „Oracle Tutorial

Bei der Arbeit habe ich eine SQL-Anweisung gesehen, die der folgenden ähnelt:

select 
    tb.usrnm, 
    tb.typ, 
    tb.oprorder 
    from tb
    inner join rb1
    using (stfaprid) 
    where tb1.jugsumid = #jugsumid# 
    and tb1.blnorg = #blnorg# 
    and isvld = '1' 
    order by tb.typ asc, tb.oprorder asc

Der SQL/92-Standard kann das Schlüsselwort using verwenden, um die Verbindungsabfrage zu vereinfachen, aber es ist nur in der Abfrage Das Schlüsselwort using kann zur Vereinfachung verwendet werden, wenn die folgenden zwei Bedingungen erfüllt sind.

  • 1. Die Abfrage muss ein Equijoin sein.
  • 2. Die Spalten im Equijoin müssen den gleichen Namen und Datentyp haben.

                                                                 raus – .

Wenn Sie das Schlüsselwort „using“ verwenden, um die Verbindung zu vereinfachen, müssen Sie die folgenden Punkte beachten:


1 Wenn Sie die Spalte „deptno“ in der Tabelle „emp“ und in der Tabelle „dept“ zum Verbinden verwenden, verwenden Sie weder die Klausel „using“ noch die Klausel „select“. kann den Tabellennamen oder den Tabellenalias angeben.
  • 2. Wenn in der Verbindungsabfrage dieselben mehreren Spalten in den beiden Tabellen verwendet werden, können Sie in der using-Klausel mehrere Spaltennamen angeben
  •                                                                                     Die obige Anweisung entspricht der folgenden Anweisung:
select emptno,ename,sal,deptno,dname from emp e inner join dept d using(deptno);

Bei mehreren Tabellen abgerufen werden, müssen Sie das Schlüsselwort „using“ mehrmals verwenden, um es in der folgenden Form anzugeben:

select... from table1 inner join table2 using(column1,column2)

Die obige Anweisung entspricht der folgenden Anweisung:

select... from table1 inner join table2
on table1.column1=table2.column2
and table1.column2=table2.column2;

Rethink using

In Oracle wird das Schlüsselwort „using“ in der Join-Verbindung verwendet , was relativ zur natürlichen Verknüpfung ist.

Wir haben bereits erwähnt, dass bei Verwendung von Natraul Join und wenn in den beiden Tabellen mehrere Felder mit demselben Namen und Datentyp vorhanden sind, diese Felder von Oracle auf eigene Initiative verbunden werden.

Aber tatsächlich ist es manchmal nicht nötig, dass wir uns auf diese Weise verbinden. Wir müssen nur ein oder zwei ihrer zahlreichen Felder mit demselben Namen und Datentyp auswählen. Zu diesem Zeitpunkt müssen wir das Schlüsselwort using verwenden. Unten finden Sie ein Beispiel.

Es gibt eine Tabelle namens „Sales“ und eine weitere Tabelle namens „Costs“. Beide Tabellen haben zwei Felder, nämlich pro_id und time_id. Auf die eigentliche Bedeutung der folgenden Zusammenhänge gehen wir vorerst nicht ein und betreiben lediglich grammatikalische Recherchen.

Wenn Sie eine natürliche Verbindung verwenden, werden die beiden Felder standardmäßig auf natürliche Weise miteinander verbunden. Die mit

select... from table1
inner join table2 using(column1)
inner join table3 using(column2);

und
select... from table1,table2,table3
where table1.column1=table2.column1
and table2.column2=table3.column2;

und
Select * from Sales natural join costs;

erzielten Ergebnisse sollten gleich sein.

Wenn wir natürliche Verknüpfungen verwenden, besteht keine Möglichkeit, die Verknüpfungsbedingungen zu steuern. Oracle verknüpft auf natürliche Weise zwei Felder mit demselben Datentyp und Namen.

Als nächstes verwenden wir das Schlüsselwort using.

Select * from Sales join costs on Sales.prod_id = costs.prod_id and sales.time_id = costs.time_id

Dies zwingt Oracle, die Felder zu verwenden, auf die beim Herstellen einer Verbindung hingewiesen wird, anstelle der standardmäßigen zwei in der natürlichen Join-Verbindung.
Bitte beachten Sie, dass die SQL-Anweisung hier keine Bedeutung hat. Es handelt sich lediglich um ein weit hergeholtes Beispiel, um die Verwendung von using zu veranschaulichen.
Was hier erklärt werden muss:

Wenn Sie das Schlüsselwort „using“ verwenden und das ausgewählte Ergebnislistenelement das durch das „using“-Schlüsselwort angegebene Schlüsselwort enthält, verwenden Sie das Schlüsselwort bitte nicht im ausgewählten Ergebnislistenelement. Geben Sie an, um welche Tabelle es sich handelt gehört zu. Wenn Sie beispielsweise using(prod_id) verwenden und das Feld prod_id in die Ergebnisliste aufnehmen möchten, schreiben Sie es bitte nicht als sales.prod_id oder cost.prod_id, sondern als prod_id und verwenden Sie kein Alias, verwenden Sie einfach zum Beispiel prod_id als „Produktnummer“.



Bei der Verwendung kann nur ein Spaltenname verwendet werden.

Das Schlüsselwort „natural join“ und das Schlüsselwort „using“ schließen sich gegenseitig aus, was bedeutet, dass sie nicht gleichzeitig erscheinen können.
  • Empfohlenes Tutorial: „
  • Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonOracle-Lernen mit Schlüsselwörtern (detaillierte Beispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen