So erstellen Sie eine Datenbank in MySQL (Erstellen MySQL Tabellen)

⚡ Intelligente Zusammenfassung

Erstellen einer Datenbank in MySQL folgt zwei bewährten Wegen: der Ausführung einer CREATE DATABASE-Anweisung oder der Generierung physischer Schemas aus einem ER-Modell durch MySQL Workbench Forward Engineering. Beide Ansätze führen zu identischen, produktionsreifen Tischen.

  • 🗄️ Datenbankerstellung: Führen Sie CREATE DATABASE movies oder CREATE SCHEMA aus. MySQL behandelt als Synonym.
  • 🛡️ Sichere Wiederholungen: Fügen Sie IF NOT EXISTS hinzu, damit ein wiederholtes Skript die Erstellung überspringt, anstatt einen Fehler wegen doppelten Namens auszulösen.
  • 🌐 Zeichensatz: Wählen Sie utf8mb4 mit utf8mb4_0900_ai_ci für mehrsprachige Daten; latin1 mit latin1_swedish_ci eignet sich für ältere, nur englischsprachige Schemata.
  • 🧱 Tabellenerstellung: CREATE TABLE definiert jeden Feldnamen, Datentyp, PRIMARY KEY und die Speicher-Engine, normalerweise InnoDB.
  • 🔢 Datentypen: Spaltentypen lassen sich in die Familien numerisch, Text und Datum/Uhrzeit einteilen, außerdem gibt es Varianten wie ENUM, SET, BOOL und Binärdaten.
  • ⚙️ Vorwärtsentwicklung: MySQL Workbench wandelt ein genehmigtes ER-Modell in ausführbare SQL-Skripte um und überträgt diese auf einen Live-Server.

Schritte zum Erstellen einer Datenbank in MySQL

Eine Datenbank in MySQL ist ein benannter Container für Tabellen, Ansichten und zugehörige Objekte. Sie können ihn auf zwei Arten erstellen:

1) Durch Ausführen einer einfachen SQL-Abfrage

2) Durch den Einsatz von Forward Engineering MySQL Werkbank

As SQL-AnfängerSchauen wir uns zunächst die Abfragemethode an.

So erstellen Sie eine Datenbank in MySQL

Hier erfahren Sie, wie Sie eine Datenbank erstellen MySQL:

CREATE DATABASE ist der SQL-Befehl zum Erstellen einer Datenbank in MySQL.

Stellen Sie sich vor, Sie müssen eine Datenbank mit dem Namen „Filme“ erstellen. Sie können eine Datenbank erstellen in MySQL durch Ausführen des folgenden SQL-Befehls.

CREATE DATABASE movies;

Hinweis: Sie können anstelle von CREATE DATABASE auch den Befehl CREATE SCHEMA verwenden.

Die Anweisung funktioniert nur einmal. Bei erneuter Ausführung tritt ein Fehler auf, daher verbessern wir die Abfrage mit weiteren Parametern.

WENN NICHT EXISTIERT

Ein einzelner MySQL Ein Server kann mehrere Datenbanken enthalten. Wenn mehrere Personen diesen Server gemeinsam nutzen, kann es vorkommen, dass Sie versuchen, eine Datenbank unter dem Namen einer bereits existierenden Datenbank zu erstellen.

WENN NICHT EXISTIERT weist die MySQL Der Server prüft vor der Erstellung einer Datenbank, ob bereits eine Datenbank mit demselben Namen existiert. Die Datenbank wird nur erstellt, wenn der Name frei ist; ohne diese Klausel… MySQL wirft einen Fehler.

CREATE DATABASE IF NOT EXISTS movies;

Sobald der Datenbankname gesichert ist, muss als Nächstes entschieden werden, wie MySQL sollte den darin enthaltenen Text speichern und vergleichen.

Sortierung und Zeichensatz

A Zeichensatz entscheidet, welche Zeichen eine Spalte speichern kann, während ein Kollation ist die Menge von Vergleichsregeln und Sortierung. Beides lässt sich auf vier Ebenen definieren: Server, Datenbank, Tabelle und Spalte.

