Heim > Datenbank > SQL > Was sind die häufigsten SQL-Abfrageanweisungen?

Was sind die häufigsten SQL-Abfrageanweisungen?

coldplay.xixi
Freigeben: 2020-10-26 15:31:41
Original
10117 Leute haben es durchsucht

Zu den allgemeinen SQL-Abfrageanweisungen gehören: 1. Tabellenstruktur anzeigen [SQL>DESC emp;] 2. Alle Spalten abfragen [SQL>SELECT empmo,]; , Fragen Sie die angegebene Zeile ab [SQL>SELECT * FROM].

Was sind die häufigsten SQL-Abfrageanweisungen?

Übliche SQL-Abfrageanweisungen sind:

1. Einfache Abfrageanweisung

1. Sehen Sie sich die Tabellenstruktur an

SQL>DESC emp;
Nach dem Login kopieren

2. Fragen Sie alle Spalten ab

SQL>SELECT * FROM emp;
Nach dem Login kopieren

3. Anfrage Geben Sie die Spalte

SQL>SELECT empmo, ename, mgr FROM emp;
Nach dem Login kopieren

SQL>SELECT DISTINCT mgr FROM emp an. Nur Elemente mit unterschiedlichen Ergebnissen anzeigen.

SQL>SELECT * FROM emp WHERE job='CLERK';
Nach dem Login kopieren
Das heißt, wenn es einen Wert in „comm“ gibt, dann ist nvl(comm,1)=comm; wenn es keinen Wert in „comm“ gibt, dann ist nvl(comm,1)=0. SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal ist ein Alias ​​und kann nach Alias ​​sortiert werden)

SQL>SELECT ename, sal*13+nvl(comm,0)  FROM emp;
Nach dem Login kopieren

6. Verwenden Sie den Like-Operator (%, _)

% Stellt ein oder mehrere Zeichen dar, _ stellt ein Zeichen dar, [charlist] stellt ein beliebiges einzelnes Zeichen in der Zeichenspalte dar, [^charlist] oder [!charlist] stellt ein beliebiges einzelnes Zeichen dar, das nicht in der Zeichenspalte enthalten ist.

SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
Nach dem Login kopieren

7. Verwenden Sie In in der Where-Bedingung

SQL>SELECT * FROM emp WHERE ename like 'S__T%';
Nach dem Login kopieren

8. Fragen Sie die Anweisung ab, bei der der Feldinhalt leer/nicht leer ist

SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
Nach dem Login kopieren

9. Konvertieren Sie die Abfrageergebnisse. Sortieren Sie nach dem Wert des Feldes

SQL>SELECT CASE a WHEN „original_a“ THEN „New name Aa“ WHEN „original_b“ THEN „New name Bb“ END AS XXX; Wählen Sie das a-Feld in der Tabelle aus und nennen Sie es XXX a ist original_a, der Inhalt wird als „Neu benannt Aa“ angezeigt.

12. Datumsdaten formatieren

SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
Nach dem Login kopieren

2. Komplexe Abfrage (maximal, minimal, durchschnittlich, Summe, Anzahl)

SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
Nach dem Login kopieren

Zusammenfassung der Datengruppierung:

a. Gruppierungsfunktionen können nur in der Auswahlliste angezeigt werden, mit der Klausel „Order by“ (kann nicht in „Where“ angezeigt werden)

b. Wenn die SELECT-Anweisung gleichzeitig Group By, Have, Order By enthält, dann lautet ihre Reihenfolge Group By, Have, Order By.

c. Wenn die Auswahlspalte Spalten, Ausdrücke und Gruppierungsfunktionen enthält, müssen diese Spalten und Ausdrücke in der Group-by-Klausel erscheinen, andernfalls tritt ein Fehler auf. Das heißt: Der Spaltenname in der SELECT-Klausel muss eine Gruppierungsspalte oder eine Spaltenfunktion sein

Die Verwendung von „group by“ ist keine Voraussetzung für die Verwendung von „have“.

3. Multi-Table-Abfrage

SQL>SELECT * FROM emp ORDER BY deptno, sal DESC;
Nach dem Login kopieren

Verwenden Sie die ausgewählten Daten als neue Tabelle, um eine Left-Join-Abfrage durchzuführen; -join (bezieht sich auf die Join-Abfrage derselben Tabelle)

