SQL-Hinweise (1) SQL-Syntax, SELECT-Anweisung, DISTINCT-Anweisung, kombinierte Verwendung von LIMIT, LIMIT und OFFSET, WHERE-Klausel

Artikelverzeichnis

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 DISTINCTdie 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, DISTINCTdie nur in verwendet werden SELECTkö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:

  1. Stellen Sie beim Deduplizieren von Feldern sicher, dass DISTINCT ganz oben in allen Feldern steht
  2. 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. :

  1. 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.

  2. 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

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen
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

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügenIm 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.

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

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

Bildbeschreibung hier einfügen

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 = "人工智能"

Bildbeschreibung hier einfügen

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;

Bildbeschreibung hier einfügen

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;

Bildbeschreibung hier einfügen

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;

Bildbeschreibung hier einfügen

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 "%端%";

Bildbeschreibung hier einfügen

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);

Bildbeschreibung hier einfügen

1.4.2.8 Abfrage ohne Kommwert

SELECT *
FROM emp
WHERE comm IS NOT null; 

Bildbeschreibung hier einfügen

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;

Bildbeschreibung hier einfügen

1.4.2.9.2 Abfrage deptno als 20 oder sal>20000

Bildbeschreibung hier einfügen

Ich denke du magst

Origin blog.csdn.net/Redamancy06/article/details/126513682
Empfohlen
Rangfolge