Anlegen von Tabellen mit MySQL (Anlegen von Tabellen mit MySQL), Lektion, Seite 722576
https://www.purl.org/stefan_ram/pub/tabellen_anlegen_mysql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

Anlegen von Tabellenspeichern mit MySQL

Die Tabellenspeicher werden auch Tabellenvariablen, Basistabellen  oder einfach nur Tabellen  genannt. Das Präfixoid „Basis-“ im Wort „Basistabelle“ kommt daher, daß es auch andere Tabellen gibt, welche von den Basistabellen abgeleitet werden können, die also auf den Basistabellen aufbauen.

Jeder Tabellenspeicher gehört zu einem Schema und hat einen Namen.

Konsole (MySQL )
CREATE TABLE BEISPIEL ( I VARCHAR ( 255 ));
Konsole (alternative Formatierung)
CREATE TABLE BEISPIEL 
( I VARCHAR ( 255 ));

Die voranstehende Zeile fügt einen leeren Tabellenspeicher namens »BEISPIEL« mit einer Spalte »I« zum aktuellen Schema hinzu (zu dem zuvor mit »USE« eingestellten Schema).

Man sieht, daß das Kommando das Wort »TABLE« („Tabelle“) verwendet, obwohl eigentlich keine Tabelle, sondern ein Tabellenspeicher  angelegt wird.

Wir beschränken uns in dieser Lektion zunächst auf Tabellenspeicher für Tabellen mit einer einzigen Spalte. Hinter dem Namen des Tabellenspeicher stehen in Klammern Angaben zu dieser Spalte der gespeicherten Tabelle, die aus den Namen der Spalte, nämlich »I«, und der Angabe »VARCHAR ( 255 )« bestehen, sowie schließlich ein Semikolon. Die Angabe »VARCHAR ( 255 )« legt fest, daß diese Spalte bis zu 255 Zeichen enthalten darf. Alternativen zu der Angabe »VARCHAR ( 255 )« werden später vorgestellt werden.

(Die Domänen aus der Theorie relationaler Datenbanken werden von real-existierenden Datenbankprodukten nicht  unterstützt. Statt dessen gibt es nur „Datentypen“ wie eben beispielsweise »VARCHAR ( 255 )«.)

Dieser Tabellenspeicher hat eine Spalte namens »I«.

Der Tabellenspeicher ist aber noch leer. Die Anzeige von Tabellen und das Hinzufügen von Zeilen zu Tabellenspeichern wird erst etwas später gezeigt werden.

Den angelegten Tabellenspeicher kann man sich so vorstellen:

ein Tabellenspeicher
Tabellenspeicher "BEISPIEL"
.------------------------.
| Spalte "I" |
|------------------------|
| (leer) |
'------------------------'

Syntax der Tabellendefinition in SQL 

Eine Tabellendefinition besteht aus dem reservierten Wort »CREATE«, dem reservierten Wort »TABLE«, einem Bezeichner, einer runden Klammer auf »(«, einem weiteren Bezeichner, einem Datentyp und einer runden Klammer zu »)«. Zwischen zwei Wörter muß dabei jeweils Leerraum stehen.

Aufbau einer Tabellendefinition (vereinfacht)

Spaltenspezifikation
.------------------------------------.

.------. .-----. .------------. .-. .------------. .----------. .-.
--->( CREATE )--->( TABLE )--->| Bezeichner |--->( ( )--->| Bezeichner |--->| Datentyp |----------->( ) )--->
'------' '-----' '------------' '-' '------------' '----------' '-'
Tabellenname Spaltenname VARCHAR ( 255 )

Die in den Klammern verwendete Kombination aus einem Bezeichner und einem Datentyp nennen wir auch Spaltenspezifikation.

Für »Bezeichner« kann jeweils ein Name eingesetzt werden, der denselben Regeln gehorcht wie der Name eines Schemas.

Zwischen dem Bezeichner eines Tabellenspeichers und einer diesem direkt folgenden runden Klammern auf »(« sollte unter MySQL Leerraum eingefügt werden, da der Bezeichner eines Tabellenspeichers vor einer runden Klammer sonst manchmal nicht richtig erkannt wird.

Semantik der Tabellendefinition in SQL

Durch eine Tabellendefinition wird ein Tabellenspeicher mit dem direkt hinter »CREATE TABLE« angegebenen Namen angelegt, der Tabellen aufnehmen kann, die eine Spalte enthalten, welche mit dem am Anfang der Spaltenspezifikation angegebenen Namen bezeichnet wird und und die Werte mit dem am Ende der Spaltenspezifikation angegebenen Datentyp aufnehmen kann.

Datentypen

Als Datentyp verwenden wir hier zunächst nur »VARCHAR ( 255 )«. Dieser Datentyp erlaubt es, in den Spalte des Tabellenspeichers einen Text mit bis zu 255 Zeichen zu speichern.

Erneutes Anlegen eines Tabellenspeichers

Um einen leeren Tabellenspeicher namens »BEISPIEL« anzulegen, ist es eventuell nötig, einen eventuell schon vorhandenen Tabellenspeicher dieses Namens vorher zu löschen. Statt dessen kann auch gleich das ganze Schema gelöscht und neu angelegt werden.

Konsole (MySQL )

DROP SCHEMA S; CREATE SCHEMA S; USE S;

CREATE TABLE BEISPIEL ( I VARCHAR ( 255 ));

Der Tabellenspeicher wird in dem Schema angelegt, welche zuletzt mit »USE« eingestellt wurde, also in »S«. Dies macht die Bedeutung von »USE S« erst richtig verständlich.

Namensgleichheit

Es ist erlaubt, daß der Name einer Spalte dem Namen des Tabellenspeichers gleicht.

Konsole (MySQL, T92, C99, C03)
CREATE TABLE BEISPIEL ( BEISPIEL VARCHAR ( 255 ));

Informationen zu einer Datenbank in MySQL

Normalerweise informiert man sich über die Tabellen einer Datenbank, indem man das Skript liest, mit dem die Datenbank erstellt wurde.

Das folgende Kommando zeigt die Tabellen der aktuellen Datenbank an.

Konsole (MySQL, kein Standard-SQL )
SHOW TABLES;

Abfragen der Definition eines Tabellenspeichers

Wir werden das Abfragen  der Definition eines Tabellenspeichers erst später  behandeln, bis dahin ist es sollten Eingaben an die Datenbank, die später wieder benötigt werden, protokolliert werden. Dazu kann die Eingabe zuerst in einen Texteditor geschrieben und dann in das Datenbankfenster kopiert werden. Das Aufbewahren solch einer Eingabe empfiehlt sich aus verschiedenen Gründen ohnehin immer und ist weithin üblich.

»IF NOT EXISTS« *

In MySQL  und Sqlite  gibt es auch ein die Möglichkeit, »CREATE TABLE IF NOT EXISTS« an Stelle von »CREATE TABLE« zu verwenden, um eine Fehlermeldung zu verhindern, falls eine Tabelle mit dem angegebenen Namen schon existiert. Jedoch ist dies kein Standard-SQL.

Klassifikation der Tabellendefinition in SQL  *

Eine Tabellendefinition ist eine SQL-Schema-Anweisung  (Schemadefinitionsanweisung).

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722576 stefan_ram:722576 Anlegen von Tabellen mit MySQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722576, slrprddef722576, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/tabellen_anlegen_mysql