MySQL – Abschnitt 6 – Hinzufügen, Löschen, Abfragen und Ändern von MySQL-Tabellen

1. Übersicht über das Hinzufügen, Löschen, Überprüfen und Ändern von MySQL-Tabellen

• CRUD kurz: Erstellen (hinzufügen), Abrufen (finden), Aktualisieren (ändern), Löschen (löschen).

• Das Operationsobjekt von CRUD sind die Daten in der Tabelle, einer typischen DML-Datenmanipulationssprache (Data Manipulation Language).


2.Erstellen Sie neue Daten

2.1. Befehl einfügen 

Der Einfügebefehl zum Hinzufügen neuer Daten lautet wie folgt:

INSERT [INTO] table_name [(column1 [, column2] ...)] VALUES (value_list1) [, (value_list2)] ...;

Erklären:

• In SQL stehen Großbuchstaben für Schlüsselwörter und Buchstaben in [ ] für optionale Elemente.
• Jede Werteliste in SQL stellt einen einzufügenden Datensatz dar, und jede Werteliste besteht aus mehreren einzufügenden Spaltenwerten.
• Die Spaltenliste in SQL, die verwendet wird, um anzugeben, in welche Spalte der Tabelle jeder Spaltenwert in jeder Werteliste eingefügt werden soll.

Erstellen Sie zur Demonstration unten eine Schülertabelle, die die sich selbst erhöhende Primärschlüssel-ID, die Schülernummer, den Namen und die QQ-Nummer enthält. folgendermaßen:

Überprüfen Sie die Tabellenstruktur nach dem Erstellen der Tabelle. Sie können sehen, dass die Tabellenstruktur wie folgt aussieht:

2.2. Einzeilige Daten + vollständige Spalteneinfügung

Einzelzeilendaten + vollständige Spalteneinfügung:

Im Folgenden wird die Einfügeanweisung verwendet, um Datensätze in die Schülertabelle einzufügen. Jedes Mal, wenn ein Datensatz in die Tabelle eingefügt wird und beim Einfügen des Datensatzes keine Spaltenliste angegeben wird, bedeutet dies, dass alle Spalten gemäß der Standardspaltenreihenfolge eingefügt werden Die Tabelle. Daher müssen in jedem eingefügten Datensatz die Spaltenwerte nacheinander in der Reihenfolge der Tabelle aufgelistet werden. folgendermaßen:

2.3. Mehrzeilige Daten + angegebene Spalteneinfügung

Mehrzeilige Daten + angegebene Spalteneinfügung:

Mit der INSERT-Anweisung können auch mehrere Datensätze gleichzeitig in die Tabelle eingefügt werden. Die eingefügten mehreren Datensätze werden durch Kommas getrennt, und beim Einfügen von Datensätzen können nur bestimmte Spalten zum Einfügen angegeben werden. folgendermaßen:

Hinweis: Beim Einfügen von Datensätzen können nur Spalten, die leer sein dürfen, oder selbstwachsende Felder ohne Angabe eines Werts eingefügt werden. Spalten, die nicht leer sein dürfen, müssen mit einem angegebenen Wert eingefügt werden, andernfalls wird ein Fehler gemeldet .

2.4. ELSE-UPDATE EINFÜGEN

Ansonsten aktualisiertes Nutzungsszenario einfügen:

Wenn beim Einfügen eines Datensatzes in eine Tabelle der Primärschlüssel oder eindeutige Schlüssel im einzufügenden Datensatz bereits vorhanden ist, schlägt das Einfügen aufgrund eines Primärschlüsselkonflikts oder eines eindeutigen Schlüsselkonflikts fehl. folgendermaßen:

Zu diesem Zeitpunkt können Sie optional einen synchronen Aktualisierungsvorgang durchführen:

• Wenn die Tabelle keine widersprüchlichen Daten enthält, werden die Daten direkt eingefügt.

• Wenn in der Tabelle widersprüchliche Daten vorhanden sind, werden die Daten in der Tabelle aktualisiert.

Die SQL für „Insert Other Update“ lautet wie folgt:

INSERT ... ON DUPLICATE UPDATE column1=value1 [, column2=value2] ...;

Erklären:

• In SQL stehen Großbuchstaben für Schlüsselwörter und Buchstaben in [ ] für optionale Elemente.
• Die Syntax nach INSERT in SQL ist dieselbe wie bei der vorherigen INSERT-Anweisung.
• Der Wert „column=value“ nach UPDATE gibt den Spaltenwert an, der aktualisiert werden muss, wenn im eingefügten Datensatz ein Konflikt auftritt.

sonst Update einfügen:

Wenn beispielsweise beim Einfügen eines Datensatzes in die Studententabelle kein Primärschlüsselkonflikt vorliegt, wird der Datensatz direkt eingefügt. Wenn ein Primärschlüsselkonflikt vorliegt, werden die Studentennummer und der Name des in Konflikt stehenden Datensatzes in der Tabelle aktualisiert . folgendermaßen:

Nachdem Sie die SQL zum Einfügen oder Aktualisieren ausgeführt haben, können Sie den Einfügungsstatus dieser Daten anhand der Anzahl der betroffenen Datenzeilen beurteilen:

• 0 Zeilen betroffen: Es gibt widersprüchliche Daten in der Tabelle, aber der Wert der widersprüchlichen Daten ist derselbe wie der angegebene Aktualisierungswert (die zu aktualisierenden Daten sind dieselben wie die Originaldaten).
• 1 Zeile betroffen: Die Tabelle enthält keine widersprüchlichen Daten und die Daten werden direkt eingefügt.
• 2 Zeilen betroffen: Die Tabelle enthält widersprüchliche Daten und die Daten wurden aktualisiert.

2.5. Daten ersetzen

Ersatzdaten:

• Wenn die Tabelle keine widersprüchlichen Daten enthält, werden die Daten direkt eingefügt.

• Wenn die Tabelle widersprüchliche Daten enthält, löschen Sie zuerst die widersprüchlichen Daten in der Tabelle und fügen Sie dann die Daten ein.

Um den oben genannten Effekt zu erzielen, müssen Sie beim Einfügen von Daten nur INSERT in der SQL-Anweisung in REPLACE ändern. Zum Beispiel:

Nachdem Sie den SQL-Befehl zum Datenaustausch ausgeführt haben, können Sie den Einfügungsstatus dieser Daten auch anhand der Anzahl der betroffenen Datenzeilen beurteilen:

• 1 Zeile betroffen: Die Tabelle enthält keine widersprüchlichen Daten und die Daten werden direkt eingefügt.

• 2 Zeilen betroffen: Die Tabelle enthält widersprüchliche Daten und die widersprüchlichen Daten werden gelöscht und erneut eingefügt.


3.Gefundene  Daten abrufen

3.1. Befehl auswählen

Die SQL zum Suchen der Daten lautet wie folgt:

SELECT [DISTINCT] {* | {column1 [, column2] ...}} FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...];

Erklären:

• In SQL stehen Großbuchstaben für Schlüsselwörter und Buchstaben in [ ] für optionale Elemente.

• Das | in { } bedeutet, dass die Anweisung links oder die Anweisung rechts ausgewählt werden kann.

Erstellen Sie zur Demonstration unten eine Punktetabelle, die die sich selbst erhöhende Primärschlüssel-ID, den Namen sowie die Chinesisch-, Mathematik- und Englischpunktzahl des Schülers enthält. folgendermaßen:

Überprüfen Sie die Tabellenstruktur nach dem Erstellen der Tabelle. Sie können sehen, dass die Tabellenstruktur wie folgt aussieht:

Fügen Sie als Nächstes einige Testdatensätze in die Tabelle ein, damit wir sie finden können. folgendermaßen:

3.2. SELECT-Spalten

Vollständige Spaltenabfrage:

