Datensätze aktualisieren
Um einen oder mehrere Datensätze zu ändern, die bereits in der Tabelle vorhanden sind, sollte SQL verwendet werden
UPDATE-Anweisung. Wie die DELETE-Anweisung kann die UPDATE-Anweisung die WHERE-Klausel verwenden, um bestimmte Datensätze zum Aktualisieren auszuwählen. Bitte sehen Sie sich dieses Beispiel an:
UPDATE mytable
SET first_column=’Updated!’ WHERE second_column=’Update Me!’
Dieses UPDATE
Die Anweisung aktualisiert den Wert aller Felder „second_column“ auf „Update“.
Ich!‘ Rekord. Für alle ausgewählten Datensätze wird der Wert des Feldes first_column auf „Aktualisiert!“ gesetzt.
Das Folgende ist die vollständige Syntax der UPDATE-Anweisung:
UPDATE
{table_name|view_name} SET
[{TABLE_NAME | variable_and_column_listn }]]
[WHERE
Klausel]
Hinweis:
Sie können die UPDATE-Anweisung für Textfelder verwenden. Wenn Sie jedoch eine sehr lange Zeichenfolge aktualisieren müssen, sollten Sie die UPDATETEXT-Anweisung verwenden. Dieses Material ist für dieses Buch zu fortgeschritten und wird nicht besprochen. Weitere Informationen finden Sie bei Microsoft
SQL-Server
Dokumentation.
Wenn Sie keine WHERE-Klausel angeben, werden alle Datensätze in der Tabelle aktualisiert. Manchmal ist das nützlich. Wenn Sie beispielsweise den Preis aller Bücher in der Titeltabelle verdoppeln möchten, können Sie UPDATE wie folgt verwenden
Aussage:
Sie können auch mehrere Felder gleichzeitig aktualisieren. Beispielsweise aktualisiert die folgende UPDATE-Anweisung gleichzeitig die drei Felder first_column, second_column undthird_column:
UPDATE
mytable SET
first_column=’Aktualisiert!’
Second_column=’Aktualisiert!’
Third_column=’Aktualisiert!’
WO
first_column=’Update
Me1’
Tipp:
SQL ignoriert zusätzliche Leerzeichen in der Anweisung. Sie können SQL-Anweisungen in jedem Format schreiben, das für Sie am einfachsten zu lesen ist.
Verwenden Sie SELECT
Erstellen Sie Datensätze und Tabellen
Sie haben vielleicht bemerkt, dass INSERT
Die Anweisung unterscheidet sich ein wenig von der DELETE-Anweisung und der UPDATE-Anweisung darin, dass sie jeweils nur einen Datensatz bearbeitet. Es gibt jedoch eine Möglichkeit, INSERT durchzuführen
Anweisung zum gleichzeitigen Hinzufügen mehrerer Datensätze. Dazu müssen Sie eine INSERT-Anweisung mit einer SELECT-Anweisung kombinieren, etwa so:
INSERT mytable
(erste_Spalte,zweite_Spalte)
SELECT
another_first,another_second
FROM anothertable
WO
another_first=’Kopieren
Ich!‘
Diese Anweisung kopiert Datensätze von anothertable nach mytable. Nur der Wert des Feldes another_first in der Tabelle anothertable ist ‚Copy‘
Mich! ’ Datensätze werden kopiert.
Beim Erstellen einer Sicherung von Datensätzen in einer Tabelle wird diese Form von INSERT verwendet
Aussagen sind sehr nützlich. Mit dieser Methode können Sie Datensätze von einer Tabelle in eine andere kopieren, bevor Sie sie löschen.
Wenn Sie die gesamte Tabelle kopieren müssen, können Sie SELECT INTO verwenden
Stellungnahme. Die folgende Anweisung erstellt beispielsweise eine neue Tabelle mit dem Namen newtable, die alle Daten für die Tabelle mytable enthält:
SELECT * INTO newtable
AUS
mytable
Sie können auch festlegen, dass nur bestimmte Felder zum Erstellen dieser neuen Tabelle verwendet werden. Geben Sie dazu einfach in der Feldliste die Felder an, die Sie kopieren möchten. Alternativ können Sie WHERE verwenden
-Klausel, um die in die neue Tabelle kopierten Datensätze zu begrenzen. Im folgenden Beispiel wird nur der Wert des Felds „second_columnd“ kopiert, der „Copy“ entspricht
Ich!‘ first_column-Feld des Datensatzes.
SELECT first_column INTO newtable
FROM
mytable
WHERE second_column=’Copy
Ich!‘
Es ist schwierig, eine bereits erstellte Tabelle mit SQL zu ändern. Wenn Sie beispielsweise ein Feld zu einer Tabelle hinzufügen, gibt es keine einfache Möglichkeit, es zu entfernen. Wenn Sie einem Feld außerdem versehentlich den falschen Datentyp zuweisen, können Sie es nicht ändern. Mit den in diesem Abschnitt beschriebenen SQL-Anweisungen können Sie jedoch beide Probleme umgehen.
Angenommen, Sie möchten ein Feld aus einer Tabelle löschen. Verwenden Sie SELECT
HINEIN
-Anweisung können Sie eine Kopie der Tabelle ohne die Felder erstellen, die Sie löschen möchten. Dadurch können Sie das Feld löschen und gleichzeitig die Daten behalten, die Sie nicht löschen möchten.
Wenn Sie den Datentyp eines Feldes ändern möchten, können Sie eine neue Tabelle mit Feldern des richtigen Datentyps erstellen. Sobald die Tabelle erstellt ist, können Sie die UPDATE-Anweisung mit SELECT verwenden
Anweisung, um alle Daten in der Originaltabelle in die neue Tabelle zu kopieren. Mit dieser Methode können Sie die Struktur der Tabelle ändern und die Originaldaten speichern.
Aggregationsfunktionen
Bisher haben Sie nur gelernt, wie Sie anhand bestimmter Bedingungen einen oder mehrere Datensätze aus einer Tabelle abrufen. Angenommen, Sie möchten Statistiken zu Datensätzen in einer Tabelle erstellen. Wenn Sie beispielsweise die Ergebnisse einer Umfrage zählen möchten, die in einer Tabelle gespeichert sind. Oder Sie möchten wissen, wie viel Zeit ein Besucher durchschnittlich auf Ihrer Website verbringt. Um Statistiken zu beliebigen Datentypen in einer Tabelle zu erstellen, müssen Sie Aggregatfunktionen verwenden.
Microsoft
SQL
Es werden fünf Arten von Aggregatfunktionen unterstützt. Sie können die Anzahl der Datensätze zählen: Durchschnitt, Minimum, Maximum oder Summe. Wenn Sie eine Aggregatfunktion verwenden, gibt diese einfach eine Zahl zurück, die einen dieser statistischen Werte darstellt.
Hinweis:
Um den Rückgabewert einer Set-Funktion auf Ihrer Asp-Webseite zu verwenden, müssen Sie dem Wert einen Namen geben. Dazu können Sie der Aggregatfunktion einen Feldnamen in der SELECT-Anweisung folgen, wie im folgenden Beispiel:
SELECT
AVG(vote) ‚the_average‘ FROM Opinion
In diesem Beispiel wird der Durchschnitt der Stimmen genannt
the_average. Jetzt können Sie diesen Namen in der Datenbankmethode Ihrer ASP-Webseite verwenden.
Zählt die Anzahl der Feldwerte
Die Funktion COUNT() ist vielleicht die nützlichste Aggregatfunktion. Mit dieser Funktion können Sie zählen, wie viele Datensätze eine Tabelle enthält. Hier ist ein Beispiel:
SELECT
COUNT(au_lname) FROM Authors
Dieses Beispiel berechnet die Namen in der Autorentabelle (last
Name) Nummer. Wenn derselbe Name mehr als einmal vorkommt, wird der Name mehrfach gezählt. Wenn Sie wissen möchten, wie viele Autoren einen bestimmten Namen haben, können Sie die WHERE-Klausel verwenden, wie im folgenden Beispiel gezeigt:
SELECT
COUNT(au_lname) FROM Authors WHERE
au_lname=’Ringer’
Dieses Beispiel gibt die Anzahl der Autoren mit dem Namen „Ringer“ zurück. Wenn der Name zweimal in der Autorentabelle vorkommt, ist der Rückgabewert dieser Funktion 2.
Angenommen, Sie möchten die Anzahl der Autoren mit unterschiedlichen Namen wissen. Sie können diese Nummer erhalten, indem Sie das Schlüsselwort DISTINCT verwenden. Wie im folgenden Beispiel gezeigt:
SELECT
COUNT(DISTINCT au_lname) FROM
Autoren
Wenn der Name „Ringer“ mehr als einmal vorkommt, wird er nur einmal gezählt. Schlüsselwort DISTINCT
Es wird entschieden, dass nur voneinander verschiedene Werte berechnet werden.
Normalerweise werden Nullwerte in einem Feld ignoriert, wenn Sie COUNT() verwenden. Im Allgemeinen ist es das, was Sie wollen. Wenn Sie jedoch nur die Anzahl der Datensätze in der Tabelle wissen möchten, müssen Sie alle Datensätze in der Tabelle zählen – unabhängig davon, ob sie Nullwerte enthalten. Hier ist ein Beispiel dafür:
SELECT
ZÄHLEN(*) VON
Autoren
Beachten Sie, dass die Funktion COUNT() keine Felder angibt. Diese Anweisung zählt alle Datensätze in der Tabelle, einschließlich Datensätze mit Nullwerten. Daher ist es nicht erforderlich, bestimmte zu berechnende Felder anzugeben.
Die Funktion COUNT() ist in vielen verschiedenen Situationen nützlich. Angenommen, Sie verfügen über eine Tabelle mit den Ergebnissen einer Umfrage zur Qualität Ihrer Website. Diese Tabelle enthält ein Feld namens „Abstimmung“. Der Wert dieses Felds ist entweder 0 oder 1. 0 bedeutet eine negative Abstimmung und 1 bedeutet eine positive Abstimmung. Um die Anzahl der Upvotes zu bestimmen, können Sie Folgendes AUSWÄHLEN
Aussage:
SELECT COUNT(vote) FROM Opinion_table WHERE
vote=1
Berechnen Sie den Durchschnitt eines Feldes
Mit der Funktion COUNT() können Sie zählen, wie viele Werte es in einem Feld gibt. Aber manchmal muss man den Durchschnitt dieser Werte berechnen. Mit der Funktion AVG() können Sie den Durchschnitt aller Werte in einem Feld zurückgeben.
Angenommen, Sie führen eine komplexere Umfrage auf Ihrer Website durch. Besucher können zwischen 1 und 10 abstimmen, um anzugeben, wie sehr ihnen Ihre Website gefällt. Sie speichern die Abstimmungsergebnisse in einem Feld vom Typ INT namens „vote“. Um den Durchschnitt der Stimmen Ihrer Benutzer zu berechnen, müssen Sie die Funktion AVG() verwenden:
SELECT
AVG(Abstimmung) VON
Meinung
Der Rückgabewert dieser SELECT-Anweisung stellt die durchschnittliche Benutzerpräferenz für Ihre Website dar. Die Funktion AVG() kann nur für numerische Felder verwendet werden. Diese Funktion ignoriert bei der Berechnung des Durchschnitts auch Nullwerte.
Berechnen Sie die Summe der Feldwerte
Gehen Sie davon aus, dass Ihre Website zum Verkauf von Karten verwendet wird und seit zwei Monaten aktiv ist. Es ist an der Zeit, zu berechnen, wie viel Geld Sie verdient haben. Angenommen, es gibt eine Tabelle mit dem Namen „Bestellungen“, in der die Bestellinformationen aller Besucher aufgezeichnet werden. Um die Summe aller bestellten Mengen zu berechnen, können Sie die Funktion SUM() verwenden:
SELECT
SUM(purchase_amount) FROM
Der Rückgabewert der Funktion „Orders
SUM()“ stellt den Durchschnitt aller Werte im Feld „purchase_amount“ dar. Der Datentyp des Feldes Purchase_amount kann MONEY sein, Sie können die Funktion SUM() aber auch für andere numerische Felder verwenden.
Gibt den Maximal- oder Minimalwert zurück
Angenommen, Sie haben eine Tabelle, die die Ergebnisse einer Umfrage auf Ihrer Website enthält. Besucher können zwischen 1 und 10 wählen
Der Wert stellt die Bewertung Ihrer Website dar. Wenn Sie die höchste Bewertung erfahren möchten, die Besucher für Ihre Website haben, können Sie die folgende Anweisung verwenden:
SELECT MAX(vote) FROM
Meinung
Vielleicht wünschen Sie sich, dass jemand Ihre Website hoch bewertet hätte. Mit der Funktion MAX() können Sie den Maximalwert aller Werte eines numerischen Felds ermitteln. Wenn jemand auf Ihrer Website für die Nummer 10 gestimmt hat, gibt die Funktion MAX() diesen Wert zurück.
Wenn Sie andererseits die niedrigste Bewertung Ihrer Website durch Besucher wissen möchten, können Sie die Funktion MIN() verwenden, wie im folgenden Beispiel gezeigt:
SELECT
MIN(Abstimmung) VON
Meinung
Die Funktion MIN() gibt den Mindestwert unter allen Werten eines Feldes zurück. Wenn das Feld leer ist, gibt die Funktion MIN() einen Nullwert zurück.
Andere häufig verwendete SQL-Ausdrücke, Funktionen und Prozeduren
In diesem Abschnitt werden einige andere SQL-Technologien vorgestellt. Sie erfahren, wie Sie Daten aus einer Tabelle abrufen, deren Feldwerte in einem bestimmten Bereich liegen. Außerdem erfahren Sie, wie Sie Feldwerte von einem Typ in einen anderen konvertieren und wie Sie Zeichenfolgen- und Datums-/Uhrzeitdaten bearbeiten. Abschließend erfahren Sie, wie Sie auf einfache Weise eine E-Mail versenden können.
Erhalten Sie Daten, indem Sie einen Wertebereich abgleichen
Angenommen, Sie haben eine Tabelle, die die Ergebnisse einer Umfrage auf Ihrer Website enthält. Jetzt möchten Sie allen Besuchern, die Ihre Website mit einer Bewertung zwischen 7 und 10 bewertet haben, ein schriftliches Dankeschön senden. Um die Namen dieser Personen zu erhalten, können Sie das folgende SELECT verwenden
Aussage:
SELECT username FROM meinung WHERE vote>6 und
vote<11
Diese SELECT-Anweisung wird Ihre Anfrage erfüllen. Das gleiche Ergebnis erhalten Sie mit der folgenden SELECT-Anweisung:
SELECT
Benutzername VON Meinung WO Abstimmung ZWISCHEN 7 UND 10
ThisSELECT
Die Anweisung entspricht der vorherigen Anweisung. Welche Anweisung verwendet werden soll, hängt vom Programmierstil ab, aber Sie werden feststellen, dass Sie den Ausdruck BETWEEN verwenden
Aussagen sind leichter zu lesen.
Angenommen, Sie möchten nur die Namen der Besucher abrufen, die mit 1 oder 10 für Ihre Website gestimmt haben. Um diese Namen aus der Meinungstabelle abzurufen, können Sie das folgende SELECT verwenden
Aussage:
SELECT username FROM meinung WHERE vote=1 oder
vote
Diese SELECT-Anweisung liefert die richtigen Ergebnisse, es gibt keinen Grund, sie nicht zu verwenden. Es gibt jedoch einen gleichwertigen Weg. Das gleiche Ergebnis kann mit einem SELECT wie diesem erzielt werden:
SELECT
Benutzername FROM Meinung WO Stimme IN (1,10)
Achten Sie auf die Verwendung des Ausdrucks IN. Dieses SELECT
Die Anweisung ruft nur Datensätze ab, deren Stimmenwert einem der Werte in Klammern entspricht.
Sie können IN auch zum Abgleichen von Zeichendaten verwenden. Angenommen, Sie möchten nur die Stimmenwerte von Bill Gates oder Präsident Clinton extrahieren. Sie können SELECT wie folgt verwenden
Aussage:
SELECT vote FROM meinung WHERE Benutzername IN („Bill Gates“, „Präsident
Clinton’)
Schließlich können Sie den Ausdruck NOT zusammen mit BETWEEN oder IN verwenden. Um beispielsweise die Namen von Personen abzurufen, deren Stimmenwert nicht zwischen 7 und 10 liegt, können Sie das folgende SELECT verwenden
Aussage:
Benutzernamen aus der Meinung auswählen, in der nicht zwischen 7 und stimmen
10
Um Datensätze auszuwählen, deren Wert in einem bestimmten Feld nicht in einer Wertespalte enthalten ist, können Sie NOT und IN gleichzeitig verwenden, wie im folgenden Beispiel gezeigt:
SELECT vote AUS
Meinung
WO Benutzername NICHT IN („Bill Gates“, „Präsident
Clinton’)
Sie müssen in Ihrer SQL-Anweisung nicht BETWEEN oder IN verwenden, aber um Ihre Abfrage natürlicher zu gestalten, sind diese beiden Ausdrücke hilfreich.
Das Obige ist der Inhalt von SQL Data Operation Basics (Intermediate) 8. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (m.sbmmt.com). !