English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden Sie lernen, wie man mit SQL bestimmte Einträge aus einer Tabelle auswählt.
Im vorherigen Kapitel haben wir gelernt, wie man alle Einträge aus einer Tabelle oder einer Tabellenspalte abruft. Aber in der realen Welt benötigen wir in der Regel nur die Auswahl, Aktualisierung oder Löschung von Einträgen, die bestimmte Bedingungen erfüllen, z.B. eine bestimmte Altersgruppe oder ein bestimmtes Land./Benutzer in der Region zu filtern.
WHERE-Teil wird verwendet, umSELECT,UPDATEundDELETE。 Aber Sie werden in den kommenden Kapiteln sehen, wie dieser Teil mit anderen Anweisungen verwendet wird.
Der WHERE-Teil wird zusammen mit dem SELECT-Befehl verwendet, um nur diejenigen Aufzeichnungen abzurufen, die den angegebenen Bedingungen entsprechen. Die Grundsyntax kann wie folgt gegeben werden:
SELECT column_list FROM table_name WHERE condition;
hiercolumn_listist die Datenbanktabelle, deren Wert Sie erhalten möchten/des Feldes名称,例如name,age,countryusw. Wenn Sie jedoch alle verfügbaren Spaltenwerte der Tabelle abrufen möchten, können Sie die folgende Syntax verwenden:
SELECT * FROM table_name WHERE condition;
Lassen Sie uns einige Beispiele betrachten, um ihre tatsächliche Arbeitsweise zu demonstrieren.
Angenommen, wir haben in der Datenbank eine Tabelle namensemployeesDie Tabelle enthält die folgenden Aufzeichnungen:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 00 | 2001-05-01 | 5000 | 4 | | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 000 | 2005-10-18 | 8000 | 5 | | 4 SELECT emp_id, emp_name, hire_date, salary 2007-01-03 | 7200 | 3 | | 5 00 | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
Die folgenden SQL-Anweisungen werden die folgenden Aufzeichnungen ausemployeesIn der Tabelle werden diejenigen zurückgegeben, deren Gehalt größer als7000 aller employee. Der WHERE-Teil filtert nur die nicht benötigten Daten heraus.
SELECT * FROM employees WHERE salary > 7000;
Nach der Ausführung wird die Ausgabe wie folgt aussehen:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 3 000 | 2005-10-18 | 8000 | 5 | | 4 SELECT emp_id, emp_name, hire_date, salary 2007-01-03 | 7200 | 3 | +--------+--------------+------------+--------+---------+
Wie Sie sehen, enthält die Ausgabe nur die Gehälter, die größer sind als7000 dieser Mitarbeiter. Ähnlich können Sie Aufzeichnungen aus bestimmten Spalten abrufen, wie folgt:
SELECT emp_id, emp_name, hire_date, salary FROM employees WHERE salary > 7000;
Nachdem Sie den obigen Befehl ausgeführt haben, erhalten Sie die folgende Ausgabe:
+--------+--------------+------------+--------+ 000 | +--------+--------------+------------+--------+ | 3 000 | 2005-10-18 | 8000 | | 4 SELECT emp_id, emp_name, hire_date, salary 2007-01-03 | 7200 | +--------+--------------+------------+--------+
WHERE salary >2des Mitarbeiters. Die folgenden Anweisungen werden die Aufzeichnungen des Mitarbeiters mit der ID
SELECT * FROM employees WHERE emp_id = 2;
Dieser Befehl erzeugt die folgende Ausgabe:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | +--------+--------------+------------+--------+---------+
In diesem Fall erhalten wir nur eine Zeile im Ausgabe, weilemp_idFür jeden Mitarbeiter ist es einzigartig.
SQL unterstützt viele Operatoren, die im WHERE-Teil verwendet werden können. Der folgende Tisch zusammenfasst die wichtigsten Operatoren.
Betreuer | Beschreibung | Online-Beispiel |
---|---|---|
GLEICH | Gleich | WHERE id = 2 |
GRÖSSER | Besser als... | WHERE Alter > 30 |
KLEINER | Weniger | WHERE Alter < 18 |
GR | Größer als oder gleich | WHERE Bewertung >= 4 |
LE | Kleiner als oder gleich | WHERE Preis <= 100 |
LIKE | Einfache Musterabfrage | WHERE Name LIKE 'Dav' |
IN | Überprüfen Sie, ob der angegebene Wert mit jedem Wert aus der Liste oder der Subabfrage übereinstimmt | WHERE Land IN ('USA', 'UK') |
ZWISCHEN | Überprüfen Sie, ob der angegebene Wert im Wertebereich liegt | WHERE Bewertung zwischen 3 UND 5 |