10 Jahre
Gespräch vereinbaren
Werbung
FeatValue
Das Kundenportal für Agenturen und Freelancer
Integriert sich in das bestehende Projektmagement-System
Kostenlos registrieren

MySQL: Daten verwalten

Damit die Daten in den Tabellen bearbeitet werden können, müssen sie in der passenden Struktur vorliegen. Die muss manchmal auch geändert werden. Dieses Kapitel beschreibt, welche Befehle MySQL dafür anbietet.

Allgemeiner Hinweis  nach oben

Die hier beschriebenen Anweisungen sind sehr mächtig. So kann man mit DROP DATABASE eine ganze Datenbank löschen, mit allen ihren Tabellen. Man denke an den Arbeitsaufwand, den man damit zunichte macht, vielleicht auch den von anderen KollegInnen. Bevor man solche Befehle benutzt, sollte man sich im Klaren sein, welche Auswirkungen sie haben. Es ist dringend zu empfehlen, Sicherheitskopien anzulegen, bevor man einen dieser Befehle ausführt. Wie man Sicherheitskopien anlegt und im Crashfall die Daten aus ihnen wieder herstellt, wird in einem späteren Kapitel beschrieben.

Der Index  nach oben

Neben den Tabellen sind in einer Datenbank andere Objekte gespeichert, dazu gehören die Beziehungen und der Index. Ein Index ist ein sehr wichtiges Element. Zum einen wird durch ihn der Zugriff auf die Datensätze so schnell, wie wir das an einer Datenbank schätzen. Als Unique Index verhindert er außerdem, dass ungewollt Daten mit gleichem Schlüssel mehrfach geschrieben werden.
Es gibt Indizes in 3 Stufen:
1. der "einfache" Index: hier sind mehrere Einträge zum gleichen Schlüssel erlaubt, er beschleunigt aber die Suche
2. der Unique Index, er erlaubt Schlüsselwerte nur in jeweils einem Datensatz
3. der Primary Key. Er ist ein Unique Index. Er regelt die Grundordnung dieser Tabelle.
In jeder Tabelle kann es nur einen Primary Key geben. Andere Indizes kann es praktisch beliebig viele in jeder Tabelle geben. Allerdings muss man bedenken, dass jeder Index zwar die Suche beschleunigen kann, aber den Schreibzugriff in jedem Fall bremst, weil bei jedem INSERT und bei jedem UPDATE die betroffenen Indizes auch geändert werden müssen.

CREATE DATABASE  nach oben

Legt eine neue Datenbank an. Beispiel:

CREATE DATABASE [IF NOT EXISTS] Datenbankname;

Das IF NOT EXISTS haben wir nur deshalb in Klammern dargestellt, weil man es weglassen kann. Es verhindert, dass MySQL erst nachfragt, wenn es die Datenbank schon gibt.

DROP DATABASE  nach oben

Löscht eine vorhandene Datenbank und alle darin enthaltenen Daten. Beispiel:

DROP DATABASE Datenbankname;

USE  nach oben

Gibt an, welche Datenbank benutzt werden soll. Die Datenbank muss existieren. Alle folgenden Befehle beziehen sich dann auf diese Datenbank. Beispiel:

USE Datenbankname;

Abhängig vom Betriebssystem unterscheidet MySQL zwischen Groß- und Kleinschreibung des Datenbanknamens. Der Befehl ist notwendig, denn mySQL benutzt keine Standard-Datenbank. Bevor man also keine Datenbank ausgewählt hat, kann man keine Aktionen mit Tabellen ausführen.
Der Befehl kann allerdings entfallen, wenn MySQL mit entsprechenden Parametern gestartet wurde.

CREATE TABLE  nach oben

Legt eine neue Tabelle an. Beispiel:

CREATE TABLE Tabelle (Feld1 Feldtyp, Feld2 Feldtyp, 
                      ... FeldN Feldtyp);

Nach dem Namen der neuen Tabelle ist ihre Definition in Klammern einzutragen. Unsere Syntax enthält die notwendigen Komponenten, damit der Befehl ohne Syntax-Fehlermeldung ausgeführt wird. In ein Beispiel umgesetzt, könnte der Befehl so aussehen:

CREATE TABLE Artikel (ArtikelNr SMALLINT, 
                      Typ VARCHAR(20), 
                      Hersteller VARCHAR(20), 
                      Bezeichnung VARCHAR(20)); 

Diese Tabellendefinition ist natürlich stark vereinfacht. In der Praxis sollte sie ergänzt werden: Die ArtikelNr ist der Primärschlüssel. Deshalb darf dieses Feld nicht leer sein (NOT NULL). Außerdem kann man durch AUTO_INCREMENT angeben, dass sie sich bei neu eingefügten Datensätzen automatisch hochzählt.

CREATE TABLE Artikel 
   (
    ArtikelNr SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    Typ VARCHAR(20),
    Hersteller VARCHAR(20), 
    Bezeichnung VARCHAR(20),
    PRIMARY KEY (ArtikelNr)
   );

Um eine Beziehung zu einem Primärschlüssel einer anderen Tabelle anzulegen, benutzt man die Syntax:

CREATE TABLE Tabelle (FOREIGN KEY (Feldname,...) 
     [REFERENCES Tabelle[(index_spalte,...)]]

ALTER TABLE  nach oben

Damit wird die Struktur einer Tabelle geändert, also die Felder, der Name oder ein Index. Beispiel:

ALTER TABLE Tabelle Spezifikation;

Anstelle von Spezifikation können verschiedene Varianten stehen:

Feld hinzufügen

ADD Feldname Definition [AFTER Feldname | FIRST];

Als Definition wird wieder der Datentyp angegeben. AFTER Feldname gibt an, nach welchem Feld das neue Feld eingefügt werden soll. FIRST gibt an, dass das neue Feld das erste Feld sein soll. AFTER und FIRST können nur alternativ benutzt werden (entweder das eine oder das andere; sie gehören auch nicht zur Standard-Syntax von SQL).

Feld ändern

Das Ändern eines Feldes erfolgt über:

CHANGE [AlterFeldname] Definition;

Feld löschen

Das Löschen eines Feldes erfolgt über:

DROP Feldname;

Anlegen und Löschen eines Index

ALTER TABLE wird auch zum Anlegen oder Löschen eines Index benutzt:
Zum Anlegen des Index:

ADD PRIMARY KEY (Indexfeld,...);

oder 

ADD INDEX (Indexfeld,...);

oder 

ADD UNIQUE (Indexfeld,...);

Zum Löschen des Index:

DROP Indexfeld;

Ein Index kann auch mit folgendem Befehl nachträglich angelegt werden:

CREATE [UNIQUE] INDEX Indexname ON 
                   Tabelle (Feldname[(length]),... )

RENAME TABLE  nach oben

Verursacht das Ändern des Namens einer Tabelle. Beispiel:

RENAME TABLE AlterTabellenname TO NeuerTabellenname;

DROP TABLE  nach oben

Löschen einer Tabelle. Dabei wird die Struktur einschließlich der eventuell darin enthaltenen Daten gelöscht. Beispiel:

DROP TABLE Tabelle;

SHOW TABLES  nach oben

Zeigt die Namen der Tabellen in der aktuellen Datenbank.

DESC TABLE  nach oben

Zeigt die Struktur einer Tabelle (Feldnamen und Feldtypen).

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Weiterlesen: ⯈ Funktionen

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern