Ich benutze Cookies und Google Analytics, um Dein Erlebnis zu verbessern. close

Informatik

Tabellen erstellen, bearbeiten, löschen

Erklärung

Mit CREATE DATABASE name wird eine neue Datenbank erstellt. Jetzt können Tabellen angelegt werden. Dazu nutzt man:

CREATE TABLE table_name (
 column_name1 data_type(size) optional_property,
 column_name2 data_type(size) optional_property,
 ...
)

Die wichtigsten Datentypen

  • int kurz für Intiger. Das sind ganzzahlige Werte von -2 Mrd. bis 2Mrd.
  • decimal(x,n) speichert Dezimalzahlen. x: all digits; n: all digits after the decimal point
  • varchar(X) kurz für variable characters und halt X Buchstaben/Zahlen/Symbole...
  • text für lange Zeichenketten also Text
  • datetime speichert ein Datum in diesem Format: YYYY-MM-DD hh:mm:ss

Eigenschaften

  • NOT NULL das Feld darf nicht leer bleiben
  • PRIMARY KEY kombiniert UNIQUE und NOT NULL und darf nur einmal in einer Tabelle vorkommen
  • FOREIGN KEY verhindert das Eingeben von Werten, die nicht in der anderen Tabelle in der Primärschlüsselspalte stehen
  • DEFAULT wenn kein Wert festgelegt wird, wird dieser Wert eingefügt anstatt NULL
  • CHECK der Wert in der Zelle muss diese Bedinung erfüllen
  • AUTO_INCREMENT erzeugt automatisch eine einzigartige Zahl
  • UNIQUE die Werte dürfen nur einmal in der Spalte vorkommen
  • COMMENT ein Kommentar zur Spalte, der auch in der Datenbank gespeichert wird.


Wenn die Tabellenstruktur bereits erstellt wurde, kann ALTER TABLE name genutzt werden, um einzelne Spalten zu ändern, hinzufügen, oder zu löschen:

ALTER TABLE table_name
 ADD column_nameX data_type(size) optional_property,
 MODIFY column_name data_type(size) optional_property,
 DROP column_name,
 ADD CONSTRAINT name property,
 ADD property;

Wird eine Tabelle und ihr ganzer Inhalt nicht mehr gebraucht, kann die Tabelle mit DROP TABLE name gelöcht werden. Achtung das ist sowie jeder Befehl in SQL nicht rückgängig machbar!


Beispiele

CREATE TABLE users (
 id int(11) PRIMARY KEY AUTO_INCREMENT,
 forename varchar(50) NOT NULL,
 sirname varchar(50),
 gender varchar(6) CHECK (gender='female' OR gender='male' OR gender='diverse'),
 usename varchar(10) NOT NULL UNIQUE,
 unimportant decimal(6,2) COMMENT 'this column will be removed',
 getMails bit DEFAULT false /* can be 0 or 1 as an equivalent for true and false */
);

Mit dem Befehl wird eine Tabelle mit dem Namen 'users' und folgenden Feldern erstellt:

  • id: ist der Primärschlüssel und wird automatisch hochgezählt
  • forename: muss ausgefüllt werden und kann 50 Zeichen halten
  • sirname: wenn nicht ausgefüllt, ist es NULL sonst kann es 50 Zeichen halten
  • gender: lässt nur "female", "male" oder "diverse" zu und ist auf 6 Zeichen beschränkt
  • usename: muss ausgefüllt werden und kann 10 Zeichen fassen, muss sich von den anderen Werten in der Spalte unterscheiden
  • unimportant: kann bis zu 9.999,99 speichern und wurde mit "this column will be removed" kommentiert
  • getmail: kann nur 0 oder 1 speichern, wird nichts eingetragen, ist der Wert automatisch 0

Vielleicht wurde schon bemerkt, dass ich mich bei einer Spalte verschrieben habe und auch sonst einiges hinzugefügt, bzw. geändert oder gelöscht werden sollte.

ALTER TABLE users
 MODIFY sirname varchar(50) NOT NULL,
 CHANGE usename username varchar(40),
 DROP unimportant;

Der Spalte 'sirname' wurde 'NOT NULL' hinzugefügt, 'usename' zu 'username' umbenannt, der Datentyp von 'username' auf 'varchar(40)' geändert und die Spalte 'unimportant' gelöscht.

DROP TABLE users
weiter zu: Daten

D

13 SQL Zusammen­fassung Daten einfügen, bearbeiten und löschen

S

13 SQL Zusammen­fassung SQL Bedeutung
mail   Fehler/Feedback senden

Hell

Du bist offline

close