Tot nu toe bestonden de databases en tabellen al. In dit hoofdstuk leer je hoe je ze zelf maakt en aanpast met DDL (Data Definition Language).
CREATE DATABASE mijn_webshop;
Dat is alles. En om een database te verwijderen:
DROP DATABASE mijn_webshop;
Pas op met DROP: het verwijdert de hele database inclusief alle tabellen, data, sleutels, constraints -- alles. Dit is onherstelbaar. Er is geen CTRL+Z.
Je begint aan een nieuw project voor een school. Maak de database aan.
Het project is geannuleerd. Ruim de database school op.
Bij het maken van een tabel geef je de naam, de kolommen en hun datatypes op.
CREATE TABLE users (
id INT,
username VARCHAR(50),
email VARCHAR(100),
geboortedatum DATE
);
Om een tabel te verwijderen:
DROP TABLE users;
Belangrijk: DROP TABLE verwijdert de hele tabel met alle data, zonder mogelijkheid tot ongedaan maken.
Je webshop heeft een producttabel nodig met een id (geheel getal), naam (max 100 tekens), prijs (max €99999,99) en voorraad (geheel getal). Maak de tabel products.
Je bouwt een blog. Maak een tabel berichten met een id (geheel getal), titel (max 200 tekens), inhoud (lange tekst) en publicatiedatum (datum + tijd).
Met ALTER TABLE pas je bestaande tabellen aan.
Kolom toevoegen:
ALTER TABLE users ADD telefoonnummer VARCHAR(15);
Datatype wijzigen:
ALTER TABLE users MODIFY username VARCHAR(100);
Dit kan alleen als bestaande data past in het nieuwe datatype. Als iemand "11a" als huisnummer heeft, kun je de kolom niet wijzigen naar INT.
Kolom verwijderen:
ALTER TABLE users DROP COLUMN geboortedatum;
Let op: DROP COLUMN verwijdert alle data in die kolom, onherstelbaar.
De webshop gaat producten indelen in categorieën. Voeg een categoriekolom (max 50 tekens) toe aan de tabel products.
De productnamen blijken soms langer dan 100 tekens. Vergroot de kolom naam in products naar 200 tekens.
De webshop houdt de voorraad niet meer bij in de database. Verwijder die kolom uit products.
Je bouwt een bestelsysteem. Maak een tabel orders met id (geheel getal), klantid (geheel getal), productid (geheel getal) en aantal (geheel getal). Je realiseert je daarna dat je vergeten bent een besteldatum toe te voegen. Schrijf beide queries.