Heim  >  Artikel  >  php教程  >  Untergeordnete Abfrage für Oracle Basic Learning

Untergeordnete Abfrage für Oracle Basic Learning

高洛峰
高洛峰Original
2017-01-06 10:37:121345Durchsuche

Bitte beachten Sie bei der Verwendung von Unterabfragen zunächst, dass Unterabfragen auf mehreren Ebenen verschachtelt sein können und in Klammern () eingeschlossen werden müssen.

Grundlegende Einführung

1, wobei: Unterabfrage im Allgemeinen eine einzelne Zeile, eine einzelne Spalte, eine einzelne Zeile, mehrere Spalten, mehrere Zeilen und eine einzelne Spalte zurückgibt

2, mit : Unterabfrage gibt eine einzelne Zeile und einzelne Spalte zurück, während Gibt an, dass statistische Funktionen verwendet werden sollen

3, von: Unterabfrage gibt mehrzeilige und mehrspaltige Daten zurück (Tabellenstruktur); 🎜>4, wählen Sie: Gibt eine einzelne Zeile und eine einzelne Spalte zurück (im Allgemeinen nicht verwendet);

Beispieldetails

wobei (Datenzeilen filtern):

a: Mitarbeiter abfragen Informationen, die unter dem Durchschnittsgehalt des Unternehmens liegen.

Die obige Abfrage gibt eine einzelne Zeile und eine einzelne Spalte zurück, die als Filterbedingung der where-Klausel verwendet werden können
select * from emp where sal<(select avg(sal) from emp);

b: Fragen Sie die Informationen des ersten Mitarbeiters ab, der von eingestellt wurde das Unternehmen.

C: Informationen zu Mitarbeitern abfragen, die den gleichen Job wie Scott haben und das gleiche Gehalt haben.
select * from emp where hiredate= (select MIN(hiredate) from emp);

in: bezieht sich auf denselben Inhalt, der von der Unterabfrage zurückgegeben wird.
select* from emp
 
where (job,sal) =( select job,sal
 
from emp
 
where ename =&#39;scott&#39;) and ename <>&#39;scott&#39;;

nicht in:
select * from emp where sal in (select sal from emp where job = &#39;manager&#39;);

Die Unterabfrage darf nicht null sein.
select* from emp where sal not in(select sal from emp where job=&#39;manager&#39;);

beliebig:

ist größer als der von der Unterabfrage zurückgegebene Maximalwert
select* from emp where sal = any(select sal from emp where job=&#39;manager&#39;);
 
select* from emp where sal > any(select sal from emp where job=&#39;manager&#39;);

ist kleiner als der von der Unterabfrage zurückgegebene Maximalwert
select* from emp where sal < any(select sal from emp where job=&#39;manager&#39;);

alle:

alle: größer als der von der Unterabfrage zurückgegebene Maximalwert


Die Wahrscheinlichkeit, dass die Unterabfrage sehr hoch ist;


mit:

Fragen Sie die Berufsbezeichnung, die Anzahl der Positionen und das Durchschnittsgehalt ab, das über dem Durchschnittsgehalt des Unternehmens liegt.

Auswählen (im Allgemeinen nicht verwendet):
select job,count(empno),avg(sal) from emp group by job 
having avg(sal)>(select avg(sal) from emp);

Fragen Sie die Nummer, den Namen, die Position und den Abteilungsnamen jedes Mitarbeiters ab.

(1+n) Abfragen;
select e.empno,e.ename,e.job,
 
(select d.dname from dept d whered.deptno=e.deptno)from emp e;

von (wichtiger Punkt):

Fragen Sie den Namen, den Standort und die Anzahl der Personen in jeder Abteilung ab.

(Mehrtabellenabfrage)
select d.dname,d.loc,count(e.empno)
 
from emp e,dept d
 
where e.deptno(+)=d.deptno
 
group by d.dname,d.loc;

Mehrtabellenabfragen und Unterabfragen können Statistiken erzielen. Welche Methode ist also besser?
分步1: select d.deptno,d.dname,d.locfrom dept d;
 
 分步2:select deptno,count(empno)from emp group by deptno;
 
 
 
正确的查询:
 
select d.deptno,d.dname,d.loc,temp.count
from dept d,(select deptno,count(empno) count from emp
group by deptno) temp
where d.deptno=temp.deptno(+);

Antwort: In der tatsächlichen Arbeit besteht der Hauptzweck von Unterabfragen darin, das Leistungsproblem von Abfragen mit mehreren Tabellen zu lösen, weshalb sie in der Entwicklung am häufigsten verwendet wird. Die größte Aufgabe besteht darin, das Problem zu lösen, dass kartesische Produkte die Leistung beeinträchtigen, die durch Abfragen mit mehreren Tabellen verursacht werden.

Komplexe Abfrage = einfache Abfrage + begrenzte Abfrage + Abfrage mit mehreren Tabellen + statistische Gruppenabfrage + Unterabfrage;

Zusammenfassung

Das Obige dreht sich hoffentlich um die Oracle-Unterabfrage Der Inhalt dieses Artikels kann für alle beim Erlernen oder Verwenden von Oracle hilfreich sein. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen.

Weitere Artikel zum Oracle-Grundlernen finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn