[mysql] – Tabellen hinzufügen, löschen, ändern und abfragen

SQL

 

Inhaltsverzeichnis

Präambel 

(1) Vorgang erstellen

1. Einzelne Datenzeile + vollständige Spalteneinfügung

2. Mehrere Datenzeilen + angegebene Spalteneinfügung

3. Andernfalls Update einfügen

4. Direkter Ersatz

(2) Abrufvorgang

 1. Spalte SELECT

1️⃣ Vollständige Spaltenabfrage

2️⃣Spaltenabfrage angeben

3️⃣Das Abfragefeld ist ein Ausdruck

4️⃣ Geben Sie einen Alias ​​für das Abfrageergebnis an

5️⃣Ergebnisdeduplizierung

2, WHERE-Bedingung

3. Sortierung der Ergebnisse

4. Paging-Ergebnisse filtern

(3) Aktualisierungsvorgang

(4) Vorgang löschen

1. Daten löschen

2. Tabelle abschneiden

(5) Abfrageergebnisse einfügen

(6) Aggregationsfunktion

(7) Verwendung der Group-by-Klausel

Zusammenfassen


Präambel 

CRUD bezieht sich auf allgemeine Vorgänge auf Datenspeichersystemen, einschließlich Erstellen, Abrufen, Aktualisieren und Löschen. Es handelt sich um ein allgemeines Datenbetriebsmodell, das häufig in Datenbanken und anderen Datenverwaltungssystemen verwendet wird.

Nachfolgend finden Sie eine kurze Beschreibung jedes Vorgangs:

  1. Erstellen : Wird zum Erstellen neuer Datensätze oder Entitäten im Datenspeichersystem verwendet. Dies kann das Einfügen eines neuen Datensatzes, das Erstellen einer neuen Datei oder das Hinzufügen eines neuen Datensatzes zur Datenbank usw. sein.

  2. Abrufen : Wird zum Lesen vorhandener Datensätze oder Entitäten aus dem Datenspeichersystem verwendet. Dies kann das Abfragen von Daten in einer Datenbank basierend auf bestimmten Bedingungen, das Lesen des Inhalts einer Datei oder das Abrufen von Eigenschaftswerten eines bestimmten Objekts usw. sein.

  3. Aktualisieren : Wird zum Ändern vorhandener Datensätze oder Entitäten im Datenspeichersystem verwendet. Dies kann das Aktualisieren von Informationen in einer Datenbank, das Ändern des Inhalts einer Datei oder das Ändern des Eigenschaftswerts eines Objekts sein.

  4. Löschen : Wird verwendet, um einen vorhandenen Datensatz oder eine vorhandene Entität aus dem Datenspeichersystem zu entfernen. Dies kann das Löschen von Daten aus der Datenbank, das Löschen von Dateien oder das Zerstören von Objekten usw. sein.

Diese Operationen können weiter erweitert und kombiniert werden, um komplexere Anforderungen zu erfüllen. Mit den oben genannten Vorgängen können Sie die Daten in der Tabelle hinzufügen, löschen, ändern und abfragen.


(1) Vorgang erstellen

Die CREATE-Operation in MySQL wird zum Erstellen von Objekten wie neuen Datenbanken, Tabellen, Ansichten, Indizes oder gespeicherten Prozeduren verwendet. Im Folgenden finden Sie eine detaillierte Erläuterung mehrerer häufiger Verwendungszwecke der CREATE-Operation in MySQL:

Grammatik:

INSERT [INTO] table_name
    [(column [, column] ...)]
    VALUES (value_list) [, (value_list)] ...

value_list: value, [, value] ...

Fall:

  • Als nächstes erstelle ich einfach eine Tabelle mit dem Namen „Studenten“. Einzelheiten wie folgt:
 CREATE TABLE students (
    -> id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> sn INT NOT NULL UNIQUE COMMENT '学号',
    -> name VARCHAR(20) NOT NULL,
    -> qq VARCHAR(20) unique key
    -> );

  • Insbesondere wie in der folgenden Abbildung gezeigt:


1. Einzelne Datenzeile + vollständige Spalteneinfügung

 【veranschaulichen】

  1. Da es auf der linken Seite des Werts keine Klammern gibt, die das Einfügen anzeigen, ist hier die Standardeinstellung das vollständige Einfügen.
  2. Hier müssen Sie beim Einfügen keine ID angeben (natürlich müssen Sie zu diesem Zeitpunkt explizit Daten in diese Spalten einfügen), dann verwendet MySQL den Standardwert für die automatische Inkrementierung.
  3. Die Reihenfolge der Spalten und Werte in der Einfügeanweisung sollte mit der Reihenfolge der in der Tabelle definierten Spalten übereinstimmen und die entsprechenden Werte sollten in Klammern nach dem Schlüsselwort VALUES angegeben werden. Wenn einige Spalten leer sein dürfen, kann NULL zu ihrer Darstellung verwendet werden.

2. Mehrere Datenzeilen + angegebene Spalteneinfügung

Zeigen Sie den Code direkt an. Einzelheiten wie folgt:

  •  Fügen Sie zwei Datensätze ein. Die Anzahl der value_list muss mit der Anzahl und Reihenfolge der angegebenen Spalten übereinstimmen.

3. Andernfalls Update einfügen

Das Einfügen schlägt fehl , da der dem Primärschlüssel oder eindeutigen Schlüssel entsprechende Wert bereits vorhanden ist:

In der obigen Situation können wir die Syntax des Synchronisierungsaktualisierungsvorgangs selektiv ausführen:
 

INSERT ... ON DUPLICATE KEY UPDATE
    column = value [, column = value] ...

Codebeispiel: 

  • Wenn wir Daten einfügen, wird später oft eine Zeile angezeigt: x Zeile betroffen 


4. Direkter Ersatz

Seine Rolle ist sehr einfach:

  1. -- Wenn es keinen Konflikt im Primärschlüssel oder eindeutigen Schlüssel gibt, fügen Sie ihn direkt ein.
  2. – Wenn der Primärschlüssel oder der eindeutige Schlüssel in Konflikt geraten, löschen Sie ihn und fügen Sie ihn dann ein.
     

Codeanzeige:


(2) Abrufvorgang

Mit der Retrieve-Operation werden Daten aus der Datenbank abgerufen. In MySQL besteht die häufig verwendete Abrufoperation darin, die SELECT- Anweisung zum Abfragen zu verwenden.

Grammatik:

SELECT
    [DISTINCT] {* | {column [, column] ...}
    [FROM table_name]
    [WHERE ...]
    [ORDER BY column [ASC | DESC], ...]
    LIMIT ...

Fall:

  •  Als nächstes führen wir die Einfügeoperation durch:


 1. Spalte SELECT


1️⃣Vollständige Spaltenabfrage

Um die gesamte Spalte einer Tabelle in MySQL abzufragen, können Sie die Anweisung verwenden. Dadurch werden Daten für alle Spalten und alle Zeilen in der Tabelle zurückgegeben. SELECT *

  • Fragen Sie als Nächstes die obige Tabelle ab:

 【veranschaulichen】

Es wird im Allgemeinen nicht empfohlen, * für die Abfrage vollständiger Spalten zu verwenden:

  • 1. Je mehr Spalten abgefragt werden, desto größer ist die Datenmenge, die übertragen werden muss.
  • 2. Kann die Verwendung des Index beeinträchtigen. (Der Index wird später im Kurs erklärt)
     

2️⃣Spaltenabfrage angeben
 

Aufgrund der Unzulänglichkeiten von Vollspaltenabfragen ist es daher am besten, die erforderlichen Spalten explizit anzugeben, um die Datenübertragungs- und Abfragezeit zu reduzieren.

  • Wenn Sie nur eine bestimmte Spalte in der Tabelle abfragen müssen, können Sie diese *durch den Namen der erforderlichen Spalte ersetzen, zSELECT 列1, 列2, ... FROM 表名;
  • Dies verbessert die Abfrageeffizienz und reduziert unnötige Datenübertragungen.

3️⃣Das Abfragefeld ist ein Ausdruck

In MySQL können Sie Ausdrücke zum Abfragen von Feldern verwenden. Ausdrücke können mathematische Operationen, Zeichenfolgenoperationen, logische Operationen oder Funktionsaufrufe usw. sein.

  • ①Der Ausdruck enthält keine Felder

  • ②Der Ausdruck enthält ein Feld

  •  ③Der Ausdruck enthält mehrere Felder

4️⃣ Geben Sie einen Alias ​​für das Abfrageergebnis an

In MySQL können Sie das Schlüsselwort as (beschreibbar oder nicht) verwenden , um einen Alias ​​für die Abfrageergebnisse anzugeben.

Grammatik:

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

  • Das Folgende ist ein Beispiel (mit Aliasing der oben genannten drei Fachbewertungen):

  •  Oder wie folgt:

5️⃣Ergebnisdeduplizierung


2, WHERE-Bedingung

In MySQL WHEREkönnen Sie Schlüsselwörter verwenden, um Bedingungen zum Filtern von Abfrageergebnissen hinzuzufügen. WHEREMit der Klausel können Sie eine oder mehrere Bedingungen angeben und nur Zeilen zurückgeben, die diese Bedingungen erfüllen.

Vergleichsoperatoren:
 

Logische Operatoren:
 

Notizen zum Selbststudium der C-Sprache – Operationssymbole (6) – Zhihu

Fall

  • ① Studierende, die in Englisch durchfallen, und ihre Englischnote (< 60)


  • ②Studenten, deren Chinesisch-Ergebnisse [80, 90] sind, und ihre Chinesisch-Ergebnisse

 Zweitens können Sie zusätzlich zu und oben auch den Ausdruck [zwischen und] verwenden:


  • ③ Schüler, deren Mathe-Ergebnisse 58 oder 59 oder 98 oder 99 sind, und ihre Mathe-Ergebnisse

Zusätzlich zu den oben genannten Methoden können Sie auch  IN- Bedingungen verwenden:


  • ④Klassenkameraden  namens Sun und Klassenkameraden namens Sun
     

 Andernfalls entspricht _ genau einem beliebigen Zeichen:


  • ⑤ Schüler, deren Chinesisch-Leistungen besser sind als die Englisch-Leistungen


  • ⑥ Studierende, deren Gesamtpunktzahl unter 200 liegt


  • ⑦ Schüler, deren Chinesisch-Punktzahl > 80 ist und deren Nachname nicht Sun ist


  • ⑧ Student Sun, andernfalls muss die Gesamtpunktzahl > 200 und die Chinesisch-Punktzahl < Mathematik-Punktzahl und die Englisch-Punktzahl > 80 sein


  • ⑨ NULL-Abfrage


3. Sortierung der Ergebnisse

In MySQL können Sie ORDER BYdie Klausel zum Sortieren von Abfrageergebnissen verwenden. ORDER BY Mit der Klausel können Sie eine oder mehrere Spalten angeben, nach denen sortiert werden soll.

Grammatik:

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC

    SELECT ... FROM table_name [WHERE ...]
        ORDER BY column [ASC|DESC], [...];
  • Hinweis : Bei Abfragen ohne ORDER BY-Klausel ist die zurückgegebene Reihenfolge undefiniert. Verlassen Sie sich niemals auf diese Reihenfolge.
     

【Fall】

  • ① Schüler und Mathematikergebnisse werden in aufsteigender Reihenfolge der Mathematikergebnisse angezeigt.


  • ② Klassenkameraden und QQ-Nummern, sortiert nach QQ-Nummern angezeigt


  • ③ Überprüfen Sie die Ergebnisse der Schüler in jedem Fach und zeigen Sie sie in absteigender Reihenfolge für Mathematik, aufsteigender Reihenfolge für Englisch und aufsteigender Reihenfolge für Chinesisch an.


  • ④ Fragen Sie Klassenkameraden und Gesamtpunktzahlen ab, von hoch bis niedrig

  •  Zusätzlich zu den oben genannten Methoden können Spaltenaliase auch in der ORDER BY-Klausel verwendet werden


  • ⑤ Fragen Sie die Mathematikergebnisse von Schülern mit dem Nachnamen Sun oder Schülern mit dem Nachnamen Cao ab. Die Ergebnisse werden in absteigender Reihenfolge der Mathematikergebnisse angezeigt


4. Paging-Ergebnisse filtern

In MySQL können Sie LIMIT die OFFSET Schlüsselwörter und verwenden, um paginierte Ergebnisse zu filtern.

  1. LIMIT Wird verwendet, um die Anzahl der zurückgegebenen Zeilen mit Abfrageergebnissen zu begrenzen.
  2. Es OFFSET wird verwendet, um anzugeben, ab welcher Zeile Ergebnisse zurückgegeben werden sollen.

Grammatik:

-- Der Startindex ist 0


- Filtern Sie ausgehend von s n Ergebnisse

  • SELECT ... FROM Tabellenname [WHERE ...] [ORDER BY ...] LIMIT s, n;


- Filtern Sie ab 0 n Ergebnisse

  • SELECT ... FROM Tabellenname [WHERE ...] [ORDER BY ...] LIMIT n;


- Beginnen Sie mit s und filtern Sie n Ergebnisse, was klarer ist als die zweite Verwendung. Es wird empfohlen, es zu verwenden

  • SELECT ... FROM Tabellenname [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

Anregung:

  • Beim Abfragen einer unbekannten Tabelle ist es am besten, ein LIMIT 1 hinzuzufügen, um zu vermeiden, dass die Datenbank aufgrund der großen Datenmenge in der Tabelle hängen bleibt und die gesamten Tabellendaten abgefragt werden

Paging nach ID, 3 Datensätze pro Seite, jeweils mit Anzeige der Seiten 1, 2 und 3


(3) Aktualisierungsvorgang

In MySQL verwenden Sie UPDATE Anweisungen, um Daten in Datenbanktabellen zu ändern. UPDATEAnweisungen werden verwendet, um eine oder mehrere Zeilen in einer Tabelle zu aktualisieren.

Grammatik:

UPDATE table_name SET column = expr [, column = expr ...]
    [WHERE ...] [ORDER BY ...] [LIMIT ...]
  • Aktualisieren Sie den Spaltenwert des Abfrageergebnisses
     

Fall:

  • ① Ändern Sie Sun Wukongs Mathe-Punktzahl auf 80 Punkte


  • ② Ändern Sie Cao Mengdes Mathe-Ergebnis auf 60 Punkte und sein Chinesisch-Ergebnis auf 70 Punkte


  • ③ Addieren Sie 30 Punkte zu den Mathematikergebnissen der drei Schüler mit der niedrigsten Gesamtpunktzahl.


  • ④ Aktualisieren Sie die chinesischen Ergebnisse aller Schüler auf das Doppelte des ursprünglichen Wertes

  • Hinweis : Verwenden Sie die Anweisung, die die gesamte Tabelle aktualisiert, mit Vorsicht! ! !
     

(4) Vorgang löschen

1. Daten löschen

Grammatik:

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]


Fall:

  • ① Löschen Sie die Testergebnisse von Sun Wukong
     

 


  • ② Löschen Sie die gesamten Tabellendaten

 Als nächstes fügen wir Daten ein:

 


2. Tabelle abschneiden

In MySQL können Sie die Anweisung verwenden, um Daten in einer Datenbanktabelle abzuschneiden (zu löschen). Dieser Vorgang löscht alle Zeilen aus der Tabelle und gibt den zugehörigen Speicherplatz frei. TRUNCATE TABLE

Grammatik:

TRUNCATE [TABLE] table_name

Hinweis: Gehen Sie bei diesem Vorgang mit Vorsicht vor

  • 1. Es kann nur die gesamte Tabelle bearbeiten und nicht Teildaten wie DELETE.
  • 2. Tatsächlich verarbeitet MySQL keine Daten und ist daher schneller als DELETE. Wenn TRUNCATE jedoch Daten löscht, durchläuft es nicht die reale Sache und kann daher nicht zurückgesetzt werden.
  • 3. Setzt das Element AUTO_INCREMENT zurück
     

Testdaten vorbereiten:

 

 

 


(5) Abfrageergebnisse einfügen

In MySQL verwenden Sie Anweisungen, um Abfrageergebnisse in eine Tabelle einzufügen. Dies erleichtert das Einfügen von Abfrageergebnissen aus einer Tabelle in eine andere Tabelle als Daten. INSERT INTO ... SELECT

Grammatik:

INSERT INTO table_name [(column [, column ...])] SELECT ...

Fall : Löschen Sie doppelte Datensätze in der Tabelle. Es kann nur eine Kopie doppelter Daten vorhanden sein.

  • 1. Implementieren Sie die Datenaufbereitung 

 Ideen:

  • ① Erstellen Sie eine leere Tabelle no_duplicate_table. Die Struktur ist dieselbe wie bei double_table
     

 

  • ② Fügen Sie die deduplizierten Daten von „duplicate_table“ in „no_duplicate_table“ ein

 

  • ③ Implementieren Sie atomare Deduplizierungsvorgänge, indem Sie die Tabelle umbenennen

 


(6) Aggregationsfunktion

Aggregationsfunktionen sind Funktionen, mit denen Berechnungen und Statistiken zu Daten durchgeführt werden. Sie geben ein einzelnes Ergebnis basierend auf einer Reihe von Werten zurück. Zu den gängigen Aggregatfunktionen in MySQL gehören die folgenden:

Wie lange dauert es, SQL zu lernen?  Habt ihr gute Informationen oder Videoempfehlungen?  - Wissen Sie fast

 

Fall:

  • ① Zählen Sie, wie viele Schüler in der Klasse sind
     

 

  •  ② Zählen Sie die Anzahl der von der Klasse gesammelten QQ-Nummern


 

 

  • ③ Zählen Sie die Anzahl der Mathe-Ergebnisse in dieser Prüfung

 


  • ④ Gesamtpunktzahl der statistischen Mathematikergebnisse

 


  • ⑤ Statistische durchschnittliche Gesamtpunktzahl

 


  • ⑥ Kehren Sie zur höchsten Punktzahl auf Englisch zurück

 


  • ⑦ Ergebnis > 70 Punkte über der Mindestpunktzahl in Mathematik
     

 


(7) Verwendung der Group-by-Klausel

Die GROUP BY- Klausel ist eine SQL-Anweisung, die zum Gruppieren der Ergebnismenge verwendet wird. Mit der GROUP BY-Klausel können Sie Abfrageergebnisse nach angegebenen Spalten gruppieren und Aggregationsfunktionen zur Berechnung auf jede Gruppe anwenden.

Im Folgenden finden Sie Beispiele für die Verwendung der GROUP BY-Klausel:

SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;
  • Im obigen Beispiel column1ist es der Name der Spalte, die gruppiert werden muss, aggregate_function(column2)es ist die anzuwendende Aggregatfunktion und table_namees ist der Name der Tabelle.

Angenommen, wir haben eine Tabelle namens „orders“ mit den Spalten „customer_id“, „product_id“ und „quantity“ und möchten Bestellungen nach „product_id“ gruppieren und den Gesamtumsatz jedes Produkts berechnen:

SELECT product_id, SUM(quantity)
FROM orders
GROUP BY product_id;
  • Im obigen Beispiel wird die Anweisung verwendet SELECT product_id, SUM(quantity) FROM orders GROUP BY product_id, um die Tabelle „Bestellungen“ nach der Spalte „product_id“ zu gruppieren und die Aggregatfunktion SUM auf die Spalte „Menge“ in jeder Gruppe anzuwenden, um das Gesamtverkaufsvolumen jedes Produkts zu berechnen.

Zusätzlich zu einer einzelnen Spalte kann die GROUP BY-Klausel auch mehrere Spalten für die Gruppierung angeben, zum Beispiel:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2;

Zusammenfassen

Oben geht es um allgemeine Datenabfragevorgänge in MySQL. Lassen Sie uns als Nächstes den Inhalt dieses Artikels kurz zusammenfassen! ! !

Einfache Abfragen von MySQL-Daten können mithilfe der SELECT-Anweisung und anderer verwandter Klauseln durchgeführt werden.

  • Alle Spalten abfragen:
SELECT * FROM table_name;

Dadurch werden alle Spalten in der angegebenen Tabelle zurückgegeben.

  • Spezifische Spalten abfragen:
SELECT column1, column2, ... FROM table_name;

Sie können die abzufragenden Spaltennamen durch Kommas getrennt angeben, sodass nur die Daten dieser Spalten zurückgegeben werden.

  • Bedingte Abfrage:
SELECT * FROM table_name WHERE condition;

Verwenden Sie die WHERE-Klausel, um Bedingungen hinzuzufügen und Zeilen zu filtern, die die Bedingungen erfüllen. Beispielsweise WHERE age > 18werden Zeilen mit einem Alter von mehr als 18 Jahren zurückgegeben.

  • Aggregatfunktionen verwenden:
SELECT aggregate_function(column) FROM table_name;

Zu den gängigen Aggregatfunktionen gehören COUNT, SUM, AVG, MAX und MIN. Sie können eine Aggregatfunktion auf eine Spalte anwenden und das berechnete Ergebnis zurückgeben.

  • Abfrageergebnisse sortieren:
SELECT * FROM table_name ORDER BY column ASC|DESC;

Verwenden Sie die ORDER BY-Klausel, um in aufsteigender (ASC) oder absteigender (DESC) Reihenfolge nach angegebenen Spalten zu sortieren.

  • Ergebnisse der Deduplizierungsabfrage:
SELECT DISTINCT column FROM table_name;

Verwenden Sie das Schlüsselwort DISTINCT, um doppelte Zeilen aus Abfrageergebnissen zu entfernen und nur eindeutige Werte zurückzugeben.

  • Gruppenabfrage:
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;

Verwenden Sie die GROUP BY-Klausel, um Ergebnisse zu gruppieren und auf jede Gruppe eine Aggregatfunktion anzuwenden.

An dieser Stelle endet die Erläuterung dieser Datenabfrage. Vielen Dank an alle fürs Zuschauen und Unterstützen! ! !

 

Ich denke du magst

Origin blog.csdn.net/m0_56069910/article/details/132305315
Empfohlen
Rangfolge