Verwenden Sie beim Abfragen von Daten direkt *, um die Spaltenliste zu ersetzen. Dies bedeutet, dass eine vollständige Spaltenabfrage durchgeführt wird. Anschließend werden alle Spalteninformationen der gefilterten Datensätze angezeigt. folgendermaßen:

Hinweis: Im Allgemeinen wird die Verwendung von * für eine vollständige Spaltenabfrage nicht empfohlen, da die abgefragten Daten vom MySQL-Server über das Netzwerk an den Host übertragen werden müssen. Je mehr Spalten abgefragt werden, desto größer ist die Datenmenge Darüber hinaus kann sich die Durchführung von Abfragen über die gesamte Spalte auch auf die Verwendung von Indizes auswirken.

Abfrage der angegebenen Spalte:

Beim Abfragen von Daten können Sie auch nur die angegebenen Spalten abfragen. Zu diesem Zeitpunkt können Sie die abzufragenden Spalten in der Spaltenliste auflisten. folgendermaßen:

Das Abfragefeld ist ein Ausdruck:

Beim Abfragen von Daten können wir zusätzlich zu den Spaltennamen, die in der Spaltenliste aufgelistet werden können, auch Ausdrücke in der Spaltenliste auflisten. folgendermaßen:

Denn mit select lassen sich nicht nur Daten abfragen, sondern auch bestimmte Ausdrücke berechnen oder bestimmte Funktionen ausführen. folgendermaßen:

Wenn wir den Ausdruck in der Spaltenliste auflisten, wird der Ausdruck jedes Mal ausgeführt, wenn ein Datensatz herausgefiltert wird, und dann wird das Berechnungsergebnis des Ausdrucks als Spaltenwert des Datensatzes angezeigt.

Der Ausdruck in der Spaltenliste kann die vorhandenen Felder in der Tabelle enthalten. Zu diesem Zeitpunkt wird bei jedem Herausfiltern eines Datensatzes der entsprechende Spaltenwert im Datensatz dem Ausdruck zur Berechnung bereitgestellt. folgendermaßen:

Die Ausdrücke in der Spaltenliste können auch vorhandene Felder in mehreren Tabellen enthalten, dann können wir über die Ausdrücke aussagekräftigere Daten berechnen. folgendermaßen:

Geben Sie einen Alias ​​für Abfrageergebnisse an:

Die SQL zum Angeben eines Alias ​​für ein Abfrageergebnis lautet wie folgt:

SELECT column [AS] alias_name [...] FROM table_name;

Erklären:

• In SQL stehen Großbuchstaben für Schlüsselwörter und Buchstaben in [ ] für optionale Elemente.

Wenn Sie beispielsweise die Daten in der Notentabelle abfragen, fügen Sie die drei Fächer in jedem Datensatz hinzu und weisen Sie dann den Aliasnamen der Spalte, die dem Berechnungsergebnis entspricht, „Gesamtpunktzahl“ zu. folgendermaßen:

Ergebnisdeduplizierung:

Geben Sie beim Abfragen der Bewertungstabelle die Spalte an, die der mathematischen Bewertung der Abfrage entspricht, und Sie können sehen, dass die mathematische Bewertung wiederholte Bewertungen enthält. folgendermaßen:

Wenn Sie die Abfrageergebnisse deduplizieren möchten, können Sie nach der Auswahl in SQL „distinct“ hinzufügen. folgendermaßen:

3.3.WHERE-Bedingung

WO-Bedingung:

Der Unterschied beim Hinzufügen einer where-Klausel:

• Wenn die Where-Klausel beim Abfragen von Daten nicht angegeben wird, werden alle Datensätze in der Tabelle direkt als Datenquelle verwendet, um die Select-Anweisung nacheinander auszuführen.
• Wenn beim Abfragen von Daten die Where-Klausel angegeben wird, werden die Datensätze, die die Bedingungen erfüllen, beim Abfragen von Daten gemäß der Where-Klausel herausgefiltert, und dann wird die Select-Anweisung sequentiell ausgeführt, wobei die Datensätze, die die Bedingungen erfüllen, als Datenquelle verwendet werden .
In der where-Klausel können eine oder mehrere Filterbedingungen angegeben werden, und die logischen Operatoren AND oder OR werden verwendet, um jede Filterbedingung zu verknüpfen. Die in der where-Klausel häufig verwendeten Vergleichsoperatoren und logischen Operatoren sind unten aufgeführt.

Vergleichsoperatoren:

Logische Operatoren:

Fragen Sie Schüler, die in Englisch durchgefallen sind, nach ihren Englischergebnissen:

Geben Sie in der where-Klausel an, dass die Filterbedingung darin besteht, dass die englische Punktzahl weniger als 60 beträgt, und geben Sie in der Spaltenliste von select an, dass die abzufragenden Spalten Name und englische Punktzahl sind. folgendermaßen:

Fragen Sie die Schüler ab, deren Chinesisch-Ergebnisse zwischen 80 und 90 liegen, und ihre Chinesisch-Ergebnisse:

Geben Sie in der where-Klausel an, dass die Filterbedingung darin besteht, dass die chinesische Punktzahl größer oder gleich 80 und kleiner oder gleich 90 ist, und geben Sie in der Spaltenliste von select an, dass die abzufragenden Spalten Name und chinesische Punktzahl sind . folgendermaßen:

Darüber hinaus kann hier auch ZWISCHEN a0 UND a1 verwendet werden, um den Bereich der Sprachbewertung anzugeben. folgendermaßen:

Fragen Sie Schüler ab, deren Mathe-Ergebnisse 58 oder 59 oder 98 oder 99 sind, und ihre Mathe-Ergebnisse:

Geben Sie in der where-Klausel an, dass die Filterbedingung darin besteht, dass die Mathematikbewertung gleich 58 oder 59 oder 98 oder 99 ist, und geben Sie in der Spaltenliste von select an, dass die abzufragende Spalte Name und Mathematikbewertung ist. folgendermaßen:

Darüber hinaus kann hier auch die Methode IN(58,59,98,99) verwendet werden, um zu beurteilen, ob die Mathematikergebnisse den Screening-Anforderungen entsprechen. folgendermaßen:

Fragen Sie den Klassenkameraden mit den Nachnamen Zhao bzw. Zhao-Klassenkamerad:

Fragen Sie Studenten mit dem Nachnamen Zhao ab:

Verwenden Sie in der Where-Klausel den Fuzzy-Matching, um zu beurteilen, ob der Nachname des aktuellen Klassenkameraden Zhao ist (Sie müssen % verwenden, um mehrere Zeichen abzugleichen), und geben Sie die abzufragende Spalte als Namen in der Spaltenliste von select an. folgendermaßen:

Erkundigen Sie sich nach einem Klassenkameraden namens Zhao:

Beurteilen Sie in der Where-Klausel durch Fuzzy-Matching, ob der aktuelle Klassenkamerad Zhao ist (Sie müssen _ verwenden, um ein einzelnes Zeichen genau abzugleichen), und geben Sie die abzufragende Spalte als Namen in der Spaltenliste von select an. folgendermaßen:

Fragen Sie Schüler ab, deren Chinesisch-Ergebnisse besser sind als die Englisch-Ergebnisse:

Geben Sie in der where-Klausel an, dass die Filterbedingung darin besteht, dass die chinesische Punktzahl größer als die englische Punktzahl ist, und geben Sie in der Spaltenliste von select an, dass die abzufragenden Spalten Name, chinesische Punktzahl und englische Punktzahl sind. folgendermaßen:

Fragen Sie Studierende ab, deren Gesamtpunktzahl unter 200 Punkten liegt:

Fügen Sie der Spaltenliste von select eine Ausdrucksabfrage hinzu. Der Ausdruck der Abfrage ist die Summe der chinesischen, mathematischen und englischen Ergebnisse. Zur Vereinfachung der Beobachtung können Sie einen Alias ​​​​für die Spalte angeben, die dem Ausdruck entspricht, als „Gesamtpunktzahl“. und geben Sie den Filter in der where-Klausel an. Die Bedingung ist, dass die Summe der drei Subjekte weniger als 200 beträgt. folgendermaßen:

Es ist zu beachten, dass der in select angegebene Alias ​​nicht in der where-Klausel verwendet werden kann:

• Filtern Sie beim Abfragen von Daten zunächst qualifizierte Datensätze gemäß der where-Klausel heraus.
• Verwenden Sie dann die Datensätze, die die Bedingungen erfüllen, als Datenquelle, um die Select-Anweisung der Reihe nach auszuführen.
Das heißt, die Where-Klausel wird vor der Select-Anweisung ausgeführt, sodass in der Where-Klausel kein Alias ​​verwendet werden kann. Wenn in der Where-Klausel ein Alias ​​verwendet wird, wird beim Abfragen von Daten ein Fehler gemeldet. folgendermaßen:

Abfrage für Schüler, deren Chinesisch-Punktzahl mehr als 80 beträgt und deren Nachname nicht Zhao ist:

Geben Sie in der where-Klausel an, dass die Filterbedingung darin besteht, dass die chinesische Punktzahl größer als 80 ist, und verwenden Sie Fuzzy-Matching und nicht, um sicherzustellen, dass der Nachname des Schülers nicht Zhao ist, und geben Sie die Spalte an, die als Name und chinesische Punktzahl abgefragt werden soll Spaltenliste der Auswahl. folgendermaßen:

Fragen Sie Zhao, andernfalls ist die Gesamtpunktzahl größer als 200 und die Chinesisch-Punktzahl ist niedriger als die Mathematik-Punktzahl und die Englisch-Punktzahl ist größer als 80 Punkte:

Die Anforderung dieses Themas besteht darin, die Ergebnisse zu überprüfen. Die abgefragte Person ist entweder Zhao, oder die Gesamtpunktzahl ist größer als 200 Punkte und die chinesische Punktzahl ist kleiner als die Mathematiknote und die englische Punktzahl ist größer als 80 Punkte. Fuzzy-Matching Für die Abfrage sind Ausdrucksabfrage und logische Operationen erforderlich. Symbol. folgendermaßen:

NULL-Abfrage:

Bereiten Sie das Testformular vor:

Fragen Sie Studierende mit bekannten QQ-Nummern ab:

Geben Sie in der Where-Klausel an, dass die Filterbedingung lautet, dass die QQ-Nummer nicht NULL ist, und geben Sie in der Spaltenliste von select an, dass die abzufragenden Spalten Name und QQ-Nummer sind. folgendermaßen:

 

Fragen Sie Studierende mit unbekannten QQ-Nummern ab:

Geben Sie in der Where-Klausel an, dass die Filterbedingung lautet: QQ-Nummer ist NULL, und geben Sie in der Spaltenliste von select die abzufragenden Spalten als Namen und QQ-Nummer an. folgendermaßen:

Es ist zu beachten, dass beim Vergleich mit NULL-Werten der Operator <=> verwendet werden sollte und der Operator = keine korrekten Abfrageergebnisse erhalten kann. folgendermaßen:

Da der =-Operator NULL-unsicher ist, wird bei Verwendung =des Operators zum Vergleichen eines beliebigen Werts mit NULL NULL zurückgegeben. folgendermaßen:

Aber der <=>-Operator ist NULL-sicher. Die Verwendung des <=>-Operators zum Vergleich von NULL mit NULL gibt TRUE (1) zurück, und der Vergleich eines Nicht-NULL-Werts mit NULL gibt FALSE (0) zurück. folgendermaßen:

3.4. Ergebnissortierung

3.5. Paging-Ergebnisse filtern


4.Änderungsdaten aktualisieren


5.Daten löschen


6. Abfrageergebnisse einfügen


7. Aggregatfunktionen


8. Gruppenabfrage

Ich denke du magst

Origin blog.csdn.net/qq_45113223/article/details/131331129
Empfohlen
Rangfolge