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 pointvarchar(X)
kurz für variable characters und halt X Buchstaben/Zahlen/Symbole...text
für lange Zeichenketten also Textdatetime
speichert ein Datum in diesem Format: YYYY-MM-DD hh:mm:ss
Eigenschaften
NOT NULL
das Feld darf nicht leer bleibenPRIMARY KEY
kombiniert UNIQUE und NOT NULL und darf nur einmal in einer Tabelle vorkommenFOREIGN KEY
verhindert das Eingeben von Werten, die nicht in der anderen Tabelle in der Primärschlüsselspalte stehenDEFAULT
wenn kein Wert festgelegt wird, wird dieser Wert eingefügt anstatt NULLCHECK
der Wert in der Zelle muss diese Bedinung erfüllenAUTO_INCREMENT
erzeugt automatisch eine einzigartige ZahlUNIQUE
die Werte dürfen nur einmal in der Spalte vorkommenCOMMENT
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