Felder bearbeiten
Wenn Sie einen Feldwert aus einer Tabelle abrufen, wird der Wert normalerweise mit dem Feldnamen verknüpft, der beim Erstellen der Tabelle definiert wurde. Wenn Sie alle Autorennamen aus der Autorentabelle auswählen, werden alle Werte dem Feldnamen au_lname zugeordnet. In einigen Fällen müssen Sie jedoch Feldnamen bearbeiten. In einer SELECT-Anweisung können Sie den Standardfeldnamen ersetzen, indem Sie ihm einfach einen neuen Namen folgen lassen. Sie können beispielsweise einen intuitiveren und lesbareren Namen „Autor“ verwenden
Nachname statt Feldname au_lname:
SELECT au_lname „Autor Nachname“ FROM
Autoren
Wenn diese SELECT-Anweisung ausgeführt wird, ist der Wert aus dem Feld au_lname derselbe wie „Author Last“.
Name". Die Abfrageergebnisse können wie folgt lauten:
Nachname des Autors
……………………………………………………………… ……..
Weiß
Grün
Carson
O’Leary
Gerade
…
(23 Zeile(n) betroffen)
Beachten Sie, dass der Feldtitel nicht mehr au_lname lautet, sondern durch „Author Last“ ersetzt wird
Name ersetzt.
Sie können auch Operationen an Feldwerten durchführen, die von einer Tabelle zurückgegeben werden. Wenn Sie beispielsweise den Preis aller Bücher in der Titeltabelle verdoppeln möchten, können Sie die folgende
SELECT-Anweisung verwenden:
SELECT
PREIS*2 AB Titel
Wenn diese Abfrage ausgeführt wird, wird der Preis jedes Buchs verdoppelt, wenn es aus der Tabelle entfernt wird. Eine solche Manipulation der Felder führt jedoch nicht zu einer Änderung der in der Tabelle gespeicherten Buchpreise. Operationen an Feldern wirken sich nur auf die Ausgabe der SELECT-Anweisung aus, haben jedoch keinen Einfluss auf die Daten in der Tabelle. Um sowohl den ursprünglichen Preis eines Buches als auch den neuen Preis nach der Preiserhöhung anzuzeigen, können Sie die folgende Abfrage verwenden:
SELECT
Preis „Originalpreis“, Preis*2 „Neuer Preis“ VON
Titel
Bei der Übernahme der Daten aus den Tabellentiteln wird unter dem Titel Originalpreis der Originalpreis und unter dem Titel Neu der doppelte Preis angezeigt
Preis unten. Das Ergebnis könnte
so aussehen:
Originalpreis neu
Preis
……………………………………………………………….
39,98
11,95 23,90
5,98
39,98
…
(18 Reihe(n))
betroffen)
Sie können Feldwerte mit den meisten standardmäßigen mathematischen Operatoren manipulieren, z. B. Addieren (+), Subtrahieren (-), Multiplizieren (*) und Dividieren (/). Sie können auch
-Vorgänge für mehrere Felder gleichzeitig ausführen, zum Beispiel:
SELECT
preis*ytd_sales „Gesamtumsatz“ VON
Titel
In diesem Beispiel werden die Gesamtverkäufe für jede Buchart berechnet, indem der Preis mit der Verkaufsmenge multipliziert wird. Das Ergebnis dieser SELECT-Anweisung sieht folgendermaßen aus:
total
Umsatz
…………………………………………..
81.859,05
46.318,20
55.978 ,78
81.859,05
40.619,68
…
(18
betroffene Zeile(n)
Schließlich können Sie den Verkettungsoperator (er sieht aus wie ein Pluszeichen) verwenden, um zwei Zeichenfelder zu verbinden:
SELECT
au_fname+" "+au_lname "Autorenname" FROM
Autoren
In diesem Beispiel fügen Sie die Felder au_fname und au_lname durch ein Komma getrennt zusammen und geben den Titel der Abfrageergebnisse als Autor an
Name. Das Ausführungsergebnis dieser Anweisung sieht folgendermaßen aus:
Autor
Namen
…………………………………………………………………
Johnson White
Marjorie
Grün
Cheryl Carson
Michael O’Leary
Dean
Gerade
…
(23 Reihe(n)
betroffen)
Wie Sie sehen, bietet Ihnen SQL viel Kontrolle über die Abfrageergebnisse. Diese Vorteile sollten Sie bei der ASP-Programmierung voll ausnutzen. Die Verwendung von SQL zum Bearbeiten von Abfrageergebnissen ist fast immer
effizienter als die Verwendung eines Skripts, das dasselbe tut.
Abfrageergebnisse sortieren
Wie in der Einleitung dieses Kapitels betont, haben SQL-Tabellen keine inhärente Reihenfolge. Es macht beispielsweise keinen Sinn, den zweiten Datensatz aus einer Tabelle abzurufen. Aus SQL-Sicht steht kein Datensatz
vor einem anderen Datensatz.
Sie können jedoch die Reihenfolge der Ergebnisse einer SQL-Abfrage ändern. Standardmäßig werden Datensätze beim Abrufen aus der Tabelle in keiner bestimmten Reihenfolge angezeigt. Wenn beispielsweise das Feld au_lname aus der Tabelle
authors abgerufen wird, werden die Abfrageergebnisse wie folgt angezeigt:
au_lname
……………………………… ………….
Weiß
Grün
Carson
O'Leary
Gerade
…
( dreiundzwanzig
betroffene Zeile(n)
Es ist sehr umständlich, sich eine Liste mit Namen in keiner bestimmten Reihenfolge anzusehen. Es wäre viel einfacher, die Namen zu lesen, wenn sie in alphabetischer Reihenfolge angeordnet wären. Durch die Verwendung von ORDER
Mit der BY-Klausel können Sie
erzwingen, dass die Ergebnisse einer Abfrage in aufsteigender Reihenfolge sortiert werden, wie folgt:
SELECT au_lname FROM Authors ORDER BY
au_lname
Wenn diese SELECT-Anweisung ausgeführt wird, werden die Autorennamen in alphabetischer Reihenfolge angezeigt. BEFEHL
Die BY-Klausel sortiert die Autorennamen in aufsteigender Reihenfolge.
Sie können ORDER auch für mehrere Spalten gleichzeitig verwenden
BY-Klausel. Wenn Sie beispielsweise sowohl das Feld au_lname als auch das Feld au_fname in aufsteigender Reihenfolge anzeigen möchten, müssen Sie für beide Felder
verwenden.Sortieren:
AUSWÄHLEN
au_lname,au_fname FROM Authors ORDER BY au_lname
,au_fname
Diese Abfrage sortiert die Ergebnisse zunächst nach dem Feld au_lname und dann nach dem Feld au_fname. Datensätze werden in der folgenden Reihenfolge abgerufen:
au_lname
au_fname
……………………………………………………………….
Bennet Abraham
Ringer
Albert
Ringer Anne
Smith Meander
…
(23 Reihe(n)
betroffen)
Beachten Sie, dass es zwei Autoren mit demselben Namen Ringer gibt. Ein Autor namens Albert Ringer erscheint als Anne
Vor dem Autor von Ringer liegt das daran, dass der Nachname Albert in alphabetischer Reihenfolge vor dem Nachnamen Anne stehen sollte.
Wenn Sie die Abfrageergebnisse in umgekehrter Reihenfolge sortieren möchten, können Sie das Schlüsselwort DESC verwenden. Das Schlüsselwort DESC sortiert die Abfrageergebnisse in absteigender Reihenfolge, wie im folgenden Beispiel gezeigt:
SELECT
au_lname,au_fname FROM Authors
WHERE au_lname=“Ringer“ ORDER BY au_lname
,au_fname DESC
Diese Abfrage ruft alle Autorendatensätze mit dem Namen Ringer aus der Autorentabelle ab. BEFEHL
Die BY-Klausel sortiert die Abfrageergebnisse in absteigender Reihenfolge basierend auf dem Vor- und Nachnamen des Autors. Das Ergebnis sieht
so aus:
au_lname
au_fname
……………………………………………………………………………………………………….
Klingelton
Anne
Ringer Albert
(2 Reihe(n)
Affectec)
Beachten Sie, dass in dieser Tabelle der Nachname Anne vor dem Nachnamen Albert erscheint. Autorennamen werden in absteigender Reihenfolge angezeigt.
Sie können ein Abfrageergebnis auch nach numerischen Feldern sortieren. Wenn Sie beispielsweise die Preise aller Bücher in absteigender Reihenfolge abrufen möchten, können Sie die folgende SQL-Abfrage verwenden:
SELECT
Preis AB Titel SORTIEREN NACH Preis
DESC
Diese SELECT-Anweisung ruft die Preise aller Bücher aus der Tabelle ab. Bei der Anzeige der Ergebnisse werden Bücher mit niedrigen Preisen zuerst und Bücher mit hohen Preisen zuletzt angezeigt.
Warnung:
Sortieren Sie die Abfrageergebnisse nicht, es sei denn, dies ist besonders erforderlich, da der Server einige Anstrengungen unternehmen muss, um diese Arbeit abzuschließen. Das heißt mit ORDER
VON
Die Ausführung der SELECT-Anweisung der Klausel
dauert länger als die der gewöhnlichen SELECT-Anweisung.
Verschiedene Datensätze abrufen
Eine Tabelle kann doppelte Werte in derselben Spalte haben. Beispielsweise gibt es in der Autorentabelle der Datenbank pubs zwei Autoren mit dem Namen Ringer. Wenn Sie alle
Namen aus dieser Tabelle übernehmen, wird der Name Ringer zweimal angezeigt.
In bestimmten Situationen sind Sie möglicherweise nur daran interessiert, unterschiedliche Werte aus einer Tabelle abzurufen. Wenn ein Feld doppelte Werte enthält, möchten Sie möglicherweise, dass jeder Wert nur einmal ausgewählt wird. Dies können Sie
mit dem Schlüsselwort DISTINCT tun:
SELCET
AU_LNAME VON AUTOREN WO UNTERSCHEIDEN
au_lname="Ringer"
Wenn diese SELECT-Anweisung ausgeführt wird, wird nur ein Datensatz zurückgegeben. Durch die Aufnahme des Schlüsselworts DISTINCT in die SELECT-Anweisung können Sie alle doppelten Werte entfernen. Angenommen,
verfügt über eine Tabelle mit in einer Newsgruppe veröffentlichten Informationen und Sie möchten die Namen aller Personen abrufen, die Informationen in dieser Newsgruppe veröffentlicht haben, dann können Sie das Schlüsselwort DISTINCT verwenden. Jeder Benutzer
wird nur einmal genannt – obwohl einige Benutzer mehr als einen Beitrag veröffentlichen.
Warnung:
Bestellung gefällt mir
Wie bei der BY-Klausel erhöht auch das Erzwingen der Rückgabe unterschiedlicher Werte durch den Server den Betriebsaufwand. Blessings musste einige Zeit damit verbringen, dies zu erledigen. Daher
verwenden Sie das Schlüsselwort DISTINCT nicht, wenn es nicht erforderlich ist.
Erstellen Sie eine neue Tabelle
Wie bereits erwähnt, werden alle Daten in der Datenbank in Tabellen gespeichert. Datentabellen umfassen Zeilen und Spalten. Spalten bestimmen die Art der Daten in der Tabelle. Zeilen enthalten tatsächliche Daten.
Zum Beispiel hat die Tabelle „authors“ in der Datenbank „pubs“ neun Felder. Eines der Felder heißt au_lname und dient zum Speichern der Namensinformationen des Autors. Jedes Mal, wenn ein neuer Autor zu dieser Tabelle hinzugefügt wird, wird der Name des Autors zu diesem Feld hinzugefügt, wodurch ein neuer Datensatz erstellt wird.
Durch die Definition von Feldern können Sie eine neue Tabelle erstellen. Jedes Feld hat einen Namen und einen bestimmten Datentyp (der Datentyp wird später im Abschnitt „Feldtyp“ beschrieben). Das Feld au_lname speichert beispielsweise Zeichendaten. Ein Feld kann auch andere Datentypen speichern.
Verwenden Sie SQL
Sever, es gibt viele Möglichkeiten, eine neue Tabelle zu erstellen. Sie können eine SQL-Anweisung ausführen oder den SQL Transaction Manager (SQL Enterprise) verwenden
Manager), um eine neue Tabelle zu erstellen. Im nächsten Abschnitt erfahren Sie, wie Sie mithilfe von SQL-Anweisungen eine neue Tabelle erstellen.