Umfassende Zusammenfassung der MySQL-Tabellen

Umfassende Zusammenfassung der MySQL-Tabellen

1. Erstellen Sie eine Tabelle

1.1. Grundlegende Syntax zum Erstellen einer Tabelle

CREATE TABLE Tabellenname (Spaltenname_1 Spaltentyp_1 Einschränkungen,
column_name_2 column_type_2 Einschränkungen, …)


column_name ist der Name der Spalte
column_type ist der Datentyp der Spalte
contraints ist die Einschränkungsbedingung dieser Spalte

1.1.1. Erstellen Sie eine einfache Tabelle

mysql> Tabelle „Bestellungen“ erstellen (Bestellname varchar (10), Erstellzeit Datum, Bestellwert Dezimalzahl (10,2), Bestellnummer int (2));
Abfrage OK, 0 Zeilen betroffen (0,23 Sek.)

1.1.2. Anzeigen der Definition der Erstellungstabelle

Strukturdefinition:

mysql> desc-Bestellungen;
+-------------+------------------+------+-----+---------+---------+----------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+-------------+------------------+------+-----+---------+---------+----------+
| Bestellname | varchar(10) | JA | | NULL | |
| Erstellungszeit | Datum | JA | | NULL | |
| ordermoney | Dezimalzahl(10,2) | JA | | NULL | |
| Bestellnummer | int(2) | JA | | NULL | |
+-------------+------------------+------+-----+---------+---------+----------+
4 Zeilen im Satz (0,00 Sek.)

Detaillierte Definition der Tabelle:

Sehen Sie sich die detaillierte Tabellendefinition an:

mysql> zeigt die Reihenfolge beim Erstellen der Tabelle an \G;
*************************** 1. Reihe ***************************
       Tabelle: Bestellungen
Tabelle erstellen: CREATE TABLE `orders` (
  `Bestellname` varchar(10) DEFAULT NULL,
  `createtime` Datum DEFAULT NULL,
  `ordermoney` decimal(10,2) DEFAULT NULL,
  `Bestellnummer` int(2) DEFAULT NULL
) ENGINE=InnoDB STANDARD CHARSET=latin1
1 Zeile im Satz (0,00 Sek.)

FEHLER:
Keine Abfrage angegeben


Daraus können wir erkennen, dass ENGINE (Speicher-Engine) der Tabelle InnoDB ist.

CHARSET ist Latin1

Mit der Option „ \G “ lassen sich Datensätze vertikal nach Feldern anordnen, was die Anzeige von Datensätzen mit längeren Inhalten vereinfacht.

2. Tabelle löschen

Befehl:

DROP TABLE Tabellenname


Bestellungen löschen:

mysql> Tabellenaufträge löschen
    -> ;
Abfrage OK, 0 Zeilen betroffen (0,14 Sek.)


3. Ändern Sie die Tabelle

3.1. Befehl zum Ändern des Tabellentyps

ALTER TABLE Tabellenname MODIFY [SPALTE] Spaltendefinition [FIRST | AFTER Spaltenname]


Beispiel: Ändern Sie die name der orders , indem Sie varchar(10) in varchar(20) ändern:

mysql> Tabelle ändern, Aufträge ändern, Auftragsname varchar(20);
Abfrage OK, 0 Zeilen betroffen (0,11 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

mysql> Beschreibungsaufträge;
+-------------+------------------+------+-----+---------+---------+----------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+-------------+------------------+------+-----+---------+---------+----------+
| Bestellname | varchar(20) | JA | | NULL | |
| Erstellungszeit | Datum | JA | | NULL | |
| Geldbestellmenge | Dezimalzahl (10,2) | JA | | NULL | |
| Bestellnummer | int(2) | JA | | NULL | |
+-------------+------------------+------+-----+---------+---------+-------+
4 Zeilen im Satz (0,00 Sek.)

3.2. Befehl zum Umbenennen von Feldern

ALTER TABLE Tabellenname CHANGE [COLUMN] alter_Spaltenname Spaltendefinition
[FIRST|AFTER Spaltenname]


Beispiel: Ändern Sie ordernumber in ordernumbers in der Tabelle orders

mysql> Tabelle ändern, Bestellungen, Spalte Bestellnummer ändern, Bestellnummern int(4);
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

mysql> desc-Bestellungen;
+--------------+------------------+-----+-----+---------+---------+-------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+--------------+------------------+-----+-----+---------+---------+-------+
| Bestellname | varchar(20) | JA | | NULL | |
| Erstellungszeit | Datum | JA | | NULL | |
| ordermoney | Dezimalzahl(10,2) | JA | | NULL | |
| Bestellnummern | int(4) | JA | | NULL | |
+--------------+------------------+-----+-----+---------+---------+-------+
4 Zeilen im Satz (0,00 Sek.)


Besonderer Hinweis: Sowohl change als auch modify können die Definition einer Tabelle ändern. Der Unterschied besteht darin, dass der Spaltenname nach der Änderung zweimal geschrieben werden muss, was unpraktisch ist. Der Vorteil von „Ändern“ besteht jedoch darin, dass Sie den Spaltennamen modifizieren können, nicht jedoch „Ändern“.

3.3. Befehl „Tabellenfeld hinzufügen“

ALTER TABLE Tabellenname ADD [COLUMN] Spaltendefinition [FIRST | AFTER Spaltenname]


Beispiel: Fügen Sie der Tabelle orders ein neues Feld username mit varchar(3) hinzu:

mysql> Tabelle ändern, Bestellungen, Spalte „Benutzername“ hinzufügen, varchar (30);
Abfrage OK, 0 Zeilen betroffen (0,39 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

mysql> desc-Bestellungen;
+-------------+------------------+------+-----+---------+---------+-------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+-------------+------------------+------+-----+---------+---------+-------+
| Bestellname | varchar(20) | JA | | NULL | |
| Erstellungszeit | Datum | JA | | NULL | |
| Geldbestellmenge | Dezimalzahl (10,2) | JA | | NULL | |
| Bestellnummer | int(2) | JA | | NULL | |
| Benutzername | varchar(30) | JA | | NULL | |
+-------------+------------------+------+-----+---------+---------+----------+
5 Zeilen im Satz (0,00 Sek.)

3.4. Befehl zum Löschen von Tabellenspaltenfeldern

ALTER TABLE Tabellenname DROP [COLUMN] Spaltenname


Beispiel: Löschen Sie username aus der Tabelle orders :

mysql> Tabelle ändern, Reihenfolge ändern, Spalte Benutzername löschen;
Abfrage OK, 0 Zeilen betroffen (0,53 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

mysql> Beschreibungsaufträge;
+-------------+------------------+------+-----+---------+---------+----------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+-------------+------------------+------+-----+---------+---------+----------+
| Bestellname | varchar(20) | JA | | NULL | |
| Erstellungszeit | Datum | JA | | NULL | |
| ordermoney | Dezimalzahl(10,2) | JA | | NULL | |
| Bestellnummer | int(2) | JA | | NULL | |
+-------------+------------------+------+-----+---------+---------+-------+
4 Zeilen im Satz (0,00 Sek.)

3.5. Befehl zum Umbenennen von Tabellen

ALTER TABLE Tabellenname RENAME [TO] neuer_Tabellenname


Beispiel: Der Name der Tabelle orders wird goodsorders geändert

mysql> Tabelle „Bestellungen“ ändern, Warenbestellungen umbenennen;
Abfrage OK, 0 Zeilen betroffen (0,16 Sek.)

mysql> desc-Bestellungen;
FEHLER 1146 (42S02): Tabelle „ordermanage.orders“ existiert nicht
mysql> desc Warenbestellungen;
+--------------+------------------+-----+-----+---------+---------+-------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+--------------+------------------+-----+-----+---------+---------+-------+
| Bestellname | varchar(20) | JA | | NULL | |
| Erstellungszeit | Datum | JA | | NULL | |
| Geldbestellmenge | Dezimalzahl (10,2) | JA | | NULL | |
| Bestellnummern | int(4) | JA | | NULL | |
+--------------+------------------+-----+-----+---------+---------+-------+
4 Zeilen im Satz (0,00 Sek.)
 


4. DML-Anweisungen

insert , select , update , delete

4.1. Befehl „Datensatz einfügen“

INSERT INTO Tabellenname (Feld1,Feld2,...Feldn) VALUES (Wert1,Wert2,...Werten);


Beispiel: Fügen Sie einen Datensatz in die Tabelle goodsorders ein. ordername lautet zhang , createtime ist 2021-05-12 , ordermoney ist 100.00 , ordernumbers ist „ 1

mysql> in Warenbestellungen einfügen (Bestellname, Erstellzeit, Bestellgeld, Bestellnummern) Werte('zhang', '2021-05-12', 100.00,1);
Abfrage OK, 1 Zeile betroffen (0,03 Sek.)


Sie können den Teil (Feld1, Feld2, ... Feldn) auch weglassen

mysql> in Warenbestellungswerte einfügen('zhang1','2021-05-12',1001.00,11);
Abfrage OK, 1 Zeile betroffen (0,05 Sek.)

4.2. Den Befehl zum Einfügen von Daten anzeigen

4.2.1、Alle abfragen

SELECT * FROM Tabellenname [WHERE BEDINGUNG]


Beispiel: Alle eingegebenen Daten in goodsorders anzeigen

mysql> wähle * aus Warenbestellungen;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| zhang | 12.05.2021 | 100,00 | 1 |
| zhang1 | 12.05.2021 | 1001,00 | 11 |
+-------------+------------+---------+--------------+
2 Zeilen im Satz (0,00 Sek.)


Das „*“ zeigt an, dass alle Datensätze ausgewählt werden sollen.

4.2.2. Abfrage eindeutiger Datensatzbefehlsschlüsselwörter

unterscheidbar


Beispiel: Abfrage der Daten der nicht wiederholten Erstellungszeit (createtime) in Nicht- goodsorders

mysql> wähle * aus Warenbestellungen;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| zhang | 11.03.2021 | 50,00 | 1 |
| li | 12.05.2020 | 70,00 | 15 |
| li | 12.03.2020 | 70,00 | 15 |
| li | 11.03.2020 | 70,00 | 15 |
| li | 11.03.2021 | 70,00 | 15 |
+-------------+------------+---------+--------------+
5 Zeilen im Satz (0,00 Sek.)

mysql> wähle eine andere Erstellungszeit als die Warenbestellungen;
+------------+
| Zeit erstellen |
+------------+
| 11.03.2021 |
| 12.05.2020 |
| 12.03.2020 |
| 11.03.2020 |
+------------+
4 Zeilen im Satz (0,00 Sek.)

Daraus können wir erkennen, dass die doppelten Zeitdaten 2021-03-11 entfernt wurden.

4.2.3. Abfrageschlüsselwörter mit mehreren Bedingungen

Die Bedingung nach „ where “ ist der „=“-Vergleich eines Felds. Sie können auch Vergleichsoperatoren wie >, <, >=, <=, != usw. verwenden.
Sie können auch logische Operatoren wie „oder“ und „und“ verwenden, um gemeinsame Abfragen mit mehreren Bedingungen durchzuführen.

Beispiel: Abfrage von Nicht- goodsorders bei denen ordername='li' und createtime 2020-03-11 ist

mysql> wähle * aus Warenbestellungen, wobei Bestellname = "li" und Erstellungszeit = "2020-03-11" ist;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| li | 11.03.2020 | 70,00 | 15 |
+-------------+------------+---------+--------------+
1 Zeile im Satz (0,00 Sek.)

4.2.4, Benennung von Sortierabfragen

SELECT * FROM Tabellenname [WHERE BEDINGUNG] [ORDER BY Feld1 [DESC|ASC] , Feld2 
[DESC|ASC], ...Feld [DESC|ASC]]


Beispiel: Sortieren der Datensätze in der Tabelle goodsorders nach Erstellungszeitpunkt

mysql> Auswahl * aus der Warenbestellungsreihenfolge nach Erstellungszeit;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| li | 11.03.2020 | 70,00 | 15 |
| li | 12.03.2020 | 70,00 | 15 |
| li | 12.05.2020 | 70,00 | 15 |
| zhang | 11.03.2021 | 50,00 | 1 |
| li | 11.03.2021 | 70,00 | 15 |
+-------------+------------+---------+--------------+
5 Zeilen im Satz (0,01 Sek.)

4.2.5. Einen Teil, nicht alle Anweisungen anzeigen

AUSWÄHLEN ... [LIMIT Offset_Start, Zeilenanzahl]


offset_start gibt den Startoffset des Datensatzes an
row_count gibt die Anzahl der angezeigten Zeilen an

Beispiel 1 : Anzeige der ersten 3 Datensätze in goodsorders sortiert nach createtiem :

mysql> Auswahl * aus Warenbestellungen, Bestellung nach Erstellungszeitlimit 3;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| li | 11.03.2020 | 70,00 | 15 |
| li | 12.03.2020 | 70,00 | 15 |
| li | 12.05.2020 | 70,00 | 15 |
+-------------+------------+---------+--------------+
3 Zeilen im Satz (0,00 Sek.)


Beispiel 2: Sie möchten 3 Datensätze anzeigen, beginnend mit dem zweiten Datensatz in goodsorders , sortiert nach createtiem :

mysql> Auswahl * aus Warenbestellungen, Bestellung nach Erstellungszeitlimit 2,3;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| li | 12.05.2020 | 70,00 | 15 |
| zhang | 11.03.2021 | 50,00 | 1 |
| li | 11.03.2021 | 70,00 | 15 |
+-------------+------------+---------+--------------+
3 Zeilen im Satz (0,00 Sek.)

4.2.6. Statistik, Aggregationsanweisungen

SELECT [Feld1,Feld2,…Feldn] fun_name 
FROM Tabellenname
[WHERE wo_Bedingung]
[GROUP BY Feld1, Feld2, ... Feldn
[MIT ROLLUP]]
[HAVING where_condition]


Parameterbeschreibung:

  • 1. fun_name gibt die auszuführende Aggregationsoperation an, also die Aggregationsfunktion. Häufig verwendete sind sum (Summe), count (*) (Anzahl der Datensätze), max (Maximalwert), min (Minimalwert)
  • 2. GROUP BY gibt das zu klassifizierende und zu aggregierende Feld an. Wenn Sie beispielsweise die Anzahl der Mitarbeiter nach Abteilung zählen möchten, sollte die Abteilung nach group by“ geschrieben werden.
  • 3. WITH ROLLUP ist eine optionale Syntax, die angibt, ob die Ergebnisse nach der Klassifizierungsaggregation erneut aggregiert werden sollen.
  • 4. Das Schlüsselwort HAVING gibt an, dass die klassifizierten Ergebnisse zusätzlich nach Bedingungen gefiltert werden.

Hinweis: Der Unterschied zwischen „having“ und „where“ besteht darin, dass „having“ die Ergebnisse nach der Aggregation filtert, während „where“ die Datensätze vor der Aggregation filtert. Wenn die Logik es zulässt, sollten wir „where“ verwenden, um die Datensätze zuerst zu filtern. Dies wird die Effizienz der Aggregation erheblich verbessern, da der Ergebnissatz reduziert wird. Schließlich können wir anhand der Logik sehen, ob „having“ für weitere Filterung verwendet werden soll.

Beispiel 1: Abfrage und Zählung der Gesamtzahl der Datensätze in der Tabelle goodsorders

mysql> wähle count(1) aus Warenbestellungen;
+----------+
| Anzahl(1) |
+----------+
| 5 |
+----------+
1 Zeile im Satz (0,00 Sek.)


Beispiel 2: Auf dieser Basis Statistiken nach Erstellungsdatum ( createtime ) gruppieren

mysql> wähle Createtime, Count(1) aus der Warenbestellungsgruppe nach Createtime;
+------------+----------+
| Erstellungszeit | Anzahl(1) |
+------------+----------+
| 11.03.2020 | 1 |
| 12.03.2020 | 1 |
| 12.05.2020 | 1 |
| 11.03.2021 | 2 |
+------------+----------+
4 Zeilen im Satz (0,00 Sek.)


Beispiel 3: Auf dieser Grundlage müssen wir nach Erstellungsdatum ( cretetime ) gruppieren und zählen und die Gesamtzahl berechnen

mysql> wähle „Createtime, count(1)“ aus der Warenbestellungsgruppe nach „Createtime“ mit Rollup;
+------------+----------+
| Erstellungszeit | Anzahl(1) |
+------------+----------+
| 11.03.2020 | 1 |
| 12.03.2020 | 1 |
| 12.05.2020 | 1 |
| 11.03.2021 | 2 |
| NULL | 5 |
+------------+----------+
5 Zeilen im Satz (0,02 Sek.)


Die durch null angezeigte Zahl in der letzten Zeile ist die Gesamtzahl.

Beispiel 4: Gruppieren und Zählen nach createtime (createtime) und die Zahl ist größer als 1

mysql> wähle createtime, count(1) aus der Warenbestellungsgruppe nach createtime mit count(1)>1;
+------------+----------+
| Erstellungszeit | Anzahl(1) |
+------------+----------+
| 11.03.2021 | 2 |
+------------+----------+
1 Zeile im Satz (0,00 Sek.)


Beispiel 5: Abfrage des Gesamtbetrags, des Mindestbetrags und des Höchstbetrags des Bestellbetrags ( ordermoney ) in goodsorders

mysql> wähle * aus Warenbestellungen;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| zhang | 11.03.2021 | 50,00 | 1 |
| li | 12.05.2020 | 70,00 | 15 |
| li | 12.03.2020 | 70,00 | 15 |
| li | 11.03.2020 | 70,00 | 15 |
| li | 11.03.2021 | 70,00 | 15 |
+-------------+------------+---------+--------------+
5 Zeilen im Satz (0,00 Sek.)

mysql> wähle Summe(Bestellgeld),max(Bestellgeld),min(Bestellgeld) aus Warenbestellungen;
+-----------------+-----------------+-----------------+
| Summe(Bestellgeld) | Max(Bestellgeld) | Min(Bestellgeld) |
+-----------------+-----------------+-----------------+
| 330,00 | 70,00 | 50,00 |
+-----------------+-----------------+-----------------+
1 Zeile im Satz (0,02 Sek.)

4.2.7. Tabellenverknüpfung

  • 1. Left Join: schließt alle Datensätze der linken Tabelle ein, auch die, die nicht mit der rechten Tabelle übereinstimmen; Tastenbefehl: Left left join
  • 2. Right Join: schließt alle Datensätze der rechten Tabelle ein, auch die, die nicht mit der linken Tabelle übereinstimmen; Assoziationsanweisung: right join

Beispiel 1: Nun erstellen wir eine weitere Benutzertabelle ( member ), führen mit goodorders einen Left Join durch und fragen die zugehörigen Benutzertabelleninformationen ab

mysql> wähle * aus Mitglied;
+------+------------+
| ID | Mitgliedsname |
+------+------------+
| 15 | zhang |
| 1 | li |
| 13 | liss |
+------+------------+
3 Zeilen im Satz (0,00 Sek.)

mysql> wähle * aus Warenbestellungen;
+-----------+------------+---------+--------------+----------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern | Mitglieds-ID |
+-----------+------------+---------+--------------+----------+
| zhang | 11.03.2021 | 50,00 | 1 | 15 |
| li | 12.05.2020 | 70,00 | 15 | 1 |
| li | 12.03.2020 | 70,00 | 15 | 1 |
| li | 11.03.2020 | 70,00 | 15 | 3 |
| li | 11.03.2021 | 70,00 | 15 | 1 |
+-----------+------------+---------+--------------+----------+
5 Zeilen im Satz (0,00 Sek.)

mysql> Auswahl * aus Goodsorders, linkes Join-Mitglied auf Goodsorders.memberid = member.id;
+-----------+------------+------------+-----------+----------+----------+------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern | Mitglieds-ID | ID | Mitgliedsname |
+-----------+------------+------------+-----------+----------+----------+------------+
| zhang | 11.03.2021 | 50,00 | 1 | 15 | 15 | zhang |
| li | 12.05.2020 | 70,00 | 15 | 1 | 1 | li |
| li | 12.03.2020 | 70,00 | 15 | 1 | 1 | li |
| li | 11.03.2021 | 70,00 | 15 | 1 | 1 | li |
| li | 11.03.2020 | 70,00 | 15 | 3 | NULL | NULL |
+-----------+------------+------------+-----------+----------+----------+------------+
5 Zeilen im Satz (0,00 Sek.)

Beispiel 2 : Die Daten in member und goodsorders bleiben unverändert. Schauen wir uns die richtige Join-Abfrage und das Ergebnis an:

mysql> wähle * aus Goodsorders, führe direkt Mitgliedsverbindung zu Goodsorders.memberid = member.id aus;
+-----------+------------+------------+-----------+----------+----------+------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern | Mitglieds-ID | ID | Mitgliedsname |
+-----------+------------+------------+-----------+----------+----------+------------+
| zhang | 11.03.2021 | 50,00 | 1 | 15 | 15 | zhang |
| li | 12.05.2020 | 70,00 | 15 | 1 | 1 | li |
| li | 12.03.2020 | 70,00 | 15 | 1 | 1 | li |
| li | 11.03.2021 | 70,00 | 15 | 1 | 1 | li |
| NULL | NULL | NULL | NULL | NULL | 13 | liss |
+-----------+------------+------------+-----------+----------+----------+------------+
5 Zeilen im Satz (0,00 Sek.)

Hier ist eine Stornierung erfolgt und ein Dateneintrag in goodsorders links ist leer.

4.2.8. Unterabfragen, verwandte Schlüsselwörter

Enthält hauptsächlich „ in “, not in “, = “, != “, „ exists , „ not exists “ usw.

Beispiel: Abfrage aller Benutzerdatensätze in der Mitgliedertabelle aus goodsorders

mysql> wähle * aus Mitglied;
+------+------------+
| ID | Mitgliedsname |
+------+------------+
| 15 | zhang |
| 1 | li |
| 13 | liss |
+------+------------+
3 Zeilen im Satz (0,00 Sek.)

mysql> wähle * aus Warenbestellungen;
+-----------+------------+---------+--------------+----------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern | Mitglieds-ID |
+-----------+------------+---------+--------------+----------+
| zhang | 11.03.2021 | 50,00 | 1 | 15 |
| li | 12.05.2020 | 70,00 | 15 | 1 |
| li | 12.03.2020 | 70,00 | 15 | 1 |
| li | 11.03.2020 | 70,00 | 15 | 3 |
| li | 11.03.2021 | 70,00 | 15 | 1 |
+-----------+------------+---------+--------------+----------+
5 Zeilen im Satz (0,00 Sek.)

mysql> wähle * aus Warenbestellungen, wobei Mitglieds-ID in (ID aus Mitglied auswählen) ist;
+-----------+------------+---------+--------------+----------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern | Mitglieds-ID |
+-----------+------------+---------+--------------+----------+
| zhang | 11.03.2021 | 50,00 | 1 | 15 |
| li | 12.05.2020 | 70,00 | 15 | 1 |
| li | 12.03.2020 | 70,00 | 15 | 1 |
| li | 11.03.2021 | 70,00 | 15 | 1 |
+-----------+------------+---------+--------------+----------+
4 Reihen im Satz (0,05 Sek.)

4.2.9. Aufzeichnen gemeinsamer Anweisungen

WÄHLEN SIE * VON t1
UNION|UNION ALLE
WÄHLEN SIE * VON t2
…
UNION|UNION ALLE
WÄHLEN SIE * VON tn;


Die wichtigsten Unterschiede zwischen UNION und UNION ALL :

UNION ALL führt die Ergebnismengen direkt zusammen.
UNION führt ein DISTINCT auf dem Ergebnis von UNION ALL aus, um doppelte Datensätze zu entfernen.

Beispiel 1: Anzeige der Benutzer id (memberid) in der Tabelle member und der Tabelle goodsorders

mysql> wähle Mitglieds-ID aus Warenbestellungen Union, alle wählen ID aus Mitglied;
+----------+
| Mitglieds-ID |
+----------+
| 15 |
| 1 |
| 1 |
| 3 |
| 1 |
| 15 |
| 1 |
| 13 |
+----------+
8 Zeilen im Satz (0,00 Sek.)

Beispiel 2: Wenn Sie doppelte Datensätze aus den obigen Ergebnissen entfernen und anzeigen möchten

mysql> wähle Mitglieds-ID aus Warenbestellungen aus. Union wähle ID aus Mitglied aus.
+----------+
| Mitglieds-ID |
+----------+
| 15 |
| 1 |
| 3 |
| 13 |
+----------+
4 Zeilen im Satz (0,00 Sek.)

4.3. Befehl „Datensatz aktualisieren“

UPDATE Tabellenname SET Feld1=Wert1,Feld2.=Wert2,…Feldn=Werten [WHERE BEDINGUNG]


Beispiel: Ändern Sie den Bestellbetrag ( ordermoney ) ordername zhang in goodsorders 50

mysql> aktualisiere Warenbestellungen, setze Bestellgeld=50,00, wobei Bestellname='zhang';
Abfrage OK, 1 Zeile betroffen (0,09 Sek.)
Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0

mysql> wähle * aus Warenbestellungen;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| zhang | 12.05.2021 | 50,00 | 1 |
| zhang1 | 12.05.2021 | 1001,00 | 11 |
+-------------+------------+---------+--------------+
2 Zeilen im Satz (0,00 Sek.)

Wenn beim Aktualisieren der Fehlercode 1175 auftritt:

Fehlercode: 1175. Sie verwenden den abgesicherten Aktualisierungsmodus und haben versucht, eine Tabelle ohne WHERE zu aktualisieren, die eine KEY-Spalte verwendet. Um den abgesicherten Modus zu deaktivieren, aktivieren Sie die Option in den Einstellungen.

Lösung:

1. Zuerst den Status abfragen:

Variablen wie „SQL_SAFE_UPDATES“ anzeigen;


2. Führen Sie den folgenden SQL-Befehl aus, um den Modus für sichere Updates zu deaktivieren:

SETZEN SIE SQL_SAFE_UPDATES = 0;


oder

SETZEN Sie SQL_SAFE_UPDATES = falsch;
 

4.4. Datensatzbenennung löschen

LÖSCHEN AUS Tabellenname [WHERE BEDINGUNG]


Beispiel: Löschen Sie alle Datensätze in der Tabelle goodsorders “, deren ordername zhang1 lautet

mysql> Löschen aus Warenbestellungen, wobei Bestellname = „zhang1“ ist;
Abfrage OK, 1 Zeile betroffen (0,06 Sek.)

mysql> wähle * aus Warenbestellungen;
+-------------+------------+---------+--------------+
| Bestellname | Erstellungszeit | Bestellgeld | Bestellnummern |
+-------------+------------+---------+--------------+
| zhang | 12.05.2021 | 50,00 | 1 |
+-------------+------------+---------+--------------+
1 Zeile im Satz (0,02 Sek.)
 


4.5. Initialisierungstabelle

Beispiel: Alle Daten in einer Tabelle löschen

mysql> wähle * von varc;
+------+------+
| v | c |
+------+------+
| abc | abc |
+------+------+
1 Zeile im Satz (0,03 Sek.)

mysql> Tabelle varc abschneiden;
Abfrage OK, 0 Zeilen betroffen (0,25 Sek.)

mysql> wähle * von varc;
Leerer Satz (0,00 Sek.)
 

5. DCL-Anweisungen

DCL -Anweisungen werden hauptsächlich verwendet, um die Berechtigungen von Operationsobjekten im Datenbanksystem zu verwalten

5.1 Datenbankbenutzer anlegen

Beispiel: Erstellen Sie einen Datenbankbenutzer namens user1 mit dem Anfangskennwort 123 und SELECT/INSERT -Berechtigungen für alle Tabellen in der ordermanage -Datenbank:

mysql> grant select,insert on ordermanage.* an ‚user1‘@‚localhost‘, identifiziert durch ‚123‘;
Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,06 Sek.)

mysql> beenden
Tschüss


C:\Programme\MySQL\MySQL Server 5.7\bin>mysql -uuser1 -p123
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 82
Serverversion: 5.7.17-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

mysql> Datenbanken anzeigen;
+--------------------+
| Datenbank |
+--------------------+
| Informationsschema |
|Bestellung verwalten|
+--------------------+
2 Zeilen im Satz (0,00 Sek.)

Auf dieser Grundlage wird die insert dieses Benutzers ( user1 ) widerrufen.

mysql> Einfügen bei ordermanage.* von ‚user1‘@‚localhost‘ widerrufen;
Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)

mysql> beenden
Tschüss

C:\Programme\MySQL\MySQL Server 5.7\bin>mysql -uuser1 -p123
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 84
Serverversion: 5.7.17-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

mysql> verwenden Sie Ordermanage;
Datenbank geändert

mysql> in Mitgliedswerte einfügen('11','ss');
FEHLER 1142 (42000): INSERT-Befehl für Benutzer „user1“@„localhost“ für Tabelle „member“ verweigert
MySQL>

Daraus ist ersichtlich, dass die Einfügeberechtigung nicht ausreicht und das Einfügen fehlschlägt

Dies ist das Ende dieses Artikels über die Einführung von MySQL-Tabellen. Weitere relevante MySQL-Tabelleninhalte finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Zusammenfassung der häufig verwendeten Datenbank- und Tabellen-Sharding-Lösungen von MySQL
  • Die MySQL-Partitionstabelle ist nach Monaten klassifiziert
  • MySQL partitioniert vorhandene Tabellen in der Datentabelle
  • So gehen Sie nach der MySQL-Tabellenpartitionierung problemlos online
  • MySQL-Serie Multi-Table Join Abfrage 92 und 99 Syntaxbeispiele ausführliches Tutorial
  • Spezifische Verwendung interner temporärer MySQL-Tabellen
  • Eine kurze Erläuterung, wann MySQL interne temporäre Tabellen verwendet
  • Detailliertes Beispiel zum Sammeln und Aggregieren von MySQL-Tabelleninformationen über Python

<<:  Dieser Artikel zeigt Ihnen, wie Sie mit CSS-Kombinationsselektoren spielen

>>:  Zwei Möglichkeiten zum Starten des Linux-Bootdienstes

Artikel empfehlen

Webdesign muss Zweck, Ideen, Gedanken und Beständigkeit haben

<br />Einleitung: Diese Idee kam mir, als ic...

Javascript implementiert einfache Navigationsleiste

In diesem Artikel wird der spezifische Code von J...

So installieren Sie Docker mithilfe von Skripten unter Linux Centos

Was ist die Hauptfunktion von Docker? Derzeit gib...

IE6 implementiert min-width

Zunächst einmal wissen wir, dass dieser Effekt ei...

Ein kurzer Vortrag über MySQL-Pivottabellen

Ich habe eine Produktteiletabelle wie diese: Teil...

Vuex in einem Artikel verstehen

Inhaltsverzeichnis Überblick Die vier Hauptobjekt...

4 praktische Tipps für die Webseitengestaltung

Verwandte Artikel: 9 praktische Tipps zum Erstelle...

Was sind die Vorteile von MySQL MGR?

MGR (MySQL Group Replication) ist eine neue Funkt...

100 Möglichkeiten, die Farbe eines Bildes mit CSS zu ändern (sammelnswert)

Vorwort „Wenn es um Bildbearbeitung geht, denken ...

Referenz zum Detaildesign des Benutzererlebnisses auf B2C-Websites

Als ich kürzlich Apple.com/Ebay.com/Amazon.com/sh...

Ein vorläufiges Verständnis der benutzerdefinierten CSS-Eigenschaften

Heute sind CSS-Präprozessoren der Standard für di...

Reines CSS3 zum Erstellen eines Beispielcodes für Seitenwechseleffekte

Das, was ich vorher geschrieben habe, ist zu komp...