Heim >Datenbank >MySQL-Tutorial >MySQL-Lernreihe 1: Einfache Syntax
Da das Unternehmen SQLSERVER und MYSQL verwendet und die Anzahl der Server und Datenbanken relativ groß ist
Während der Zeit, in der ich MYSQL lernte, habe ich einen Vergleich mit SQLSERVER gemacht
In der ersten Phase geht es hauptsächlich um das Erlernen der grundlegenden Syntax von MYSQL
Unterschiede in der Syntax
1 Einschränkungen
Unterschiede: Nach dem Schlüsselwort DEFAULT müssen in MySQL keine Klammern hinzugefügt werden
2. Spalten mit automatischer Inkrementierung festlegen
MYSQL muss über automatisch inkrementierende Spalten verfügen. Legen Sie für indizierte Spalten den Startwert am Ende der Tabelle fest.
Legen Sie die Schrittgröße der automatischen Inkrementierung fest. Inkrementspalte, die in globale Ebene und Sitzungsebene unterteilt werden kann
Wenn es sich um die Sitzungsebene handelt, kehrt die Schrittgröße beim Erstellen einer neuen Sitzung durch den Benutzer zur globalen Ebene zurück, also zur Schrittgröße von MySQL unterscheidet sich stark von der Schrittgröße von SQLServer
MySQL kann nicht eingestellt werden, ist die Schrittgröße der Tabellenebene! !
Der MySQL-Server verwaltet zwei Arten von MySQL-Systemparametern (Systemvariablen): globale Variablen und Sitzungsvariablen.
Ihre Bedeutung und Unterschiede sind in ihren jeweiligen Namen dargestellt, und Änderungen an ihnen wirken sich nur auf diese Sitzungsebene aus,
Änderungen daran wirken sich auf alle neuen Sitzungen aus (bestehende Sitzungen sind von der Änderung nicht betroffen), bis der MySQL-Server das nächste Mal neu gestartet wird.
Beachten Sie, dass sich die Auswirkungen der Änderung nicht auf Neustarts erstrecken können. Wenn Sie den neuen Wert beim Neustart des MySQL-Servers verwenden möchten, können Sie ihn nur angeben, indem Sie Variablenoptionen in der Befehlszeile angeben oder die Optionsdatei ändern.
Änderungen durch SET können sich nicht über Neustarts erstrecken.
Jede Systemvariable hat einen Standardwert, der beim Kompilieren des MySQL-Systems festgelegt wird.
Um Systemvariablen anzugeben, können Sie im Allgemeinen Optionen in der Befehlszeile angeben, wenn der Server gestartet wird, oder über die Optionsdatei.
Natürlich können die meisten Systemvariablen angegeben werden, wenn das System ausgeführt wird . , geben Sie seinen Wert über den Set-Befehl an.
Zeigen Sie den aktuellen Standard-Startwert und Schrittwert der automatisch inkrementierenden Spalte des Systems an
F: Wenn es eine Tabelle mit einer automatisch inkrementierenden Spalte gibt, deren Feld ist id Fügen Sie den Primärschlüssel hinzu, nachdem Sie 10 Daten in die Tabelle eingefügt haben, löschen Sie die Daten mit den IDs 8, 9 und 10, starten Sie MySQL neu und fügen Sie nach
ein weiteres Datenelement ein ID dieser Daten Wie sollte der Wert sein, 8 oder 11?
Antwort: Wenn der Tabellentyp MyISAM ist, dann ist er 11. Wenn der Tabellentyp InnoDB ist, ist die ID 8.
Dies liegt daran, dass die beiden Arten von Speicher-Engines den maximalen ID-Datensatz auf unterschiedliche Weise speichern. Die MyISAM-Tabelle zeichnet die maximale ID in der Datendatei auf, der maximale ID-Wert des automatisch inkrementierten Primärschlüssels jedoch nicht geht beim Neustart von MySQL verloren. ;
InnoDB zeichnet den maximalen ID-Wert im Speicher auf, sodass nach dem Neustart von MySQL oder dem Ausführen der OPTIMIZE-Operation für die Tabelle der maximale ID-Wert verloren geht.
Übrigens gibt es für MYSQL vier Methoden, um den Auto-Inkrementwert der aktuellen Tabelle zu erhalten
1 SELECT MAX(id) FROM person für eine bestimmte Tabelle
2. SELECT LAST_INSERT_ID() Die Funktion gilt für jede Tabelle
3. SELECT @@identity gilt für jede Tabelle
@@identity stellt den letzten Zeitpunkt dar, zu dem Daten in eine Tabelle eingefügt wurden mit dem Identitätsattribut (d. h. Auto-Inkrement-Spalte). Der Wert der Auto-Inkrement-Spalte ist eine vom System definierte globale Variable.
Im Allgemeinen beginnen systemdefinierte globale Variablen mit @@ und benutzerdefinierte Variablen mit @.
Voraussetzung für die Verwendung von @@identity ist, dass nach dem Ausführen des Einfügevorgangs die Verbindung beim Ausführen von select @@identity nicht geschlossen wird, da das Ergebnis sonst ein NULL-Wert ist.
4. ZEIGEN SIE TABELLE STATUS WIE „Person“
Wenn Sie auf eine bestimmte Tabelle abzielen, wird empfohlen, diese Methode zu verwenden
Im Ergebnis gibt es eine in Im entsprechenden Tabellennamen-Datensatzfeld „Auto_increment“ ist der Wert der nächsten Auto-Inkrement-ID die aktuelle maximale Auto-Inkrement-ID der Tabelle.
3. Sehen Sie sich die Tabellendefinition an
SQLSERVER
MYSQL
4. Ändern Sie den Tabellennamen
Es gibt auch Unterschiede beim Ändern des Tabellenname. Ändern Sie die Tabelle emp2
5. Ändern Sie den Datentyp des Felds
Ändern Sie den int-Typ des ID-Felds in bigint
6. Ändern Sie den Feldnamen
Wenn Sie den Feldnamen in MYSQL ändern, müssen Sie den Datentyp des Feldes hinzufügen. Andernfalls wird ein Fehler gemeldet. CHANGE kann auch nur den Datentyp ändern, um den gleichen Effekt wie MODIFY zu erzielen.
Die Methode besteht darin, den „neuen Feldnamen“ und den „alten Feldnamen“ in der SQL-Anweisung festzulegen den gleichen Namen und ändern Sie nur den „Datentyp“
Ändern Sie den Datentyp. Ändern Sie beispielsweise im Beispiel gerade die ID-Spalte. Wechseln Sie zum Datentyp „bigint“
Feldnamen ändern
7. Feld hinzufügen
Die Syntax zum Hinzufügen von Feldern ist ähnlich, jedoch in In MYSQL können Sie die Schlüsselwörter FIRST und AFTER verwenden, um den Speicherort der hinzugefügten Felder anzugeben
8. Felder löschen
MYSQL muss das Schlüsselwort COLUMN nicht hinzufügen, um Felder zu löschen
9 . Fremdschlüsseleinschränkungen löschen
Die Methoden zum Löschen von Einschränkungen in MYSQL und SQLSERVER sind ebenfalls sehr unterschiedlich
In SQLSERVER ist es egal, ob es sich um eine eindeutige Einschränkung, eine Prüfeinschränkung oder eine Fremdschlüsseleinschränkung handelt Sie können die folgende SQL-Anweisung verwenden: Löschen
Wenn es sich jedoch in MYSQL um eine Fremdschlüsseleinschränkung handelt, müssen Sie DROP FOREIGN KEY verwenden Schlüsseleinschränkung, Sie müssen DROP PRIMARY KEY verwenden, was etwas mühsam ist
10 Eine Tabelle löschen
Die Syntax zum Löschen eines Tabelle ist die gleiche
Aber wenn Sie mehrere Tabellen gleichzeitig löschen oder vor dem Löschen ein Urteil fällen möchten, ist MYSQL viel praktischer
SQLSERVER benötigt jeweils eine Tabelle Beurteilung und löscht dann die Tabelle einzeln
MYSQL ist anders, die Syntax ist sehr prägnant: DROP TABLE IF EXISTS emp1, emp2
Zusammenfassung
Dieser Artikel ist nur eine kurze Einführung. Werfen wir einen Blick auf die Syntaxunterschiede zwischen MYSQL und SQLSERVER
Ich werde weitere Artikel über die Unterschiede zwischen schreiben MYSQL und SQLERVER in der Zukunft, sowie einige meiner Erfahrungen mit MYSQL in diesem Zeitraum Bitte bleiben Sie dran o(∩_∩ )o
Wenn etwas nicht stimmt, kommentieren Sie bitte o(∩_∩) o
2014-7-16 hinzugefügt
Unabhängig von der Innodb-Engine oder der MYISAM-Engine-Tabelle kann es nur eine automatische Inkrementierung geben Spalte, und die Spalte für die automatische Inkrementierung muss eine Indexspalte sein, unabhängig davon, ob es sich um einen Sekundärindex oder einen Primärschlüsselindex handelt.
Dies ist dasselbe wie bei SQLSERVER. Anders als bei SQLSERVER kann eine Tabelle mehrere Spalten für die automatische Inkrementierung haben , und es ist nicht erforderlich, Indizes für die automatisch inkrementierenden Spalten zu erstellen
Das Obige ist der Inhalt der MySQL-Lernreihe 1: Einfache Syntax. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.org). php.cn)!