Zusammenfassung der MySQL-Operationsanweisungen

Es liegt ein Problem mit dem Dokumentformat vor. Sie können das PDF herunterladen:

Link: https://pan.baidu.com/s/1R8qSPt2cMnzJqjCmox9h0A?pwd=WHY6 
Extraktionscode: WHY6

Oder springen Sie zum folgenden Link: Zusammenfassung der MySQL-Operationsanweisung – Nuggets

Inhaltsverzeichnis

DDL (Data Definition Language) Grundoperationen

Datenbankbetrieb

Tischbetrieb

DML (Data Manipulation Language) Grundoperationen

Grundlegende DQL-Operationen (Data Query Language).

1. Deutliche Deduplizierung

2. Allgemeine Spaltenwertoperationen

3. Gemeinsame Operatoren

4. Wo bedingte Abfrage

5. Ordnen Sie durch Sortieren

6. Aggregatfunktionen

7.Gruppenweiser Betrieb

Komplexere Abfragevorgänge

1. Verbindungsabfrage

2. Verschachtelte Abfrage

3. Abfrage festlegen

DDL (Data Definition Language) Grundoperationen

Datenbankbetrieb

  1. Stellen Sie eine Verbindung zur Datenbank her: mysql -uroot -p; Geben Sie dann das Passwort ein
  2. Sehen Sie sich die Liste der Datenbanken an:show databases;
  3. Erstellen Sie eine Datenbank:create databases 数据库名称;
  4. Löschen Sie die Datenbank:drop database 数据库名称;
  5. Ändern Sie die Datenbank:alter database 数据库名称 charset=编码格式;
  6. Sehen Sie sich die Tabellen in der Datenbank an:show tables;

Tischbetrieb

  1. TABELLE ERSTELLEN:: create table if not exists 表名(列名,列类型,[约束])Tabelle erstellen, wenn sie nicht existiert
    1. Allgemeine Einschränkungen:
      1. Nicht leere Einschränkung: NICHT NULL, der Inhalt einer Spalte darf nicht leer sein;
      2. Legen Sie den Standardwert der Spalte fest: DEFAULT;
      3. Eindeutige Einschränkung: UNIQUE. In dieser Tabelle muss der Inhalt dieser Spalte eindeutig sein.
      4. Primärschlüsseleinschränkung: PRIMARY KEY, nicht leer und eindeutig;
      5. Selbstwachstum des Primärschlüssels: AUTO_INCREMENT, beginnend bei 1, die Schrittgröße beträgt 1;,
      6. Fremdschlüsseleinschränkung: FOREIGN KEY, die Fremdschlüsselspalte in Tabelle A. Der Wert der Fremdschlüsselspalte in Tabelle A muss sich auf eine Spalte in Tabelle B (Primärschlüssel von Tabelle B) beziehen.
  1. Drop-Tabelle:drop table 表名;
  2. Beschreiben Sie die Tabellenstruktur:desc table 表名;
  3. Ändern Sie die Tabellenstruktur:alter table <表名> add|drop <列名><列类型>

DML (Data Manipulation Language) Grundoperationen

  1. Überarbeiten:update 表名 set col1=value1,col2=value2...... where[条件]
    1. Einschränkungen der Entitätsintegrität: Beim Ändern des Primärschlüsselwerts, bei der kaskadierenden Aktualisierung des Fremdschlüsselwerts oder beim Ablehnen des Vorgangs zum Ändern des Primärschlüsselwerts
    2. Einschränkungen der referenziellen Integrität: Die Fremdschlüsselinformationen in der Fremdschlüsseltabelle dürfen nicht geändert werden:
  1. einfügen:insert into 表名 (col1,col2,......) value (value11,value12,......),(value21,value22,......);
    1. Fügen Sie nach der Abfrage aus einer anderen Tabelle Folgendes in diese Tabelle ein:insert into 表1(col1,col2,......) select col1,col2,...... from 表2 where[条件];
    2. Integritätsbeschränkungen beim Einfügen:
      1. Entitätsintegrität: Es werden Tupel mit demselben Primärschlüssel eingefügt
      2. Referenzielle Integrität: Wenn ein neues Tupel in die Fremdschlüsseltabelle eingefügt wird, ist der Fremdschlüsselwert des neuen Tupels in der Primärschlüsseltabelle vorhanden?
      3. Benutzerdefinierte Integrität, z. B. not nullEinschränkungen von ; uniqueEinschränkungen von usw.;
  1. löschen:delete from 表名 where [条件];

Grundlegende DQL-Operationen (Data Query Language).

1. Deutliche Deduplizierung

Funktion: Spaltenwerte deduplizieren

SQL-Beispiel:select distinct col1,col2 from 表名;

  1. Der Geltungsbereich von „distinct“ umfasst alle Zielspalten, wie oben. Nur wenn die Kombination von col1 und col2 wiederholt wird, wird sie dedupliziert
  2. „distinct“ kann nicht nach der ersten Spalte platziert werden

2. Allgemeine Spaltenwertoperationen

  1. Arithmetische Operationen - (+,-,*,/):select col1 operator col2 from 表名;
    1. Gleiche Priorität wie bei mathematischen Operationen
  1. Legen Sie einen Alias ​​-as für einen Spaltenausdruck fest:select col1 as 别名 from 表名;
    1. wie lässt sich auch nicht schreiben:select col1 别名 from 表名;
  1. unten/oben/Trim:select lower(col1) as 别名 from 表名;
    1. niedriger: Wandeln Sie den Spaltenwert in Kleinbuchstaben um
    2. Upper: Konvertieren Sie den Spaltenwert in Großbuchstaben
    3. trimmen: Filtern Sie die angegebene Zeichenfolge:
      1. trim: Entfernen Sie die Anfangs- und Endzeichenfolgen:select trim(col1) from 表名;
      2. ltrim: Entfernen Sie die Zeichenfolge links
      3. rtrim: Entfernen Sie die Zeichenfolge rechts

3. Gemeinsame Operatoren

  1. Vergleichsoperatoren:=, >, >=, <, <=, !=,<>
    1. was <>gleichbedeutend mit ist!=
  1. Logische Operatoren:and,or,not

4. Wo bedingte Abfrage

  1. between...and...:Zwischen
  2. like: Zeichenübereinstimmung; Platzhalter %ersetzt 0 oder mehr Zeichen und Platzhalter _ersetzt nur ein Zeichen
  3. escape: Wird zum Escapen verwendet. Wenn die vom Benutzer abzufragende Zeichenfolge sich selbst enthält %或者_, muss escape '<换码字符>'eine Phrase verwendet werden, um den Platzhalter zu maskieren.
    1. Beispiel: Die Bedeutung besteht darin , alle Zeilen select * from 表名 where col1 like 'AB_%C_' escape ''in der Tabelle abzufragen, die den Wert von col1 erfüllen, beginnend mit AB_und das vorletzte Zeichen ist ;C
  1. in (not in): Wird verwendet, um Tupel zu finden, deren Attributwerte zur angegebenen Sammlung gehören (nicht dazu gehören).
    1. Beispiel:select * from 表名 where col1 in (value1,value2);
    2. Das entspricht:select * from 表名 where col1 = value1 or col1 = value2;
  1. is null(is not null): Bestimmen Sie, ob der Wert der Spalte ein Nullwert ist
    1. Beispiel: select * from 表名 where col1 is null;Fragen Sie die Informationen aller Zeilen ab, deren Spaltenwert von col1 null ist.
    2. Verwenden Sie diese Option, um is nullzu beurteilen, ob der Spaltenwert ein Nullwert ist, und nicht, um zu beurteilen, ob es sich um eine leere Zeichenfolge handelt. Wenn Sie beurteilen möchten, ob es sich um eine leere Zeichenfolge handelt, verwenden Sie == "";

5. Ordnen Sie durch Sortieren

  1. aufsteigende Reihenfolge:order by col1 asc;
  2. absteigende Reihenfolge:order by col1 desc;

order byEs erscheint normalerweise am selectEnde der Anweisung. Wenn keine Sortierung angegeben ist, ist die Standardeinstellung aufsteigend;

6. Aggregatfunktionen

  1. count:zählen
    1. count(*): Zählt die Anzahl der Tupel in der Beziehung, die durch die Abfrageaggregat-From-Klausel und die Where-Klausel erstellt wurde
    2. count([distinct|all] col1): Zählen Sie die Anzahl der Werte in einer Spalte (Nullwerte werden nicht gezählt)
  1. sum([distinct|all] col1): Berechnet die Summe einer Wertespalte
  2. avg([distinct|all] col1): Berechnet den Durchschnitt einer Wertespalte
  3. max([distinct|all] col1): Berechnen Sie den Maximalwert einer Werteliste
  4. min([distinct|all] col1): Berechnen Sie den Mindestwert einer Werteliste

7.Gruppenweiser Betrieb

Rolle: Verfeinern Sie das Aktionsobjekt der Aggregatfunktion

Wenn das Abfrageergebnis nicht gruppiert ist, wirkt die Aggregatfunktion auf das gesamte Abfrageergebnis; nach der Gruppierung wirkt die Aggregatfunktion auf jede Gruppe separat

SQL-Beispiel:select count(*),col1 from 表名 group by col1;

  • Gruppieren Sie nach den Spaltenwerten der Spalte col1, und die Werte entsprechen einer Gruppe
  • Nachdem die Klausel verwendet wurde group by,  selectkönnen nur noch Gruppierungsattribute und Aggregatfunktionen in der Spaltennamenliste der Klausel angezeigt werden
  • group byDas Objekt der Klausel ist die Zwischenergebnistabelle der Abfrage

mit Bedingungsfilter

Funktion: Filtern Sie die Endergebnisse heraus, die die Bedingungen nach der Gruppierung erfüllen

SQL-Beispiel:select max(col1),col1 from 表名 group by col1 having max(col1) > 1000;

Nach der Gruppierung werden nur die Spalten herausgefiltert, deren Maximalwert größer als 1000 ist;

Der Unterschied zwischen Haben und Wo: verschiedene Objekte

  • Die where-Klausel wirkt auf die Basistabelle oder -ansicht, um Tupel auszuwählen, die die Bedingung erfüllen
  • Die have-Phrase wirkt auf die Gruppe und wählt die Gruppe aus, die die Bedingung erfüllt

Komplexere Abfragevorgänge

1. Verbindungsabfrage

  1. join on: Operation beitreten,R join S on <连接条件>
    1. Beispiel:select col1 from table1 join table2 on table1.col1 = table2.col1;
  1. natural join: natürliche Verbindung
    1. Beispiel:select col1 from table1 natural join table2 ;
    2. Funktion: Doppelte Spaltenattribute durch natürliche Verknüpfungen entfernen. Wie im obigen Beispiel col1ist dieses Attribut sowohl in Tabelle 1 als auch in Tabelle 2 vorhanden, und nur ein col1Attribut bleibt in der neuen Tabelle erhalten, die durch natürliche Verknüpfungen erhalten wird.
  1. outer join: Äußerer Join, behält die Tupel in der angegebenen Beziehung bei, die nicht mit dem Join übereinstimmen;
    1. Beispiel:select * from table1 outer join table2 on table1.col1 = table2.col
    2. Linker äußerer Join: left outer joinBehält die Datensätze in der linken Tabelle, der Standardwert wird mit Null gefüllt
    3. Rechter äußerer Join: right outer joinBehält die Datensätze in der rechten Tabelle, der Standardwert wird mit Null gefüllt
  1. inner join: Innere Verbindung, innere kann weggelassen werden;

Erklärung des Unterschieds zwischen Outer-Join und Inner-Join:

Formular für Studenteninformationen:

Ausweis Name
001 Zhang San
002 Li Si
003 Wang Wu
004 Zhao Liu

Stundenplan für Studenten

Ausweis Kurs
001 Mathematik
002 Sprache
003 Englisch
005 Physik

Führen Sie einen Inner Join durch:

Ausweis Name Kurs
001 Zhang San Mathematik
002 Li Si Sprache
003 Wang Wu Englisch

Führen Sie einen äußeren Join durch

