Detaillierte Erklärung des Missverständnisses zwischen MySQL und Oracle

Detaillierte Erklärung des Missverständnisses zwischen MySQL und Oracle

Wesentlicher Unterschied

  • Oracle Database ist ein objektrelationales Datenbankmanagementsystem (kostenpflichtig)
  • MySQL ist ein Open-Source-Managementsystem für relationale Datenbanken (kostenlos)

Datenbanksicherheit

  • MySQL verwendet drei Parameter zur Authentifizierung eines Benutzers, nämlich Benutzername, Passwort und Standort
  • Oracle verwendet mehr Sicherheitsfunktionen wie Benutzername, Kennwort, Profil, lokale Authentifizierung, externe Authentifizierung, erweiterte Sicherheitsverbesserungen usw.

Berechtigungen

Das MySQL-Berechtigungssystem ist eine hierarchische Struktur, die durch Vererbung gebildet wird. Wenn Berechtigungen einer höheren Ebene erteilt werden, erben andere niedrigere Ebenen implizit die erteilten Berechtigungen. Natürlich können die niedrigeren Ebenen diese Berechtigungen auch neu schreiben.

Abhängig vom Autorisierungsumfang verfügt MySQL über die folgenden Autorisierungsmethoden:

1. Weltweit;

2. Basierend auf jedem Host;

3. Tabellenbasiert;

4. Basierend auf Tabellenspalten.

Jede Ebene verfügt über eine Berechtigungstabelle in der Datenbank. Bei der Durchführung von Berechtigungsprüfungen prüft MySQL jede Tabelle von hoch nach niedrig, und Autorisierungen im niedrigeren Bereich haben Vorrang vor Autorisierungen im höheren Bereich.

Im Gegensatz zu Oracle gibt es bei MySQL kein Rollenkonzept. Das heißt: Wenn einer Gruppe von Benutzern die gleichen Berechtigungen erteilt werden, muss jeder Benutzer separat autorisiert werden.

Schemamigration

Ein Schema enthält Tabellen, Ansichten, Indizes, Benutzer, Einschränkungen, gespeicherte Prozeduren, Trigger und andere datenbankbezogene Konzepte. Die meisten relationalen Datenbanken haben ähnliche Konzepte.

Folgende Inhalte sind enthalten:

1. Ähnlichkeit von Musterobjekten;

2. Der Name des Schemaobjekts;

3. Konzentrieren Sie sich auf das Tischdesign;

4.Integration mehrerer Datenbanken;

5. Bedenken hinsichtlich der MySQL-Schemaintegration.

Ähnlichkeit von Musterobjekten

In Bezug auf Schemaobjekte speichern Oracle und MySQL viele Ähnlichkeiten, es gibt jedoch auch einige Unterschiede.

Der Name des Schemaobjekts

Oracle berücksichtigt die Groß- und Kleinschreibung nicht und Schemaobjekte werden beim Schreiben inline gespeichert. In der Oracle-Welt wird bei Spalten, Indizes, gespeicherten Prozeduren, Triggern und Spaltenaliasen die Groß-/Kleinschreibung nicht beachtet, und das gilt für alle Plattformen. MySQL unterscheidet zwischen Groß- und Kleinschreibung, beispielsweise beim Speicherpfad relativ zur Datenbank und den Dateien, die der Tabelle entsprechen.

Sowohl Oracle als auch MySQL gestatten die Verwendung von Schlüsselwörtern mit Schemaobjekten, wenn Sie diese in Anführungszeichen setzen. Bei manchen Schlüsselwörtern in MySQL ist es jedoch auch ohne Anführungszeichen ok.

Bedenken hinsichtlich des Tabellendesigns

1. Die Art der Zeichendaten;

2. Standardwert der Spalte.

3. Zeichendatentyp

(1) Oracle unterstützt vier Schrifttypen: CHAR, NCHAR, NVARCHAR2 und VARCHAR2. Die maximale Länge von CHAR und NCHAR beträgt 2000 Bytes.

Die maximale Länge von NVARCHAR2 und VARCHAR2 beträgt 4000 Bytes.

(2) Es gibt einige Unterschiede zwischen MySQL und Oracle beim Speichern und Lesen von Zeichendaten. Die Länge von MySQL-Zeichentypen wie CHAR und VARCHAR beträgt weniger als 65535 Bytes. Oracle unterstützt vier Schriftarten: CHAR, NCHAR, NVARCHAR2 und VARCHAR2. Die maximale Länge von CHAR und NCHAR beträgt 2000 Bytes und die maximale Länge von NVARCHAR2 und VARCHAR2 beträgt 4000 Bytes.

MySQL behandelt Spaltenstandardwerte nicht und lässt nicht zu, dass sie leer sind, was sich von Oracle unterscheidet. Wenn Sie in Oracle Daten in eine Tabelle einfügen, müssen Sie für alle Spalten Werte haben, die keine NULL-Werte zulassen.

Migration mehrerer Datenbanken

Wenn sich mehrere MySQL-Datenbanken auf demselben Datenbankdienst befinden, wird die Migration unterstützt.

Konzepte zur Datenspeicherung

Die MySQL-Datenbank entspricht einem Verzeichnis innerhalb des Datenverzeichnisses auf dem Server. Diese Datenspeichermethode unterscheidet sich von der vieler Datenbanken, einschließlich Oracle. Die Tabelle in der Datenbank entspricht einer oder mehreren Dateien im Datenbankverzeichnis und verwendet beim Speichern der Tabelle die Speicher-Engine.

Eine Oracle-Datenbank enthält einen oder mehrere Tablespaces. Tablespaces entsprechen der physischen Speicherung von Daten auf der Festplatte. Ein Tablespace wird aus einer oder mehreren Datendateien erstellt. Eine Datendatei ist eine Datei im Dateisystem oder ein Teil des Rohspeicherplatzes.

Grammatische Unterschiede

Primärschlüssel:

  • MySQL verwendet im Allgemeinen den automatischen Wachstumstyp. Geben Sie beim Erstellen einer Tabelle den Primärschlüssel der Tabelle als automatische Inkrementierung an, und der Primärschlüssel wird automatisch vergrößert.
  • In Oracle gibt es kein automatisches Wachstum. Der Primärschlüssel verwendet im Allgemeinen eine Sequenz, und die Werte können während der Interpolation sequenziell zugewiesen werden.

Anführungszeichenproblem:

  • Oracle verwendet keine Anführungszeichen und meldet einen Fehler
  • MySQL hat keine Einschränkungen für Anführungszeichen

Paginierungsabfrage:

  • MySQL-Paging-Abfragen verwenden das Schlüsselwortlimit zur Implementierung
  • Oracle implementiert keine Schlüsselwörter für Paginierungsabfragen, daher ist die Implementierung komplizierter. In jedem Ergebnissatz gibt es nur ein Rownum-Feld, das seine Position angibt, und Sie können nur Rownum <= eine bestimmte Zahl verwenden, nicht Rownum> = eine bestimmte Zahl, da ROWNUM eine Pseudospalte ist. Wenn Sie sie verwenden, müssen Sie ROWNUM einen Alias ​​zuweisen, um sie in eine logische Spalte umzuwandeln und dann damit zu arbeiten.

Datentyp:

  • Integer-Typ in MySQL: int(), String-Typ: varchar()
  • Integer in Oracle: number(), String-Typ: varchar2()

Oben finden Sie eine ausführliche Erklärung zu den Missverständnissen zwischen MySQL und Oracle. Weitere Informationen zu den Missverständnissen zwischen MySQL und Oracle finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Implementierung einer SpringBoot-Multidatenbankverbindung (MySQL+Oracle)
  • Detaillierte Erläuterung der Lösung zur Echtzeitsynchronisierung von MySQL nach Oracle
  • Beispiel zum Erstellen von Tabellenanweisungen für den Benutzer Scott in der MySQL-Version von Oracle
  • Beschreibung der Standardtransaktionsisolationsebene von MySQL und Oracle
  • Beschreibung der Entsprechung zwischen MyBatis JdbcType und Oracle- und MySql-Datentypen
  • Zusammenfassung der Unterschiede zwischen MySQL und Oracle (Vergleich der Funktionsleistung, Auswahl, SQL bei der Verwendung usw.)
  • Detailliertes Beispiel für MySQL ähnlich dem Schreiben von Oracle Rownum
  • Eine kurze Diskussion über die Unterschiede zwischen den drei wichtigsten Datenbanken: Mysql, SqlServer und Oracle
  • Probleme und Lösungen beim Ersetzen von Oracle durch MySQL

<<:  IE6-Schriftart kann nicht definiert werden: Die Größe von 13 Pixeln ist ungültig. IE6 zeigt automatisch eine größere Schriftartlösung an.

>>:  Beispielcode zur Implementierung von Dreiecken und Pfeilen durch CSS-Rahmen

Artikel empfehlen

Bedeutung und Verwendung einer Linux-CD

Was bedeutet Linux-CD? Unter Linux bedeutet cd „V...

Seltsame und interessante Docker-Befehle, die Sie vielleicht nicht kennen

Einleitung Stellt einige einfache und praktische ...

Vue+echarts realisiert gestapelte Balkendiagramme

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

Implementierung eines einfachen Rechners auf Basis von JavaScript

In diesem Artikel wird der spezifische JavaScript...

Implementierungsbeispiel für dynamische Routing-Breadcrumbs für Elemente

Zu meistern: localStorage, Komponentenkapselung Ä...

Implementierung der Vue-Nuxt-Anmeldeauthentifizierung

Inhaltsverzeichnis einführen Link Start Gehen Sie...

So lösen Sie das domänenübergreifende Front-End-Problem mithilfe des Nginx-Proxys

Vorwort Nginx (ausgesprochen „Engine X“) ist ein ...