Die gewählte Sortierung hängt vom Zeichensatz ab. Beispielsweise verwendet der Zeichensatz Latin-1 die folgenden: latin1_swedish_ci collation, was die schwedische, nicht zwischen Groß- und Kleinschreibung unterscheidende Reihenfolge ist.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Für lokale Sprachen wie Arabisch oder Chinesisch wählen Sie den Unicode aus. utf8mb4 Zeichensatz, der jedes Unicode-Zeichen, einschließlich Emojis, speichert. MySQL 8.0, utf8mb4 ist der Standardzeichensatz und utf8mb4_0900_ai_ci die Standardsortierung.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

Hier finden Sie die Liste aller Sortierungen und Zeichensätze werden auf dieser Seite erläutert.

Sie können die Liste der vorhandenen Datenbanken durch Ausführen des folgenden SQL-Befehls anzeigen.

SHOW DATABASES;

Nachdem die Datenbank eingerichtet ist, können Sie nun die Tabellen hinzufügen, die die Datensätze enthalten werden.

So erstellen Sie eine Tabelle in MySQL

Mit dem Befehl CREATE TABLE werden Tabellen in einer Datenbank erstellt.

Tabelle erstellen in MySQL

Wie das Diagramm zeigt, gehört jede Tabelle zu genau einer Datenbank. Tabellen werden mit folgendem Befehl erstellt: TABELLE ERSTELLEN Anweisung, die folgende Syntax hat.

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

HIER KLICKEN

  • „CREATE TABLE“ ist für die Erstellung der Tabelle in der Datenbank zuständig.
  • „[IF NOT EXISTS]“ ist optional und erstellt die Tabelle nur dann, wenn kein übereinstimmender Tabellenname gefunden wird.
  • „`fieldName`“ ist der Name des Feldes, und „data Type“ definiert die Art der darin gespeicherten Daten.
  • „[optionale Parameter]“ sind zusätzliche Informationen zu einem Feld, wie zum Beispiel „AUTO_INCREMENT“ oder NOT NULL.
  • Die „Speicher-Engine“ verwaltet die Tabelle, normalerweise InnoDB, die Transaktionen und Fremdschlüssel unterstützt.

MySQL Beispiel für eine Tabelle erstellen

Unten ist eine MySQL Beispiel zum Erstellen einer Tabelle in einer Datenbank:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

Hinweis: die richtige MySQL Schlüsselwort ist AUTO_INCREMENT mit einem Unterstrich. AUTOINCREMENT gehört SQLite und löst einen Syntaxfehler aus in MySQL.

Jede Spalte enthält einen Datentyp, wählen Sie daher sorgfältig: Unterschätzen oder überschätzen Sie weder den zu erwartenden Datenbereich.

MySQL Datentypen

Datentypen definieren die Art der Daten, die in einer bestimmten Spalte einer Tabelle gespeichert werden können.

MySQL hat 3 Hauptkategorien von Datentypen, nämlich:

  1. Numerisch
  2. Text
  3. Terminzeit

Numerische Datentypen

Numerische Datentypen dienen der Speicherung numerischer Werte. Es ist sehr wichtig, dass der Wertebereich Ihrer Daten innerhalb der unteren und oberen Grenze des gewählten numerischen Datentyps liegt.

TINYINT( ) -128 bis 127 normal
0 bis 255 UNSIGNED.
SMALLINT( ) -32768 bis 32767 normal
0 bis 65535 UNSIGNED.
MEDIUMINT( ) -8388608 bis 8388607 normal
0 bis 16777215 UNSIGNED.
GANZZAHL( ) -2147483648 bis 2147483647 normal
0 bis 4294967295 UNSIGNED.
BIGINT( ) -9223372036854775808 bis 9223372036854775807 normal
0 bis 18446744073709551615 UNSIGNED.
FLOAT Eine kleine ungefähre Zahl mit einem Gleitkomma.
DOPPELT( , ) Eine große Zahl mit einem Gleitkomma.
DEZIMAL( , ) Ein als Zeichenkette gespeicherter DOUBLE-Wert, der eine feste Dezimaltrennstelle ermöglicht. Geeignet zum Speichern von Währungswerten.

Textdatentypen

Wie der Name der Datentypkategorie bereits andeutet, dienen diese Datentypen der Speicherung von Textwerten. Achten Sie stets darauf, dass die Länge Ihrer Textdaten die maximale Spaltenlänge nicht überschreitet.

CHAR( ) Ein fester Abschnitt mit einer Länge von 0 bis 255 Zeichen.
VARCHAR( ) Ein variabler Abschnitt mit einer Länge von 0 bis 255 Zeichen.
KLEINER TEXT Eine Zeichenfolge mit einer maximalen Länge von 255 Zeichen.
TEXT Eine Zeichenfolge mit einer maximalen Länge von 65535 Zeichen.
BLOB Eine Zeichenfolge mit einer maximalen Länge von 65535 Zeichen.
MITTELTEXT Eine Zeichenfolge mit einer maximalen Länge von 16777215 Zeichen.
MITTELBLOB Eine Zeichenfolge mit einer maximalen Länge von 16777215 Zeichen.
LANGTEXT Eine Zeichenfolge mit einer maximalen Länge von 4294967295 Zeichen.
LONGBLOB Eine Zeichenfolge mit einer maximalen Länge von 4294967295 Zeichen.

Datums- und Zeitdatentypen

Datums- und Zeitdatentypen speichern Kalender- und Uhrzeitwerte in einem festen Format, wodurch Sortierung und Vergleich zuverlässig bleiben.

DATUM YYYY-MM-DD
Datetime JJJJ-MM-TT HH: MM: SS
TIMESTAMP YYYYMMDDHHMMSS
ZEIT- HH: MM: SS

Andere Datentypen

Abgesehen von den oben genannten Datentypen gibt es noch einige weitere in MySQL.

ENUM Um einen aus einer Liste vordefinierter Textwerte ausgewählten Textwert zu speichern
SET Dies wird auch zum Speichern von Textwerten verwendet, die aus einer Liste vordefinierter Textwerte ausgewählt werden. Es kann mehrere Werte haben.
BOOL Synonym für TINYINT(1), wird zum Speichern boolescher Werte verwendet
BINARY Ähnlich wie CHAR; der Unterschied besteht darin, dass Texte im Binärformat gespeichert werden.
VARBINÄR Ähnlich wie bei VARCHAR; der Unterschied besteht darin, dass Texte im Binärformat gespeichert werden.

Betrachten wir nun eine Abfrage zum Erstellen einer Tabelle, die alle Datentypen verwendet. Untersuchen Sie diese und identifizieren Sie, wie jeder Datentyp in der folgenden Tabellenerstellung definiert wird. MySQL Beispiel.

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

Best Practices für die Erstellung eines MySQL Datenbank

Ein paar Konventionen sorgen dafür, dass Ihre Skripte lesbar bleiben:

  • Verwenden Sie Großbuchstaben für SQL-Schlüsselwörter, z. B. „DROP SCHEMA IF EXISTS `MyFlixDB`;“.
  • Schließen Sie alle Ihre SQL-Befehle mit Semikolons ab.
  • Vermeiden Sie Leerzeichen in Schema-, Tabellen- und Feldnamen. Verwenden Sie stattdessen Unterstriche zur Trennung von Schema-, Tabellen- oder Feldnamen.
  • Für neue Tabellen ist InnoDB gegenüber MyISAM vorzuziehen, da InnoDB Transaktionen, Sperren auf Zeilenebene und Fremdschlüssel unterstützt.

Die Abfragemethode ist fertiggestellt. Der zweite Weg greift über ein visuelles Modell anstelle von handgeschriebenem SQL auf dieselbe Datenbank zu.

So erstellen Sie MySQL Workbench ER-Diagramm Vorwärtsentwicklung

MySQL Werkbank verfügt über Dienstprogramme, die das Forward Engineering unterstützen. Vorwärts-Engineering ist der Fachbegriff, der den Prozess von automatische Übersetzung eines logischen Modells in eine physische Implementierung.

Wir haben eine ER-Diagramm in unserem ER-Modellierung Lektion. Wir werden nun dieses ER-Modell verwenden, um die SQL-Skripte zu generieren, die unsere Datenbank erstellen.

