Wie Abrufen von Daten aus bestimmten Zeilen in MySQL-Datenbanken

Häufig möchten Sie nicht alle Daten aus einer MySQL-Tabelle abzurufen. Sie möchten Informationen nur von ausgewählten Zeilen. Drei SQL Wörter werden häufig zur Angabe der Quelle der Informationen verwendet:

  • WOHER: Hier können Sie Informationen von Datenbankobjekten mit bestimmten Eigenschaften zu beantragen. Zum Beispiel können Sie die Namen von Kunden verlangen, die in Kalifornien leben, oder können Sie nur Produkte aufgelistet, die eine bestimmte Kategorie von Kleidung sind.

  • GRENZE: Hier können Sie die Anzahl der Zeilen, aus denen Informationen abgerufen zu begrenzen. Zum Beispiel können Sie die Informationen nur aus den ersten drei Zeilen in der Tabelle fordern.

  • DISTINCT: Hier können Sie Informationen nur aus einer Reihe von identischen Reihen zu beantragen. Zum Beispiel in einem Anmeldung Tabelle, können Sie verlangen, Benutzername aber geben keine doppelten Namen, also die Antwort auf einen Datensatz für jedes Mitglied zu begrenzen. Dies würde die Frage zu beantworten, # 147-Hat immer der Kunde angemeldet? # 148- und nicht die Frage, # 147-Wie oft hat der Kunde angemeldet # 148?;

Verwenden Sie eine WHERE-Klausel

Das WOHER Klausel der WÄHLEN Abfrage ermöglicht es Ihnen, komplizierte Auswahlen zu machen. Zum Beispiel: Angenommen Ihr Chef alle Kunden, deren Nachnamen wissen möchte beginnen mit B, die in Indianapolis leben, und die über einen 8 in entweder ihre Telefon- oder Faxnummer. Sie können diese Liste für Ihren Chef in eine bekommen WÄHLEN Abfrage mit einem WOHER Klausel.

Das Grundformat der WOHER Klausel

WHERE Ausdruck AND | OR Ausdruck AND | OR Ausdruck ...

Ausdruck gibt einen Wert mit den Werten in der Datenbank gespeicherten zu vergleichen. Nur die Zeilen um eine Übereinstimmung für die Expression enthalten, werden ausgewählt. Sie können beliebig viele Ausdrücke wie nötig verwenden, die jeweils getrennt durch UND oder ODER.

Wenn Sie UND, beide der Ausdrücke, die durch die angeschlossene UND (Das heißt, sowohl der Ausdruck vor dem UND und der Ausdruck nach dem UND) Muss, um wahr sein, dass die Zeile ausgewählt werden. Wenn Sie ODER, nur einer der Ausdrücke, die durch die angeschlossene ODER muss wahr sein, dass die Zeile ausgewählt werden.