Ausweis Name Kurs
001 Zhang San Mathematik
002 Li Si Sprache
003 Wang Wu Englisch
004 Zhao Liu
005 Physik

Führen Sie einen Left Outer Join durch:

Ausweis Name Kurs
001 Zhang San Mathematik
002 Li Si Sprache
003 Wang Wu Englisch
004 Zhao Liu

Führen Sie einen Right Outer Join durch:

Ausweis Name Kurs
001 Zhang San Mathematik
002 Li Si Sprache
003 Wang Wu Englisch
005 Physik

2. Verschachtelte Abfrage

Abfrageblock: Eine  SELECT-FROM-WHERE Anweisung wird als Abfrageblock bezeichnet

Verschachtelte Abfrage: Eine Abfrage, die einen Abfrageblock in der WHERE-Klausel oder HAVING-Phrase eines anderen Abfrageblocks verschachtelt, wird als verschachtelte Abfrage bezeichnet

SQL-Beispiel:select col1 from table1 where col2 in (select col2 from table2 where col3=value);

In verschachtelten Abfragen gibt es einige häufig verwendete Unterabfragen:

  • inUnterabfragen mit Prädikaten (im Beispiel bereits vorhanden)
  • Unterabfragen mit Vergleichsoperatoren:<,>,=,......
    • Beispiel:select col1 from table1 where col2 = (select col2 from table2 where col3=value);
    • Beachten Sie, dass die Unterabfrage dem Vergleichsoperator folgen muss
  • Unterabfrage mit anyOR- allPrädikat:
    • Beispiel:select col1 from table1 where col2 > any (select col2 from table2 where col3=value);
    • Bedeutung:

  • Unterabfragen mit existsPrädikaten: Existenzquantoren;
    • Beispiel:select col1 from table1 where exists (select * from table2 where col2=value);
    • Wenn nach Verwendung des Existenzquantifizierers das innere Abfrageergebnis nicht leer ist, gibt die äußere where-Klausel einen wahren Wert zurück, andernfalls gibt sie einen falschen Wert zurück.
  • fromUnterabfragen in Klauseln:
    • Beispiel:select col1,avg_col2 from (select col1,avg(col3) as avg_col2) as temp_table;
    • Hinweis: Jede abgeleitete Tabelle muss über einen eigenen Alias ​​verfügen. Daher muss für das Ergebnis der Unterabfrage ein asAlias ​​festgelegt sein, bevor es in der übergeordneten Abfrage verwendet werden kann. Andernfalls wird ein Fehler gemeldet: Fehlercode: 1248. Jede abgeleitete Tabelle muss über einen eigenen Alias ​​verfügen eigener Alias
  • Unterabfragen mit withKlauseln: Definieren Sie temporäre Beziehungen zur Verwendung in verschachtelten Abfragen
    • Beispiel:with temp_table as (select col1,avg(col2)_as avg_col2) select col1,avg_col2 from table1,temp_table;

3. Abfrage festlegen

  1. und UNION:select * from table1 where col1=value1 union select * from table1 where col2=value2;
    1. Entspricht Operationen wherein der Klauselor
  1. Zahlen Sie INTERSECT:select * from table1 where col1=value1 intersect select * from table1 where col2=value2;
    1. Entspricht Operationen wherein der Klauseland
  1. Unterschied AUSSER:select * from table1 where col1=value1 except select * from table1 where col2=value2;
    1. Bedingung 1 ist erfüllt und Bedingung 2 ist nicht erfüllt

Hinweis: Die Anzahl der Spalten jeder Ergebnistabelle, die an der Set-Operation beteiligt ist, muss gleich sein, und die entsprechenden Datentypen müssen ebenfalls gleich sein. Das System entfernt automatisch die doppelten Eingabezeilen vor den Zusammenführungs-, Schnitt- und Differenzoperationen. Da der Deduplizierungsvorgang sehr zeitaufwändig ist, übersteigt die Deduplizierungszeit häufig die Abfragezeit

Ich denke du magst

Origin blog.csdn.net/qq_51235856/article/details/130104189
Empfohlen
Rangfolge