Skip to main content

Datenbanken und Tabellen in SQL erstellen

MySQL Datenbank und Tabelle erstellen (Kann 2024)

MySQL Datenbank und Tabelle erstellen (Kann 2024)
Anonim

Sind Sie bereit, Datenbanken und Tabellen mit der strukturierten Abfragesprache zu erstellen? In diesem Artikel wird das manuelle Erstellen von Tabellen mit den Befehlen CREATE DATABASE und CREATE TABLE beschrieben. Wenn Sie mit SQL noch nicht vertraut sind, sollten Sie zunächst einige SQL-Grundlagen überprüfen.

Geschäftsanforderungen

Bevor wir uns an die Tastatur setzen, müssen wir sicherstellen, dass wir die Anforderungen des Kunden gut verstehen. Was ist der beste Weg, um diese Einsicht zu erhalten? Natürlich mit dem Kunden reden! Nach einem Gespräch mit dem Human Resources Director von XYZ haben wir erfahren, dass es sich um eine Widget-Vertriebsgesellschaft handelt, die in erster Linie daran interessiert ist, Informationen über ihr Verkaufspersonal zu erfassen.

Die XYZ Corporation unterteilt ihren Vertrieb in östliche und westliche Regionen, von denen jede in viele Gebiete unterteilt ist, die von einzelnen Vertriebsmitarbeitern abgedeckt werden. Die Personalabteilung möchte das von jedem Mitarbeiter abgedeckte Gebiet sowie die Gehaltsinformationen und die Aufsichtsstruktur jedes Mitarbeiters nachverfolgen. Um diese Anforderungen zu erfüllen, haben wir eine Datenbank entworfen, die aus drei Tabellen besteht, die im Entity-Relationship-Diagramm auf dieser Seite gezeigt werden.

Auswählen einer Datenbankplattform

Wir haben uns für ein Datenbankverwaltungssystem (oder DBMS) entschieden, das auf der strukturierten Abfragesprache (SQL) basiert. Daher sollten alle Befehle zum Erstellen von Datenbanken und Tabellen unter Berücksichtigung von ANSI-Standard-SQL geschrieben werden.

Als zusätzlicher Vorteil wird durch die Verwendung von ANSI-kompatiblem SQL sichergestellt, dass diese Befehle in jedem DBMS funktionieren, das den SQL-Standard unterstützt, einschließlich Oracle und Microsoft SQL Server. Wenn Sie noch keine Plattform für Ihre Datenbank ausgewählt haben, führen Sie Datenbanksoftwareoptionen durch den Auswahlprozess.

Anlegen der Datenbank

In einem ersten Schritt erstellen Sie die Datenbank selbst. Viele Datenbankverwaltungssysteme bieten eine Reihe von Optionen zum Anpassen der Datenbankparameter in diesem Schritt. Unsere Datenbank ermöglicht jedoch nur die einfache Erstellung einer Datenbank. Wie bei allen unseren Befehlen möchten Sie möglicherweise in der Dokumentation Ihres DBMS nachsehen, ob von Ihrem spezifischen System unterstützte erweiterte Parameter Ihren Anforderungen entsprechen. Verwenden Sie den Befehl CREATE DATABASE, um unsere Datenbank einzurichten:

ERSTELLEN SIE DATENBANK-Personal

Beachten Sie insbesondere die im obigen Beispiel verwendete Großschreibung. Unter SQL-Programmierern ist es üblich, für SQL-Schlüsselwörter wie "CREATE" und "DATABASE" alle Großbuchstaben zu verwenden, während für benutzerdefinierte Namen alle Kleinbuchstaben wie der Datenbankname "personal" verwendet werden. Diese Konventionen sorgen für eine gute Lesbarkeit.

Nun, da wir unsere Datenbank entworfen und erstellt haben, können wir mit der Erstellung der drei Tabellen beginnen, in denen die Personaldaten der XYZ Corporation gespeichert werden.

Unsere erste Tabelle erstellen

Unsere erste Tabelle enthält die persönlichen Daten für jeden Mitarbeiter unseres Unternehmens. Wir müssen den Namen, das Gehalt, die ID und den Manager jedes Mitarbeiters angeben. Es ist eine gute Konstruktionspraxis, die letzten und ersten Namen in separate Felder zu unterteilen, um das Suchen und Sortieren von Daten in Zukunft zu vereinfachen. Außerdem behalten wir den Manager jedes Mitarbeiters im Auge, indem wir in jedem Mitarbeiterdatensatz einen Verweis auf die Mitarbeiter-ID des Managers einfügen. Lassen Sie uns zunächst den gewünschten Mitarbeitertisch betrachten.

Das Attribut ReportsTo speichert die Manager-ID für jeden Mitarbeiter. Aus den gezeigten Beispieldatensätzen können wir feststellen, dass Sue Scampi der Manager von Tom Kendall und John Smith ist. Es gibt jedoch keine Informationen zu Sue's Manager in der Datenbank, was durch den NULL-Eintrag in ihrer Zeile angezeigt wird.

Jetzt können wir SQL verwenden, um die Tabelle in unserer Personaldatenbank zu erstellen. Bevor wir dies tun, stellen wir sicher, dass wir uns in der richtigen Datenbank befinden, indem Sie einen USE-Befehl ausgeben:

USE Personal;

Alternativ kann das "DATABASE-Personal" Befehl würde die gleiche Funktion ausführen. Nun können wir uns den SQL-Befehl ansehen, mit dem die Tabelle unserer Mitarbeiter erstellt wurde:

CREATE TABLE-Mitarbeiter (Employeeid INTEGER NOT NULL, Nachname VARCHAR (25) NOT NULL, Vorname VARCHAR (25) NOT NULL, Berichte an INTEGER NULL);

