Artikelverzeichnis
- 1SQL-Syntax
-
- 1.1 SELECT-Anweisung
- 1.2 DISTINCT-Erklärung
- 1.3GRENZE
- 1.4 WHERE-Klausel
-
- 1.4.1 Operatoren in der WHERE-Klausel
- 1.4.2 Beispiele
-
- 1.4.2.1emp-Tabelle
- 1.4.2.2 Um den Job in der emp-Tabelle als künstliche Intelligenz abzufragen, verwenden Sie "="
- 1.4.2.3 Wenn das Sal in der emp-Tabelle größer als 20000 ist, ist die Verwendung von „>“, „<“, „>=“, „<=“ ebenfalls ähnlich
- 1.4.2.4 Abfrage der Verwendung von "<>", wenn deptno in der emp-Tabelle nicht gleich 20 ist
- 1.4.2.5 Den Wert von sal in der emp-Tabelle zwischen 20000-40000 abfragen, die Verwendung von „between“
- 1.4.2.6 Abfrage der Verwendung des Wortes „Ende“ im Job in der emp-Tabelle und des Schlüsselworts „Gefällt mir“
- 1.4.2.7 Abfrage der Warennummer in der Emp-Tabelle mit 10, 30, 50
- 1.4.2.8 Abfrage ohne Kommwert
- 1.4.2.9 Abfrage mehrerer Bedingungen
1SQL-Syntax
1.1 SELECT-Anweisung
SELECT
[ALL|DISTINCT]
<Zielspaltenausdruck 1> [Alias],
<Zielspaltenausdruck 2> [Alias]…
FROM <Tabellenname oder Ansichtsname> [Alias],<Tabellenname oder Ansichtsname> [Alias]…
[ WHERE<bedingter Ausdruck>]
[GROUP BY <Spaltenname>
[HAVING <bedingter Ausdruck>]]
[ORDER BY <Spaltenname> [ASC|DESC]]
[LIMIT <Nummer oder Liste>];
Versionssyntax vereinfachen
SELECT *| Spalte name FROM-Tabelle WHERE-Bedingung
1.1.1SQL SELECT-Anweisung
Die SELECT-Anweisung wird verwendet, um Daten aus einer Tabelle auszuwählen.
Die Ergebnisse werden in einer Ergebnistabelle (als Ergebnismenge bezeichnet) gespeichert.
1.1.2SQL SELECT-Syntax
SELECT 列名称 FROM 表名称
ebenso gut wie:
SELECT * FROM 表名称
SQL 语句对大小写不敏感。SELECT 等效于 select。提示:星号(*)是选取所有列的快捷方式。
1.2 DISTINCT-Erklärung
1.2.1 Die Rolle von DISTINCT
In MySQLl besteht DISTINCT
die Hauptfunktion von Schlüsselwörtern darin, die wiederholten Daten eines oder mehrerer Felder in der Datenbanktabelle zu filtern und nur eine der Daten an den Benutzer zurückzugeben, DISTINCT
die nur in verwendet werden SELECT
können
1.2.2 Verwendung von DISTINCT
SELECT DISTINCT expression[,expression...]
FROM tables
[where conditions];
Achten Sie bei der Verwendung von Distinct auf folgende Punkte:
- Stellen Sie beim Deduplizieren von Feldern sicher, dass DISTINCT ganz oben in allen Feldern steht
- Wenn nach dem Schlüsselwort DISTINCT mehrere Felder vorhanden sind, werden die mehreren Felder kombiniert und dedupliziert, und nur die kombinierten Werte mehrerer Felder werden dedupliziert.
1.2.3 Grundsatz der DISTINCT
Das Hauptprinzip der DISTINCT-Deduplizierung besteht darin, die zu deduplizierenden Daten zuerst zu gruppieren und dann eine der gruppierten Daten an den Client zurückzugeben. Bei diesem Gruppierungsprozess können zwei verschiedene Situationen auftreten. :
-
Die Felder, von denen DISTINCT abhängt, enthalten nicht alle Indizes:
In diesem Fall wird eine temporäre Tabelle benötigt, da der Index den gesamten Prozess der Deduplizierung nicht erfüllen kann. MySQL muss zuerst die Daten, die die Bedingungen erfüllen, in die temporäre Tabelle schreiben, und dann legen Sie die Daten in die temporäre Tabelle. Ein Teil der Daten wird gruppiert, und dann wird ein Datenelement aus allen gruppierten Daten in der temporären Tabelle entfernt. Die Daten werden während des Gruppierungsprozesses in der temporären Tabelle nicht sortiert. -
Die Felder, von denen DISTINCT abhängt, enthalten alle Indizes:
In diesem Fall gruppiert MySQL direkt die Daten, die die Bedingungen erfüllen, indem die Indizes bearbeitet werden, und entfernt dann nach der Gruppierung ein Datenelement aus jeder Datengruppe.
1.3GRENZE
Wenn die Datentabelle Zehntausende von Daten enthält, verlangsamt die gleichzeitige Abfrage aller Daten in der Tabelle die Geschwindigkeit der Datenrückgabe und verursacht großen Druck auf den Datenbankserver. Zu diesem Zeitpunkt können Sie das Schlüsselwort LIMIT verwenden, um die Anzahl der vom Abfrageergebnis zurückgegebenen Elemente zu begrenzen.
LIMIT ist ein spezielles Schlüsselwort in MySQL, mit dem angegeben wird, welcher Datensatz das Abfrageergebnis anzuzeigen beginnt und wie viele Datensätze insgesamt angezeigt werden.
Das Schlüsselwort LIMIT kann auf drei Arten verwendet werden: Angabe der Anfangsposition, Nichtangabe der Anfangsposition und Kombination mit OFFSET.
1.3.1 Geben Sie die Ausgangsposition an
Das Schlüsselwort LIMIT kann angeben, welcher Datensatz das Abfrageergebnis anzuzeigen beginnt und wie viele Datensätze angezeigt werden.
Das grundlegende Syntaxformat von LIMIT, das die Anfangsposition angibt, lautet wie folgt:
LIMIT 初始位置,记录数
Darunter gibt "Anfangsposition" an, ab welchem Datensatz angezeigt werden soll, und "Anzahl der Datensätze" gibt die Anzahl der angezeigten Datensätze an. Die Position des ersten Datensatzes ist 0 und die Position des zweiten Datensatzes ist 1. Es folgen die folgenden Datensätze und so weiter.
Notiz:LIMIT 后的两个参数必须都是正整数。
1.3.1.1 Beispiel: Verwenden Sie in der emp-Tabelle die LIMIT-Klausel, um Datensätze mit einer Zeilennummer von 5 ab dem dritten Datensatz zurückzugeben. Die SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt
Wie Sie den Ergebnissen entnehmen können, gibt die Anweisung 5 Datensätze zurück, beginnend mit dem 3. Datensatz. Die erste Zahl „2“ nach dem Schlüsselwort LIMIT bedeutet, bei Zeile 3 zu beginnen (Datensatzposition beginnt bei 0, Zeile 3 ist bei Position 2), und die zweite Zahl 5 bedeutet die Anzahl der zurückgegebenen Zeilen.
1.3.2 Geben Sie die Ausgangsposition nicht an
Wenn das Schlüsselwort LIMIT keine Anfangsposition angibt, werden Datensätze ab dem ersten Datensatz angezeigt. Die Anzahl der angezeigten Datensätze wird durch das Schlüsselwort LIMIT angegeben.
Die grundlegende Syntax von LIMIT ohne Angabe der Anfangsposition lautet wie folgt:
LIMIT 记录数
Darunter gibt "Anzahl der Aufzeichnungen" die Anzahl der angezeigten Aufzeichnungen an. Wenn der Wert von "Anzahl der Datensätze" kleiner als die Gesamtzahl der Abfrageergebnisse ist, wird die angegebene Anzahl von Datensätzen beginnend mit dem ersten Datensatz angezeigt. Ist der Wert von „Number of Records“ größer als die Gesamtzahl der Abfrageergebnisse, werden direkt alle abgefragten Datensätze angezeigt.
1.3.2.1 Das Beispiel zeigt die ersten 3 Zeilen des Abfrageergebnisses der emp-Tabelle, die SQL-Anweisung und das laufende Ergebnis sind wie folgt
Im Ergebnis werden nur 3 Datensätze angezeigt, was darauf hinweist, dass „LIMIT 3“ die Anzahl der angezeigten Datensätze auf 3 begrenzt.
1.3.3 Kombination von LIMIT und OFFSET
LIMIT kann in Kombination mit OFFSET verwendet werden, die Syntax ist wie folgt:
LIMIT 记录数 OFFSET 初始位置
Die Parameter haben die gleiche Bedeutung wie in der LIMIT-Syntax: „Initial Position“ gibt an, welcher Datensatz angezeigt werden soll, „Number of Records“ gibt die Anzahl der angezeigten Datensätze an.
1.3.3.1 Verwenden Sie in der emp-Tabelle LIMIT OFFSET, um 5 Datensätze zurückzugeben, beginnend mit dem 4. Datensatz.Die SQL-Anweisung und das laufende Ergebnis lauten wie folgt.
Wie aus den Ergebnissen ersichtlich ist, gibt die Anweisung 5 Datensätze zurück, beginnend mit dem 4. Datensatz. Das heißt, "LIMIT 5 OFFSET 3" bedeutet, die nächsten 5 Datensätze beginnend mit dem 4. Datensatz zu erhalten, was dasselbe ist wie das Ergebnis, das von "LIMIT 3, 5" zurückgegeben wird.
1.3.4 Zusammenfassung
LIMIT mit einem Parameter gibt an, dass mit der ersten Zeile der Abfrageergebnisse begonnen werden soll, und der einzige Parameter ist die Anzahl der zurückgegebenen Zeilen, 即“LIMIT n”、"LIMIT n OFFSET 0"与“LIMIT 0,n”返回结果相同
. LIMIT mit zwei Argumenten gibt die angegebene Anzahl von Datenzeilen beginnend an einer beliebigen Position zurück.
Aber: LIMIT 0, n ist effizienter
LIMIT n ist weniger effizient
LIMIT n OFFSET 0 läuft effizienter
SELECT *
FROM emp
LIMIT 0,2 运行效率更高
SELECT *
FROM emp
LIMIT 2 运行效率低
SELECT *
FROM emp
LIMIT 2 OFFSET 0 运行效率中
1.4 WHERE-Klausel
WHERE-Klausel zum Filtern von Datensätzen
1.4.1 Operatoren in der WHERE-Klausel
Die folgenden Operatoren können in der WHERE-Klausel verwendet werden:
Operator | beschreiben |
---|---|
= | gleich |
<> | Nicht gleichzusetzen mit. Hinweis: In einigen Versionen von SQL kann dieser Operator als != geschrieben werden |
> | mehr als die |
< | weniger als |
>= | größer oder gleich |
<= | weniger als oder gleich |
ZWISCHEN | in einem bestimmten Bereich |
WIE | Suche nach einem Muster |
IN | Geben Sie mehrere mögliche Werte für eine Spalte an |
1.4.2 Beispiele
1.4.2.1emp-Tabelle
1.4.2.2 Um den Job in der emp-Tabelle als künstliche Intelligenz abzufragen, verwenden Sie "="
SELECT empno,job
FROM emp
WHERE job = "人工智能"
1.4.2.3 Wenn das Sal in der emp-Tabelle größer als 20000 ist, ist die Verwendung von „>“, „<“, „>=“, „<=“ ebenfalls ähnlich
SELECT ename,sal
FROM emp
WHERE sal > 20000;
1.4.2.4 Abfrage der Verwendung von "<>", wenn deptno in der emp-Tabelle nicht gleich 20 ist
SELECT ename,deptno
FROM emp
WHERE deptno <> 20;
1.4.2.5 Den Wert von sal in der emp-Tabelle zwischen 20000-40000 abfragen, die Verwendung von „between“
SELECT ename,sal
FROM emp
WHERE sal BETWEEN 20000 AND 40000;
1.4.2.6 Abfrage der Verwendung des Wortes „Ende“ im Job in der emp-Tabelle und des Schlüsselworts „Gefällt mir“
SELECT ename,job
FROM emp
WHERE job LIKE "%端%";
1.4.2.7 Abfrage der Warennummer in der Emp-Tabelle mit 10, 30, 50
SELECT ename,deptno
FROM emp
WHERE deptno IN(10,30,50);
1.4.2.8 Abfrage ohne Kommwert
SELECT *
FROM emp
WHERE comm IS NOT null;
1.4.2.9 Abfrage mehrerer Bedingungen
Die logischen Operatoren AND und OR können in der WHERE-Klausel verwendet werden, um Abfragen mit mehreren Bedingungen zu erstellen.
Die Syntax für die Verwendung von AND-Prädikaten lautet wie folgt:
boolscher Ausdruck 1 AND boolscher Ausdruck 2 AND ... AND boolscher Ausdruck n
Das Ergebnis des gesamten Ausdrucks ist nur wahr, wenn alle boolschen Ausdrücke wahr sind, solange es einen boolschen Ausdruck If gibt das Ergebnis des Ausdrucks ist falsch, das Ergebnis des gesamten Ausdrucks ist falsch.
Die Syntax für die Verwendung des OR-Prädikats lautet wie folgt.
Boolescher Ausdruck 1 ODER Boolescher Ausdruck 2 ODER ... ODER Boolescher Ausdruck n
bedeutet, dass solange einer der Booleschen Ausdrücke wahr ist, das Ergebnis des gesamten Ausdrucks wahr ist; nur wenn das Ergebnis aller Booleschen Ausdrücke falsch ist, wird der Der gesamte Ausdruck ist falsch. Das Ergebnis des Ausdrucks ist falsch.
1.4.2.9.1 Abfrage deptno ist 20 und sal>20000
SELECT *
FROM emp
WHERE deptno = 20 AND sal > 20000;