Verwendung der SELECT-Syntax in ADO
Autor:Eve Cole
Aktualisierungszeit:2009-05-30 19:54:37
SELECT-Ausdruck
Schauen wir uns als nächstes den SELECT-Ausdruck an, der verwendet wird, um Datensätze zu finden, die bestimmte Bedingungen in der Tabelle erfüllen.
SELECT [Schlüsselwort] { * |. Tabellenname.* |. [Tabellenname.] Feldname 1 [AS-Alias 1] [, [Tabellenname.] Feldname 2 [AS-Alias 2] [, ...]]}
FROM Tabellenausdruck [, ...] [IN externe Tabelle]
[WO... ]
[GRUPPE NACH...]
[HABEN...]
[ORDNEN NACH...]
[MIT OWNERACCESS-OPTION]
Schlüsselwort: kann verwendet werden, um die Anzahl der zurückgegebenen Datensätze zu begrenzen, und kann auf ALL, DISTINCT, DISTINCTROW oder TOP festgelegt werden. Wenn kein Prädikat angegeben ist, ist der Standardwert ALL.
*: Alle Felder auswählen.
Alias: Ersetzen Sie den ursprünglichen Feldnamen in der Tabelle.
Tabellenausdruck: ein oder mehrere durch Kommas getrennte Tabellennamen.
Externe Tabelle: Wenn die Tabelle in der aktuellen Tabelle nicht vorhanden ist, muss der Tabellenname festgelegt werden, der die Tabelle in der Tabellenoperation enthält.
Durch die Ausführung des SELECT-Ausdrucks werden die vorhandenen Daten in der Tabelle nicht geändert.
Die grundlegendste Syntax eines SELECT-Ausdrucks ist:
SELECT * FROM Tabellenausdruck
Mit einem Sternchen (*) können Sie alle Felder einer Tabelle auswählen. Im folgenden Beispiel werden beispielsweise alle Felder in der Tabelle [Produkt] ausgewählt:
WÄHLEN * AUS PRODUKTEN
Wenn ein Feldname Leerzeichen oder Satzzeichen enthält, muss er in Klammern [] eingeschlossen werden. Zum Beispiel:
AUSWÄHLEN [Computerprodukte]
Wenn der Feldname in der FROM-Klausel mehrere Tabellen enthält, müssen Sie den Tabellennamen und den Punktoperator (.) vor dem Feldnamen hinzufügen, also Tabellenname.Feldname. Im folgenden Beispiel werden beispielsweise das Feld [Preis] der Tabelle [Produkt] und das Feld [Menge] der Tabelle [Bestellung] ausgewählt:
WÄHLEN Sie Produkt.Preis, Bestellmenge
VON Produkten, Bestellungen
WHERE produkt.code = order.code
Wenn Sie das Recordset-Objekt verwenden, erkennt Recordset das Format rs (Tabellenname. Feldname) nicht, d. h. rs („Produkt. Preis“) verursacht einen Fehler und Sie müssen AS verwenden, um den Alias des Felds festzulegen Name. Zum Beispiel:
SELECT product.priceAS Preis, order.quantityAS Menge
VON Produkten, Bestellungen
WHERE produkt.code = order.code
Auf diese Weise können Sie rs („Preis“) und rs („Menge“) verwenden, um die Daten seiner Felder auszulesen.
Syntax im Zusammenhang mit SELECT-Ausdrücken:
Schlüsselwörter: ALL/ DISTINCT/ DISTINCTROW/ TOP.
WO: Suchen Sie in der FROM-Tabelle nach Datensätzen, die bestimmte Bedingungen erfüllen. WHERE kann die folgenden BETWEEN-, LIKE- und IN-Operatoren verwenden:
Zwischen...Und: Bestimmen Sie, ob der Wert des Ausdrucks innerhalb des angegebenen Bereichs liegt.
Gefällt mir: Finden Sie passende Schlüsselwörter.
IN-Ausdruck: begrenzter Bereich.
NOT IN-Ausdruck: Zeigt an, dass er nicht zum angegebenen Bereich gehört.
ORDER BY-Klausel: Sie können die Sortierfelder festlegen.
GROUP BY-Klausel: Erstellen Sie Statistiken zu den Abfrageergebnissen.
HAVING-Klausel: Wird im SELECT-Ausdruck verwendet, um Datensätze zu filtern, die als GROUP BY-Statistiken eingestuft wurden.
Union: Die Ergebnisse mehrerer Abfragesätze können kombiniert werden.
JOIN: Verbindet Felddatensätze in zwei Tabellen.
Unterabfrage: Der Ausdruck kann einen SELECT-Ausdruck enthalten.
Auswählen...In: Erstellen Sie eine generierte Tabelle basierend auf den Abfrageergebnissen.
Die Einzelheiten lauten wie folgt:
ALL/DISTINCT/DISTINCTROW/TOP-Schlüsselwörter
Wenn Sie die SELECT-Abfrage verwenden, können Sie Schlüsselwörter hinzufügen, um die abzufragenden Datensätze auszuwählen. wie folgt:
ALL: Alle Datensätze zurückgeben.
DISTINCT: Wenn im angegebenen Feld doppelte Datensätze vorhanden sind, wird nur ein Datensatz zurückgegeben und die Datensätze werden nicht dupliziert.
DISTINCTROW: Keiner der Datensätze im angegebenen Feld wird zurückgegeben, wenn Duplikate vorhanden sind.
TOP: Gibt die vorherigen Datensätze oder Prozentsätze der Datensätze zurück.
Die Syntax lautet wie folgt:
SELECT [ALL |. DISTINCTROW |.
VON Tabelle
ALL gibt alle Datensätze zurück. Wenn kein Schlüsselwort hinzugefügt wird, hat dies dieselbe Bedeutung wie das Hinzufügen von ALL, und es werden alle Datensätze zurückgegeben. Die folgenden beiden Beispiele haben beispielsweise die gleichen Ausführungsergebnisse und geben beide alle Datensätze aus der Produkttabelle zurück:
WÄHLEN SIE ALLE * AUS-Produkte aus
Das Ausführungsergebnis ist das gleiche wie:
WÄHLEN * AUS PRODUKTEN
DISTINCT wählt keine doppelten Daten im angegebenen Feld aus. Nach der Verwendung von DISTINCT werden in den Abfrageergebnissen die Datenwerte jedes Felds nach SELECT DISTINCT aufgelistet. Wenn sie gleich sind, wird nur ein Datensatz verwendet. Mit anderen Worten, es gibt keine Duplikate von Daten im angegebenen Feld. Beispielsweise gibt es in der Produkttabelle einige Produkte mit demselben Produktnamen, und der SQL-Ausdruck von DISTINCT gibt nur einen Datensatz zurück, dessen Feld dieselben Produktnamendaten enthält:
Wählen Sie einen eindeutigen Produktnamen vom Produkt aus
Wenn Sie DISTINCT nicht einschließen, gibt die obige Beispielabfrage mehrere Datensätze zurück, die denselben Produktnamen enthalten.
Wenn nach der SELECT DISTINCT-Klausel mehrere Felder angegeben werden, werden die kombinierten Werte aller Felder in den Abfrageergebnissen nicht wiederholt.
DISTINCTROW gibt nicht alle doppelten Datensätze des angegebenen Felds zurück.
TOP n [PERCENT], gibt die vorherigen Datensätze oder den Prozentsatz der Datensätze zurück. Die Sortierreihenfolge kann mit der ORDER BY-Klausel angegeben werden. Finden Sie beispielsweise die Namen der zehn besten Studenten:
WÄHLEN SIE DEN TOP-10-Namen aus
VON Studenten
ORDER BY-Ergebnisse
Wenn Sie die ORDER BY-Klausel nicht einschließen, gibt die Abfrage beliebige 10 Datensätze aus der Student-Tabelle zurück.
TOP wählt nicht zwischen denselben Werten. Wenn das 10. und 11. Ergebnis gleich sind, gibt die Abfrage 11 Datensätze zurück.
Sie können PERCENT verwenden, um die Datensätze der ersten Prozentsätze festzulegen, um beispielsweise die Namen der besten 10 % der Schüler zu finden:
WÄHLEN SIE DEN TOP-10-PROZENT-Namen aus
VON Studenten
ORDER BY-Ergebnisse
Schauen wir uns ein Beispiel für die Verwendung dieses SQL-Befehls in einem ASP-Programm an.
Sie können Distinct verwenden, um eindeutige Datensätze zu finden. Das ASP-Programm rs7.asp lautet beispielsweise wie folgt: [Einfügen in Produkt (Codename, Name) Wählen Sie Distinct Codename, Name aus Produkt, wobei Codename = „C2000“ ist.] Verwenden Sie Distinct und Einfügen in, der neue Codename lautet C2000-Datensätze:
<%
„Eindeutiger Code, der Name bestimmt nur den Code, ob die Namen gleich sind, nur einen Datensatz hinzufügen, wenn sie gleich sind.“
sql = "In Produkt einfügen (Codename, Name) Eindeutigen Codenamen, Namen aus Produkt auswählen, wobei Code='C2000' ist"
Setze a = conn1.Execute(sql)
Setze rs3 = Server.CreateObject("ADODB.Recordset")
sql = „Wählen Sie * aus Produkt aus, wobei Code=‘C2000‘ ist“
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Code</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Name</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Preis</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Menge</FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("codename")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("name")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("price")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("quantity")%></TD>
</TR>
<%
rs3.MoveNext
Schleife
rs3.Schließen
%>
</TABLE>
WO
WHERE sucht nach Datensätzen, die bestimmte Bedingungen in der FROM-Tabelle erfüllen. WHERE wird in SELECT-, UPDATE- oder DELETE-Ausdrücken verwendet.
Wenn die WHERE-Klausel in der SELECT-Abfrage nicht angegeben ist, werden alle Daten in der Tabelle zurückgegeben. Wenn Sie mehrere Tabellen in SELECT abfragen, ohne die WHERE- oder JOIN-Klausel zu verwenden, ist das Abfrageergebnis das Produkt der Daten in mehreren Tabellen.
WHERE legt bestimmte Bedingungen fest, wie zum Beispiel:
FROM Produkt WHERE Kategorie = „Computer“: Zeigt die Auswahl von [Produkt] an, dessen [Kategorie] [Computer] ist.
WHERE Preis zwischen 1000 und 5000: Gibt an, dass der Preis zwischen 1000 und 5000 liegt.
Eine WHERE-Klausel kann bis zu 40 Operationsausdrücke enthalten, die durch logische Operatoren wie AND oder OR verbunden sind.
Wenn Sie bestimmte Bedingungen festlegen, fügen Sie je nach Feldtyp unterschiedliche Symbole davor und danach hinzu, zum Beispiel:
Text: Fügen Sie vor und nach einfache Anführungszeichen ein, zum Beispiel WHERE Category = 'Computer'.
Zahlen: Keine Vor- und Nachzeichen, z. B. WHERE-Menge > 100.
Datum: Fügen Sie vor und nach #-Zeichen hinzu, zum Beispiel WHERE date = #5/15/99#.
WHERE kann die folgenden BETWEEN-, LIKE- und IN-Operatoren verwenden.