Bibliotheksverwaltung Erstellen einer Bibliothek Datenbank erstellen [falls nicht vorhanden] Bibliotheksname; Löschen einer Bibliothek Datenbanken löschen [falls vorhanden] Bibliotheksname; Gängige Schreibmethode zum Erstellen einer Datenbank Datenbank löschen, falls alter Datenbankname vorhanden ist; Datenbank erstellen, neuer Datenbankname; Beispiel mysql> Datenbanken wie „javacode2018“ anzeigen; +-------------------------+ | Datenbank (javacode2018) | +-------------------------+ |javacode2018| +-------------------------+ 1 Zeile im Satz (0,00 Sek.) mysql> Datenbank löschen, falls vorhanden javacode2018; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> Datenbanken wie „javacode2018“ anzeigen; Leerer Satz (0,00 Sek.) mysql> Datenbank javacode2018 erstellen; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) Datenbanken wie „javacode2018“ anzeigen; listet die Informationen zur javacode2018-Bibliothek auf. Tabellenverwaltung Tabelle erstellen Tabelle erstellen Tabellenname( Feldname 1 Typ [(Breite)] [Einschränkungen] [Kommentar 'Feldbeschreibung'], Feldname 2 Typ [(Breite)] [Einschränkungen] [Kommentar 'Feldbeschreibung'], Feldname 3 Typ [(Breite)] [Einschränkungen] [Kommentar 'Feldbeschreibung'] )[einige Einstellungen der Tabelle]; Beachten:
Einschränkung Beschreibung not null: gibt an, dass das Feld nicht leer sein darf mysql> Tabelle erstellen test1(ein int ungleich null Kommentar 'Feld a'); Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> in test1-Werte einfügen (null); FEHLER 1048 (23000): Spalte „a“ kann nicht null sein mysql> in test1-Werte einfügen (1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus test1; +---+ | ein | +---+ | 1 | +---+ 1 Zeile im Satz (0,00 Sek.) **Standardwert:** Legen Sie einen Standardwert für dieses Feld fest. Der Standardwert ist der Wert mysql> Tabelle löschen, WENN EXISTIERT, test2; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Tabelle erstellen test2( -> ein int nicht null Kommentar 'Feld a', -> b int nicht null Standard 0 Kommentar 'Feld b' -> ); Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) mysql> in test2(a) Werte einfügen (1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus test2; +---+---+ | ein | b | +---+---+ | 1 | 0 | +---+---+ 1 Zeile im Satz (0,00 Sek.) Der Wert von b wird beim Einfügen oben nicht gesetzt, es wird automatisch der Standardwert 0 verwendet **Primärschlüssel:** Dieses Feld wird als Primärschlüssel der Tabelle bezeichnet. Damit lassen sich Datensätze eindeutig identifizieren. Das Einfügen doppelter Datensätze führt zu einem Fehler. Es gibt zwei Möglichkeiten, es zu schreiben: Methode 1: Folgen Sie der Spalte wie folgt: mysql> Tabelle löschen, WENN EXISTIERT, test3; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) mysql> Tabelle erstellen test3( -> ein int nicht null Kommentar 'Feld a' Primärschlüssel -> ); Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Werte in test3 (a) einfügen (1); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> Werte in test3 (a) einfügen (1); FEHLER 1062 (23000): Doppelter Eintrag „1“ für Schlüssel „PRIMARY“ Methode 2: Definieren Sie es, nachdem alle Spalten definiert sind, wie folgt: mysql> Tabelle löschen, WENN EXISTIERT, test4; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) mysql> Tabelle erstellen test4( -> ein int nicht null Kommentar 'Feld a', -> b int nicht null Standard 0 Kommentar 'Feld b', -> Primärschlüssel (a) -> ); Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) mysql> in test4(a,b) Werte (1,1) einfügen; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> in test4(a,b) Werte (1,2) einfügen; FEHLER 1062 (23000): Doppelter Eintrag „1“ für Schlüssel „PRIMARY“ Das Einfügen doppelter Werte führt zu einer Verletzung der Primärschlüsseleinschränkung. Methode 2 unterstützt mehrere Felder als Primärschlüssel. Mehrere Felder werden durch Kommas getrennt. Die Syntax lautet: Primärschlüssel (Feld 1, Feld 2, Feld n). Beispiel: mysql> Tabelle löschen, WENN EXISTIERT, test7; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) MySQL> mysql> Tabelle erstellen test7( -> ein int nicht null Kommentar 'Feld a', -> b int nicht null Kommentar 'Feld b', -> PRIMÄRSCHLÜSSEL (a,b) -> ); Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) MySQL> mysql> einfügen in test7(a,b) VALUES (1,1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> einfügen in test7(a,b) VALUES (1,1); FEHLER 1062 (23000): Doppelter Eintrag „1-1“ für Schlüssel „PRIMARY“ Fremdschlüssel: Legen Sie einen Fremdschlüssel für ein Feld in einer Tabelle fest Syntax: Fremdschlüssel (Spaltenname der aktuellen Tabelle) verweist auf Fremdschlüsseltabelle (Feldname in der Fremdschlüsseltabelle) mysql> Tabelle löschen, WENN EXISTIERT, test6; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Tabelle löschen, WENN EXISTIERT, test5; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) MySQL> mysql> Tabelle erstellen test5( -> ein int nicht null Kommentar 'Feld a' Primärschlüssel -> ); Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) MySQL> mysql> Tabelle erstellen test6( -> b int nicht null Kommentar 'Feld b', -> ts5_a int nicht null, -> Fremdschlüssel(ts5_a) verweist auf test5(a) -> ); Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> in test5 (a) Werte einfügen (1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> in test6 einfügen (b,test6.ts5_a) Werte (1,1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> in test6 einfügen (b,test6.ts5_a) Werte (2,2); FEHLER 1452 (23000): Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl (`javacode2018`.`test6`, EINSCHRÄNKUNG `test6_ibfk_1` FREMDER SCHLÜSSEL (`ts5_a`) REFERENZEN `test5` (`a`)) Hinweis: Gibt an, dass der Wert des Felds ts5_a in test6 aus dem Feld a in der Tabelle test5 stammt. Einige Hinweise:
eindeutiger Schlüssel (uq): gibt an, dass der Wert dieses Feldes eindeutig ist Unterstützt ein bis mehrere Felder. Das Einfügen doppelter Werte verletzt die eindeutige Einschränkung und das Einfügen schlägt fehl. Es gibt zwei Möglichkeiten, es zu definieren. Methode 1: Folgen Sie dem Feld wie folgt: mysql> Tabelle löschen, WENN EXISTIERT, test8; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) MySQL> mysql> Tabelle erstellen test8( -> ein int nicht null Kommentar 'Feld a' eindeutiger Schlüssel -> ); Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) MySQL> mysql> in test8(a) einfügen VALUES (1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> in test8(a) einfügen VALUES (1); FEHLER 1062 (23000): Doppelter Eintrag „1“ für Schlüssel „a“ Methode 2: Definieren Sie, nachdem alle Spalten wie folgt definiert wurden: mysql> Tabelle löschen, WENN EXISTIERT, test9; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) MySQL> mysql> Tabelle erstellen test9( -> ein int nicht null Kommentar 'Feld a', -> eindeutiger Schlüssel(a) -> ); Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) MySQL> mysql> in test9(a) einfügen VALUES (1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> in test9(a) einfügen VALUES (1); FEHLER 1062 (23000): Doppelter Eintrag „1“ für Schlüssel „a“ Methode 2 unterstützt mehrere Felder, getrennt durch Kommas. Die Syntax lautet: Primärschlüssel (Feld 1, Feld 2, Feld n). Beispiel: mysql> Tabelle löschen, WENN EXISTIERT, test10; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) MySQL> mysql> Tabelle erstellen test10( -> ein int nicht null Kommentar 'Feld a', -> b int nicht null Kommentar 'Feld b', -> eindeutiger Schlüssel(a,b) -> ); Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) MySQL> mysql> einfügen in test10(a,b) VALUES (1,1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> einfügen in test10(a,b) VALUES (1,1); FEHLER 1062 (23000): Doppelter Eintrag „1-1“ für Schlüssel „a“ auto_increment: Gibt an, dass der Wert dieses Felds automatisch erhöht wird (Integer-Typ und ist der Primärschlüssel) mysql> Tabelle löschen, WENN EXISTIERT, test11; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) MySQL> mysql> Tabelle erstellen test11( -> ein int nicht null AUTO_INCREMENT PRIMARY KEY Kommentar 'Feld a', -> b int nicht null Kommentar 'Feld b' -> ); Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) MySQL> mysql> in test11(b) einfügen VALUES (10); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> einfügen in test11(b) VALUES (20); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus test11; +---+----+ | ein | b | +---+----+ | 1 | 10 | | 2 | 20 | +---+----+ 2 Zeilen im Satz (0,00 Sek.) Feld a wird automatisch erhöht, wobei der Standardwert bei 1 beginnt und jedes Mal um 1 erhöht wird. Der Anfangswert und die Schrittweite des Auto-Increment-Felds können in MySQL festgelegt werden. Beispielsweise wird der Anfangswert auf 10.000 und die Schrittweite auf 10 festgelegt. Beachten: Lassen Sie uns dies demonstrieren: mysql> aus test11 löschen; Abfrage OK, 2 Zeilen betroffen (0,00 Sek.) mysql> in test11(b) einfügen VALUES (10); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus test11; +---+----+ | ein | b | +---+----+ | 3 | 10 | +---+----+ 1 Zeile im Satz (0,00 Sek.) Die oben stehenden test11-Daten werden gelöscht und anschließend ein Datensatz eingefügt. Der Wert von a ist 3. Führen Sie die folgenden Vorgänge aus: Löschen Sie die test11-Daten, starten Sie MySQL neu, fügen Sie Daten ein und prüfen Sie dann, ob der Wert von a initialisiert ist? wie folgt: mysql> aus test11 löschen; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus test11; Leerer Satz (0,00 Sek.) mysql> beenden Tschüss C:\Windows\system32>net stop mysql der MySQL-Dienst wird angehalten. Der MySQL-Dienst wurde erfolgreich gestoppt. C:\Windows\system32>net start mysql Der MySQL-Dienst wird gestartet. Der MySQL-Dienst wurde erfolgreich gestartet. C:\Windows\system32>mysql -uroot -p Passwort eingeben: ******* Willkommen beim MySQL-Monitor. Befehle enden mit ; oder \g. Ihre MySQL-Verbindungs-ID ist 2 Serverversion: 5.7.25-log MySQL Community Server (GPL) Copyright (c) 2000, 2019, 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> verwende javacode2018; Datenbank geändert mysql> wähle * aus test11; Leerer Satz (0,01 Sek.) mysql> in test11 einfügen (b) Wert (100); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus test11; +---+-----+ | ein | b | +---+-----+ | 1 | 100 | +---+-----+ 1 Zeile im Satz (0,00 Sek.) Löschen einer Tabelle Tabelle löschen [falls vorhanden] Tabellenname; Tabellennamen ändern Tabelle Tabellennamen ändern, umbenennen [in] neuer Tabellenname; Hinweise zur Tischdekoration Tabelle ändern Tabellenname Kommentar 'Kommentarinformationen'; Tabelle kopieren Tabelle mit Tabellennamen erstellen, der dem zu kopierenden Tabellennamen entspricht; wie: mysql> Tabelle test12 wie test11 erstellen; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> wähle * aus test12; Leerer Satz (0,00 Sek.) mysql> anzeigen, Tabelle erstellen, test12; +--------+-------+ | Tabelle | Tabelle erstellen +--------+-------+ | test12 | CREATE TABLE `test12` ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Feld a', `b` int(11) NOT NULL COMMENT 'Feld b', PRIMÄRSCHLÜSSEL (`a`) ) ENGINE=InnoDB STANDARD-CHARSET=utf8 | +--------+-------+ 1 Zeile im Satz (0,00 Sek.) Tabellenstruktur + Daten kopieren Tabelle erstellen Tabellenname [als] Feld auswählen, ... aus zu kopierender Tabelle [Where-Bedingung]; wie: mysql> Tabelle test13 erstellen als select * from test11; Abfrage OK, 1 Zeile betroffen (0,02 Sek.) Datensätze: 1 Duplikate: 0 Warnungen: 0 mysql> wähle * aus test13; +---+-----+ | ein | b | +---+-----+ | 1 | 100 | +---+-----+ 1 Zeile im Satz (0,00 Sek.) Die Tabellenstruktur und die Daten finden Sie hier. Verwalten von Spalten in einer Tabelle Spalten hinzufügen Tabelle ändern, Tabellenname, Spalte hinzufügen, Spaltenname, Typ [Spalteneinschränkung]; Beispiel: mysql> Tabelle löschen, WENN EXISTIERT, test14; Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.) MySQL> mysql> Tabelle erstellen test14( -> ein int nicht null AUTO_INCREMENT PRIMARY KEY Kommentar 'Feld a' -> ); Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) mysql> alter table test14 add column b int not null default 0 comment 'Field b'; Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) Datensätze: 0 Duplikate: 0 Warnungen: 0 mysql> Tabelle ändern test14 Spalte c hinzufügen int nicht null Standard 0 Kommentar ‚Feld c‘; Abfrage OK, 0 Zeilen betroffen (0,05 Sek.) Datensätze: 0 Duplikate: 0 Warnungen: 0 mysql> in test14(b) Werte einfügen (10); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> wähle * aus test14; c +---+----+---+ | ein | b | c | +---+----+---+ | 1 | 10 | 0 | +---+----+---+ 1 Zeile im Satz (0,00 Sek.) Spalten ändern Tabelle ändern, Tabellenname, Spalte ändern, Spaltenname, neuer Typ [Einschränkung]; Oder Tabelle ändern, Tabellenname, Spalte ändern, Spaltenname, neuer Spaltenname, neuer Typ [Einschränkung]; Der Unterschied zwischen den beiden Methoden: „modify“ kann den Spaltennamen nicht ändern, „change“ kann den Spaltennamen ändern Schauen wir uns die Tabellenstruktur von test14 an: mysql> anzeigen, Tabelle erstellen, test14; +--------+--------+ | Tabelle | Tabelle erstellen | +--------+--------+ | test14 | CREATE TABLE `test14` ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Feld a', `b` int(11) NICHT NULL STANDARD '0' KOMMENTAR 'Feld b', `c` int(11) NICHT NULL STANDARD '0' KOMMENTAR 'Feld c', PRIMÄRSCHLÜSSEL (`a`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 | +--------+--------+ 1 Zeile im Satz (0,00 Sek.) Wir ändern den Namen und den Typ des Feldes c wie folgt: mysql> alter table test14 change column cd varchar(10) not null default '' Kommentar 'Feld d'; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) Datensätze: 0 Duplikate: 0 Warnungen: 0 mysql> anzeigen, Tabelle erstellen, test14; ;; +--------+--------+ | Tabelle | Tabelle erstellen | +--------+--------+ | test14 | CREATE TABLE `test14` ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Feld a', `b` int(11) NICHT NULL STANDARD '0' KOMMENTAR 'Feld b', `d` varchar(10) NOT NULL DEFAULT '' KOMMENTAR 'Feld d', PRIMÄRSCHLÜSSEL (`a`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 | +--------+--------+ 1 Zeile im Satz (0,00 Sek.) Löschen einer Spalte Tabelle Tabellenname ändern, Spalte Spaltenname löschen; Beispiel: mysql> Tabelle ändern test14 Spalte d löschen; Abfrage OK, 0 Zeilen betroffen (0,05 Sek.) Datensätze: 0 Duplikate: 0 Warnungen: 0 mysql> anzeigen, Tabelle erstellen, test14; +--------+--------+ | Tabelle | Tabelle erstellen | +--------+--------+ | test14 | CREATE TABLE `test14` ( `a` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Feld a', `b` int(11) NICHT NULL STANDARD '0' KOMMENTAR 'Feld b', PRIMÄRSCHLÜSSEL (`a`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 | +--------+--------+ 1 Zeile im Satz (0,00 Sek.) Dies ist das Ende dieses Artikels über die Zusammenfassung gängiger MySQL-DDL-Operationen. Weitere relevante MySQL-DDL-Operationen 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:
|
<<: jQuery zum Erzielen eines gleitenden Treppeneffekts
>>: So begrenzen Sie die Anzahl gleichzeitiger Verbindungsanforderungen in Nginx
Problemphänomen Ich habe kürzlich Sysbench verwen...
In den letzten Jahren meiner Karriere habe ich an...
Inhaltsverzeichnis 1. Überprüfen Sie die Anzahl d...
<br />Die Lösungsschritte sind wie folgt: St...
Vorne geschrieben In der Vergangenheit und in akt...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Inhaltsverzeichnis 1. Installation 2. Import 3. V...
Inhaltsverzeichnis 1. Szenario 2. Vereinfachen Si...
Beim Abspielen von Musik werden die Liedtexte im ...
Das mobile Vue-Terminal bestimmt die Richtung, in...
Lassen Sie uns zunächst darüber sprechen, warum w...
Informationen zu MySQL-Vorgängen abfragen Status ...
Verwendung von v-on:clock in Vue Ich lerne derzei...
In diesem Artikel wird hauptsächlich der Beispiel...
Beispielvorgang für nicht festgeschriebenes Lesen...