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].
Übliche SQL-Abfrageanweisungen sind:
1. Einfache Abfrageanweisung
1. Sehen Sie sich die Tabellenstruktur an
SQL>DESC emp;
2. Fragen Sie alle Spalten ab
SQL>SELECT * FROM emp;
3. Anfrage Geben Sie die Spalte
SQL>SELECT empmo, ename, mgr FROM emp;
SQL>SELECT DISTINCT mgr FROM emp an. Nur Elemente mit unterschiedlichen Ergebnissen anzeigen.
SQL>SELECT * FROM emp WHERE job='CLERK';
SQL>SELECT ename, sal*13+nvl(comm,0) FROM emp;
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';
SQL>SELECT * FROM emp WHERE ename like 'S__T%';
SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
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;
2. Komplexe Abfrage (maximal, minimal, durchschnittlich, Summe, Anzahl)
SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
Zusammenfassung der Datengruppierung:
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 seinDie 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;
SQL>SELECT DATE_FORMAT(start_time,"%Y-%m-%d") as "时间";
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 ALLSQL>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;
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;
, 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;
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='MANAGER';
合并查询的执行效率远高于and,or等逻辑查询。
5.10 使用子查询插入数据
SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2));
先建一张空表;
SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10;
再将emp表中部门号为10的数据插入到新表myEmp中,实现数据的批量查询。
5.11 使用了查询更新表中的数据
SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename='SMITH') WHERE ename='SCOTT';
相关免费学习推荐: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!