SQL>SELECT DATE_FORMAT(start_time,"%Y-%m-%d") as "时间";
Nach dem Login kopieren
5. Unterabfrage (SELECT-Anweisung, eingebettet in andere SQL-Anweisungen, auch verschachtelte Abfrage genannt) in der Tabelle Personalname. Da das zurückgegebene Ergebnis nur eine Zeile ist, verwenden Sie „=“, um die Unterabfrageanweisung zu verbinden 10 in der Tabelle. Da das zurückgegebene Ergebnis mehrere Zeilen enthält, wird „IN“ zum Verbinden der Unterabfrageanweisungen verwendet. Der Unterschied zwischen

in und exist: Die Unterabfrage nach exist() wird als korrelierte Unterabfrage bezeichnet und gibt nicht den Wert der Liste zurück. Es wird lediglich ein wahres oder falsches Ergebnis zurückgegeben. Die Operationsmethode besteht darin, die Hauptabfrage einmal auszuführen und dann die entsprechenden Ergebnisse in der Unterabfrage abzufragen. Wenn es wahr ist, wird es ausgegeben, andernfalls wird es nicht ausgegeben. Fragen Sie dann in der Unterabfrage basierend auf jeder Zeile in der Hauptabfrage ab. Die Unterabfrage nach in() gibt die Ergebnismenge zurück. Mit anderen Worten, die Ausführungsreihenfolge unterscheidet sich von der von exist(). Die Unterabfrage generiert zunächst einen Ergebnissatz, und dann geht die Hauptabfrage zum Ergebnissatz, um eine Liste von Feldern zu finden, die die Anforderungen erfüllen. Ausgabe, die den Anforderungen entspricht, sonst keine Ausgabe.

5.3 Mit ALL

SQL>SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp;
SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));
SQL>SELEC COUNT(*) FROM emp;
Nach dem Login kopieren
können Sie Name, Gehalt und Abteilungsnummer von Mitarbeitern abfragen, deren Gehalt höher ist als das aller Mitarbeiter mit der Abteilungsnummer 30. Die beiden oben genannten Anweisungen sind funktional gleich, aber in Bezug auf die Ausführungseffizienz ist die Funktion viel höher.

5.4 Verwenden Sie ANY

SQL>SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno;
SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
Nach dem Login kopieren

, um den Namen, das Gehalt und die Abteilungsnummer des Mitarbeiters abzufragen, dessen Gehalt höher ist als das eines beliebigen Mitarbeiters mit der Abteilungsnummer 30 (sofern das Gehalt höher ist als das eines bestimmten Mitarbeiters). Die beiden oben genannten Anweisungen sind funktional gleich, aber in Bezug auf die Ausführungseffizienz ist die Funktion viel höher. 5.5 Mehrspaltige Unterabfrage Sortieren der Abfrageergebnisse usw. Sie müssen nur die innerste Unterabfrage ändern.

5.8 Erstellen Sie eine neue Tabelle mit Abfrageergebnissen

SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno;
SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;
Select a.*, b.x, c.y from a
  left outer join (Select * from tablex where condition1)b
  on a.id=b.id
  left outer join (Select * from tabley where condition2)c
  on a.id=c.id
where condition3;
Nach dem Login kopieren

5.9 Abfrage zusammenführen (Union Union, Schnittmenge schneiden, Vereinigung aller Union+Schnittmenge, minus Differenzmenge)

SQL>SELECT ename, sal, job FROM emp WHERE sal>2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename, sal, job FROM emp WHERE job=&#39;MANAGER&#39;;
Nach dem Login kopieren

合并查询的执行效率远高于and,or等逻辑查询。

5.10 使用子查询插入数据

SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2));
Nach dem Login kopieren

先建一张空表;

SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10;
Nach dem Login kopieren

再将emp表中部门号为10的数据插入到新表myEmp中,实现数据的批量查询。

5.11 使用了查询更新表中的数据

SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename=&#39;SMITH&#39;) WHERE ename=&#39;SCOTT&#39;;
Nach dem Login kopieren

相关免费学习推荐:SQL视频教程

Das obige ist der detaillierte Inhalt vonWas sind die häufigsten SQL-Abfrageanweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage