10.3. Een tabel toevoegen of aanpassen m.b.v. SQL

In hoofdstuk 9 heb je gezien hoe je informatie uit een tabel haalt, maar je kunt natuurlijk zelf ook een tabel creëren met behulp van SQL.

Een nieuwe tabel maken
Met het commando CREATE kun je een tabel aanmaken. De basis syntax is:

      CREATE TABLE tabelnaam (
      naam_kolom1 datatype van kolom1 ,
      naam_kolom2 datatype van kolom2 ,
      naam_kolom3 datatype van kolom3 ,
      enz.
      PRIMARY KEY (kolomnaam)
);

Je kunt o.a. kiezen uit 3 soorten gegevenstypen: tekst, getal, datum. Kijk hier als je er meer over wilt weten.

Voor de meeste doeleinden in deze cursus kunnen we uit de voeten met de volgende datatypen:

DatatypeToelichting
TekstVARCHAR(lengte)Tekst met een bepaalde maximale lengte. Bijvoorbeeld VARCHAR(15)
ENUM(x,y,z,etc)Hiermee maak je een lijst met mogelijke opties. Bijvoorbeeld ENUM('man','vrouw')
GetalINT(lengte)grote getallen. Bijvoorbeeld INT(11)
DECIMAL(lengte,decimalen)kommagetallen; je moet het maximale aantal cijfers voor en achter de komma aangeven, bijv. DECIMAL (8,2)
DatumDATEdatum in het formaat YYYY-MM-DD
TIMEtijd in het formaat HH:MM:SS
DATETIMEdatumtijd in het formaat YYYY-MM-DD HH:MM:SS

Verder kun je nog aangeven dat een kolom niet-leeg mag zijn: NOT NULL en wat de primaire sleutel is: PRIMARY KEY.
En als de kolom numeriek is kun je aangeven dat het AUTO_INCREMENT is, dan wordt er bij elke nieuwe rij automatisch het eerstvolgende getal genomen.

De query om de sbrunekreef-tabel in de database te maken is als volgt:

CREATE TABLE sbrunekreef (
      id INT NOT NULL AUTO_INCREMENT ,
      vak VARCHAR(30) NOT NULL ,
      cijfer INT NOT NULL ,
      datum DATE NOT NULL ,
      PRIMARY KEY ( id )
);

Het zou best kunnen dat je op een gegeven moment bent vergeten van welk datatype iedere kolom is gemaakt. Dat kun je gemakkelijk via SQL achterhalen:
DESCRIBE tabelnaam;

Kolom toevoegen of wijzigen
Als je nadat je een tabel hebt gemaakt nog een kolom wilt toevoegen of wijzigen, kun je dat doen d.m.v. ALTER.
ALTER TABLE tabelnaam ADD naam_kolom datatype van kolom

Je kunt ook gemakkelijk een kolom verwijderen als je bedenkt hem toch niet nodig te hebben via
ALTER TABLE tabelnaam DROP COLUMN naam_kolom

Als je alleen het datatype wilt veranderen, dan kan dat via:
ALTER TABLE tabelnaam MODIFY COLUMN naam_kolom datatype van kolom

Als je een kolomnaam wilt veranderen doe je dat via:
ALTER TABLE tabelnaam CHANGE oude_naam_kolom nieuwe_naam_kolom datatype van kolom