Beachten Sie wie im obigen Beispiel, dass gemäß der Programmierkonvention alle Großbuchstaben für SQL-Schlüsselwörter und Kleinbuchstaben für Spalten und Tabellen mit dem Benutzernamen verwendet werden. Der Befehl oben mag auf den ersten Blick verwirrend erscheinen, dahinter steht jedoch eine einfache Struktur. Hier ist eine verallgemeinerte Ansicht, die die Dinge ein wenig klären könnte:

CREATE TABLE Tabellenname (Attributname Datentypoptionen, …, Attributname Datentypoptionen);

Attribute und Datentypen

Im vorherigen Beispiel handelt es sich bei dem Tabellennamen um Mitarbeiter, und wir enthalten vier Attribute: EmployeeID, Nachname, Vorname und Berichte. Der Datentyp gibt an, welche Art von Informationen wir in jedem Feld speichern möchten. Die Mitarbeiter-ID ist eine einfache Ganzzahl, daher verwenden wir den INTEGER-Datentyp sowohl für das Mitarbeiter-ID-Feld als auch für das Reportsto-Feld. Die Mitarbeiternamen bestehen aus Zeichenketten mit variabler Länge, und wir erwarten nicht, dass ein Mitarbeiter einen Vor- oder Nachnamen mit mehr als 25 Zeichen hat. Daher verwenden wir für diese Felder den Typ VARCHAR (25).

NULL-Werte

Wir können auch NULL oder NOT NULL im Optionsfeld der CREATE-Anweisung angeben. Dadurch wird der Datenbank lediglich mitgeteilt, ob beim Hinzufügen von Zeilen zur Datenbank NULL-Werte (oder leere Werte) für dieses Attribut zulässig sind. In unserem Beispiel erfordert die Personalabteilung, dass für jeden Mitarbeiter eine Mitarbeiter-ID und ein vollständiger Name gespeichert werden. Allerdings verfügt nicht jeder Mitarbeiter über einen Manager (der CEO berichtet an niemanden!), Sodass wir NULL-Einträge in diesem Feld zulassen.Beachten Sie, dass NULL der Standardwert ist. Wenn Sie diese Option nicht angeben, werden NULL-Werte für ein Attribut implizit zugelassen.

Verbleibende Tabellen erstellen

Schauen wir uns jetzt die Territorientabelle an. Ein kurzer Blick auf diese Daten hat den Anschein, dass wir eine Ganzzahl und zwei Zeichenfolgen mit variabler Länge speichern müssen. Wie in unserem vorherigen Beispiel erwarten wir nicht, dass die Regions-ID mehr als 25 Zeichen benötigt. Einige unserer Gebiete haben jedoch längere Namen, sodass wir die zulässige Länge dieses Attributs auf 40 Zeichen erweitern.

Schauen wir uns die entsprechende SQL an:

CREATE TABLE-Gebiete (territorial INTEGER NOT NULL, Gebiet Beschreibung VARCHAR (40) NOT NULL, regionid VARCHAR (25) NICHT NULL);

Schließlich verwenden wir die EmployeeTerritories-Tabelle, um die Beziehungen zwischen Mitarbeitern und Gebieten zu speichern. Detaillierte Informationen zu jedem Mitarbeiter und zu jedem Gebiet sind in unseren vorherigen beiden Tabellen gespeichert. Daher müssen wir nur die zwei ganzzahligen Identifikationsnummern in dieser Tabelle speichern. Wenn wir diese Informationen erweitern möchten, können wir in unseren Datenauswahlbefehlen JOIN verwenden, um Informationen aus mehreren Tabellen zu erhalten.

Diese Art der Datenspeicherung reduziert die Redundanz in unserer Datenbank und gewährleistet eine optimale Nutzung des Speicherplatzes auf unseren Speicherlaufwerken. Wir werden den JOIN-Befehl in einem zukünftigen Tutorial ausführlich behandeln. Hier ist der SQL-Code zum Implementieren unserer abschließenden Tabelle:

CREATE TABLE-Mitarbeiterbereiche (Employeeid INTEGER NOT NULL, territorial INTEGER NOT NULL);

Der Mechanismus, den SQL bietet, um die Struktur einer Datenbank nach der Erstellung zu ändern

Wenn Sie heute besonders scharfsinnig sind, haben Sie vielleicht bemerkt, dass wir bei der Implementierung unserer Datenbanktabellen "versehentlich" eine der Designanforderungen ausgelassen haben. Der HR Director der XYZ Corporation forderte die Datenbank auf, die Gehaltsinformationen der Mitarbeiter zu verfolgen, und wir haben es versäumt, dies in den von uns erstellten Datenbanktabellen anzugeben.

Es ist jedoch nicht alles verloren. Wir können den Befehl ALTER TABLE verwenden, um dieses Attribut unserer vorhandenen Datenbank hinzuzufügen. Wir möchten das Gehalt als Ganzzahlwert speichern. Die Syntax ist der des CREATE TABLE-Befehls sehr ähnlich, hier ist es:

ALTER TABLE Mitarbeiter Gehalt hinzufügen INTEGER NULL;

Beachten Sie, dass wir angegeben haben, dass für dieses Attribut NULL-Werte zulässig sind. In den meisten Fällen gibt es keine Option, wenn Sie einer vorhandenen Tabelle eine Spalte hinzufügen. Dies liegt daran, dass die Tabelle bereits Zeilen ohne Eintrag für dieses Attribut enthält. Daher fügt das DBMS automatisch einen NULL-Wert ein, um die Leere zu füllen.