4. Tabellen
In de database "films" wil je nu een tabel aanmaken. Dit kan je uitvoeren met het statement "create table".
Bij dit statement geef je de tabel een naam.
Elk veld krijgt ook een naam, een gegevenstype en een lengte. Je geeft ook aan of een veld leeg mag blijven of moet ingevuld worden (NULL of NOT NULL).
Je kunt ook reeds aangeven welk veld gebruikt wordt als "primaire sleutel" en of de waarde ervan automatisch moet verhoogd worden.
Even een kort overzicht van de gegevenstypen:
Type | Omschrijving |
INT | een getal (integer). Afhankelijk van de grootte van de getallen die gebruikt gaan worden kan je ook kiezen voor TINYINT, SMALLINT, MEDIUMINT, BIGINT of DECIMAL(x,y). |
DATE | een datum van '1000-01-01' tot '9999-12-31' |
DATETIME | een datum en tijd notatie in het formaat 'JJJJ-MM-DD UU:MM:SS' |
TIMESTAMP | een kolom van dit type krijgt bij het invoeren of wijzigen van gegevens automatisch de huidige datum en tijd als er geen waarde wordt opgegeven. |
CHAR | een opeenvolging van karakters tot hoogstens 255 karakters. Je kunt ook VARCHAR(lengte) gebruiken voor langere teksten. Met TEKST kan je heel lange teksten aanduiden. |
BLOB | binaire gegevens zoals bvb. afbeeldingen, geluidsfragmenten, videofragmenten, enz… Afhankelijk van de grootte kan je ook MEDIUMBLOB of LONGBLOB gebruiken. |
ENUM ('waarde', 'waarde', … | een lijsttype of opsommingstype. Enkel de waarden in de lijst tussen de haakjes zijn toegelaten. |
Het statement voor het aanmaken van de tabel "film" ziet er zo uit:
CREATE TABLE `films`.`film`
( `id` INT(11) NOT NULL AUTO_INCREMENT ,
`titel`VARCHAR(20) NOT NULL ,
`regisseur` VARCHAR(20) NOT NULL ,
`duur` VARCHAR(20)NOT NULL ,
`jaar` INT(4) NOT NULL ,
`genre` VARCHAR(20) NOT NULL , PRIMARY KEY(`id`)) ENGINE = InnoDB;
Je kan in phpMyAdmin ook een handig invulformulier gebruiken om dit statement samen te stellen. De “backticks” (` `) worden door phpMyAdmin toegevoegd en zijn niet strikt noodzakelijk.
Als je een veld wilt wijzigen moet je het statement "alter table" gebruiken.
Met dit statement wordt in de tabel "film" het veld "samenvatting" toegevoegd met als veldtype "text".
ALTER TABLE `film` ADD `samenvatting` TEXT NULL AFTER `genre`;
Met dit statement wordt het veld "genre" gewijzigd in een enumeratie (opsomming) en moet het veld ingevuld worden (not null).
ALTER TABLE `film` CHANGE `genre` `genre` ENUM('romantiek','thriller','actie')
CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
Met dit statement wordt het veld "jaar" verwijderd uit de tabel "film".
alter table film drop jaar