Ausdrücke für die WHERE-Klausel
AusdruckBeispielErgebnis
Spalte = Wertzip = # 147-12345 # 148-Wählt nur die Zeilen, in denen 12.345 in der Spalte namedzip gespeichert
Spalte> Wertzip> # 147-50000 # 148-Wählt nur die Zeilen, in denen die Postleitzahl ist 50001 orhigher
Spalte> = Wertzip> = # 147-50000 # 148-Wählt nur die Zeilen, in denen die Postleitzahl ist 50000 orhigher
Spalte lt; WertReißverschluss lt; # 147-50000 # 148-Wählt nur die Zeilen, in denen die Postleitzahl 49999 oder niedriger ist
Spalte lt; = WertReißverschluss le; # 147-50000 # 148-Wählt nur die Zeilen, in denen die Postleitzahl 50000 oder niedriger ist
Spalte zwischen value1 und value2zip ZWISCHEN # 147-20000 # 148- UND # 147-30000 # 148-Wählt nur die Zeilen, in denen die Postleitzahl von mehr als 19999but weniger 30001
Spalte IN (Wert1, Wert2, # 133-)zip IN (# 147-90001 # 148 - # 148-30044 # 148-)Wählt nur die Zeilen, in denen die Postleitzahl 90001 oder 30044 ist
Spalte NOT IN (Wert1, Wert2, # 133-)zip NOT IN (# 147-90001 # 148 - # 148-30044 # 148-)Wählt nur die Zeilen, in denen die Postleitzahl ist jede Postleitzahl except90001 oder 30044
Spalte LIKE Wert
Hinweis: Wert der Platzhalter% enthalten (die eine beliebige Zeichenfolge übereinstimmt) und _ (das entspricht jedem Zeichen).
zip LIKE # 147-9% # 148-Wählt alle Zeilen, in denen die Postleitzahl beginnt mit 9
Spalte NOT Wert LIKE
Hinweis: Wert der Platzhalter% enthalten (die eine beliebige Zeichenfolge übereinstimmt) und _ (das entspricht jedem Zeichen).
zip NOT LIKE # 147-9% # 148-Wählt alle Zeilen, in denen die Postleitzahl beginnt nicht with9

Sie können jede der Ausdrücke kombinieren mit UNDs und ODERs. In einigen Fällen müssen Sie Klammern verwenden, um die Auswahlkriterien zu klären. Zum Beispiel können Sie die folgende Abfrage verwenden Ihres Chefs dringende Notwendigkeit zu beantworten alle Kunden, deren Namen zu finden, beginnen mit B, die in Indianapolis leben, und die über einen 8 in entweder ihre Telefon- oder Faxnummer:

SELECT Nachname, Vorname FROM CustomerWHERE nachName LIKE "B%" und Stadt = "Indianapolis" AND (Telefon LIKE "% 8%" oder per Fax LIKE "% 8%")

Beachten Sie die Klammern in der letzten Zeile. Sie würden nicht die Ergebnisse, die sie ohne die Klammern gefragt.

Ohne die Klammern würde jeder Anschluss, um die letzte von der ersten verarbeitet werden, was zu einer Liste, die alle Kunden, deren Namen enthält beginnen mit B und die leben in Indianapolis und deren Telefonnummern haben eine 8 in ihnen und Alle Kunden, deren Faxnummern haben eine 8 in ihnen, ob sie in Indianapolis leben und ob ihr Name beginnt mit einem B.

Wenn die letzte ODER entsprechen den Ausdruck verarbeitet wird, werden Kunden, deren Eigenschaften ausgewählt, bevor der ODER oder der Ausdruck nach dem ODER. Der Ausdruck, bevor der ODER zur vorigen Ausdrücken durch den vorherigen verbunden ist UNDs, und so ist es nicht allein stehen, sondern der Ausdruck nach dem ODER nicht stehen bei der Auswahl aller Kunden resultieren mit einem 8 in ihre Faxnummer allein.

Verwenden Sie die LIMIT Schlüsselwort

GRENZE gibt an, wie viele Zeilen zurückgegeben werden können. Das Formular für GRENZE ist

LIMIT Startnummer, NumberOfRows

Die erste Zeile, die Sie abrufen wollen, ist Startnummer, und die Anzahl der Zeilen abzurufen ist, Anzahl der Reihen. Ob Startnummer nicht angegeben ist, wird 1 angenommen. So wählen Sie nur die ersten drei Kunden, die in Texas leben, verwenden Sie folgende Abfrage:

SELECT * FROM Customer WHERE state = "TX" LIMIT 3

Verwenden Sie das Schlüsselwort DISTINCT

Zeilen in der Tabelle können in einer oder mehreren Spalten identische Werte haben. Jedoch in einigen Fällen, wenn man WÄHLEN eine Spalte, die Sie nicht wollen mehrere Zeilen mit identischen Werten abzurufen. Sie wollen nur einmal, um den Wert abzurufen. Beispiel: Angenommen, Sie eine Tabelle von Produkten mit einem Feld namens Kategorie.

Die Daten enthalten zweifellos viele Produkte in jeder Kategorie. Angenommen, Sie eine Liste aller Kategorien in der Datenbank angezeigt werden sollen. Sie wollen diese Liste jeder Kategorie nur einmal aufgeführt zu enthalten. Das Schlüsselwort DISTINCT ist für diesen Zweck vorgesehen.

Um zu verhindern, eine WÄHLEN Abfrage von alle identischen Aufzeichnungen Rückkehr, fügen Sie das Stichwort DISTINCT gleich nach WÄHLEN, wie folgt:

SELECT DISTINCT Kategorie aus Produkt

Menü