Erstellen der MyFlix-Datenbank aus dem MyFlix ER-Modell

Schritt 1) ​​Öffnen Sie das ER-Modell der MyFlix-Datenbank. die Sie zuvor erstellt haben.

Schritt 2) Wählen Sie den Vorwärtsingenieur aus

Klicken Sie auf das Menü Datenbank und wählen Sie Forward Engineer.

Vorwärtsingenieur auswählen in MySQL Werkbank

Schritt 3) Verbindungsoptionen

Im nächsten Fenster können Sie eine Verbindung zu einer Instanz von MySQL Server. Klicken Sie auf die Dropdown-Liste „Gespeicherte Verbindung“ und wählen Sie „Lokaler Host“. Klicken Sie auf „Ausführen“.

Verbindungsoptionen im Forward-Engineer-Assistenten

Schritt 4) Wählen Sie die unten angezeigten Optionen aus.

Wählen Sie im angezeigten Assistenten die unten aufgeführten Optionen aus. Klicken Sie auf Weiter.

Forward-Engineering-Optionen für die MyFlix-Datenbank

Schritt 5) Behalten Sie die Standardeinstellungen bei und klicken Sie auf Weiter

Im nächsten Bildschirm wird die Zusammenfassung der Objekte in unserem EER-Diagramm angezeigt. Unsere MyFlix-Datenbank besteht aus 5 Tabellen. Behalten Sie die Standardeinstellungen bei und klicken Sie auf „Weiter“.

Zusammenfassung der Objekte im MyFlix-EER-Diagramm

Schritt 6) RevSehen Sie sich das SQL-Skript an

Im folgenden Fenster wird eine Vorschau des SQL-Skripts angezeigt, das unsere Datenbank erstellt. Speichern Sie das Skript als *.sql-Datei oder kopieren Sie es in die Zwischenablage und klicken Sie dann auf „Weiter“.

Vorschau des generierten SQL-Skripts

Schritt 7) Fortschritt bestätigen

Das untenstehende Fenster erscheint, sobald die Datenbank auf dem ausgewählten System erstellt wurde. MySQL Serverinstanz. Die Tabellen aus dem ER-Modell existieren nun physisch auf dem Server.

Fortschrittsfenster für die Vorwärtsentwicklung festlegen

Die Datenbank mit Beispieldaten ist beigefügt. Wir werden diese Datenbank in den folgenden Lektionen verwenden. Importieren Sie sie einfach in MySQL Werkbank für den Einstieg.

Klicken Sie hier, um MyFlixDB herunterzuladen

Häufig gestellte Fragen

Es gibt keinen Unterschied in MySQLCREATE SCHEMA ist ein Alias ​​für CREATE DATABASE, und beide erzeugen dasselbe Objekt. In anderen Systemen, wie z. B. OracleSchema und Datenbank bleiben separate Konzepte.

Führen Sie DROP DATABASE IF EXISTS movies; vom Client oder von MySQL WerkbankDieser Befehl löscht die Datenbank und alle darin enthaltenen Tabellen endgültig. Erstellen Sie daher vorher eine Sicherungskopie.

Das Konto benötigt die Berechtigung CREATE auf globaler Ebene. Administratoren erteilen diese mit dem Befehl GRANT CREATE ON *.* TO 'user'@'localhost'. Ohne diese Berechtigung gibt der Server eine Zugriffsverweigerung zurück.

Ja. KI-Assistenten wandeln eine einfache Beschreibung Ihrer Entitäten in CREATE TABLE-Skripte mit Schlüsseln und Datentypen um. Überprüfen Sie immer die generierten Typen, Längen und Einschränkungen, bevor Sie das Skript auf einem Produktivserver ausführen.

KI-Funktionen in modernen Datenbankclients lesen Ihre ER-Diagramm oder die Abfragehistorie einsehen und Normalisierungskorrekturen, Indexkandidaten und Datentypkorrekturen vorschlagen. Die Vorschläge beschleunigen die Designprüfung, aber jede Änderung wird weiterhin von einem Menschen freigegeben.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: