Inleiding tot Data Definition Language (DDL)
DDL staat voor Data Definition Language, een verzameling opdrachten om het volledige databaseontwerp in SQL (Structured Query Language) te beschrijven. De belangrijkste opdrachten in DDL zijn:
- CREATE: Wordt gebruikt om nieuwe objecten te maken.
- ALTER: Wordt gebruikt om de structuur van bestaande objecten te wijzigen.
- DROP: Wordt gebruikt om objecten te verwijderen.
Gebruik van de CREATE-, ALTER- en DROP-opdrachten in MySQL
a. CREATE
De opdracht CREATE wordt gebruikt om nieuwe databases, nieuwe tabellen of nieuwe views te maken.
- Voorbeeld: CREATE DATABASE toko_buku;
- Uitleg: Deze opdracht maakt een nieuwe database met de naam toko_buku.
b. ALTER
De opdracht ALTER wordt gebruikt om de structuur van een reeds aangemaakte tabel te wijzigen. Deze bewerking kan kolommen toevoegen, verwijderen, wijzigen, de tabel aanpassen of nieuwe attributen aan kolommen toekennen.
- Voorbeeld: ALTER TABLE buku ADD judul_buku varchar(20);
- Uitleg: Deze opdracht voegt een nieuwe veld (kolom) toe met de naam judul_buku en het gegevenstype varchar met een maximale lengte van 20 tekens aan de tabel buku.
c. DROP
De opdracht DROP verwijdert een object permanent uit de database. Het object kan de database zelf zijn, een tabel, een functie, een index, een procedure, een trigger of een view.
- Voorbeeld: DROP DATABASE toko_buku;
- Uitleg: Deze opdracht verwijdert de database met de naam toko_buku.
Gegevenstypen in MySQL
Het kiezen van het juiste gegevenstype is erg belangrijk voor een efficiënte databaseopslag. Hieronder staan de categorieën gegevenstypen in MySQL:
A. Numerieke Gegevenstypen
Wordt gebruikt om numerieke gegevens op te slaan.
- TINYINT: Slaat gehele getallen op (positief/negatief). Bereik: -128 tot 127. Grootte: 1 byte (8 bits).
- SMALLINT: Slaat gehele getallen op. Bereik: -32768 tot 32767. Grootte: 2 bytes (16 bits).
- MEDIUMINT: Slaat gehele getallen op. Bereik: -8388608 tot 8388607. Grootte: 3 bytes (24 bits).
- INT: Slaat gehele getallen op. Bereik: -2147483648 tot 2147483647. Grootte: 4 bytes (32 bits).
- BIGINT: Slaat grootschalige gehele getallen op. Bereik: -9223372036854775808 tot 9223372036854775807. Grootte: 8 bytes (64 bits).
- FLOAT: Slaat drijvende-kommagetallen met enkele precisie op. Grootte: 4 bytes (32 bits).
- DOUBLE / REAL: Slaat drijvende-kommagetallen met dubbele precisie op. Grootte: 8 bytes (64 bits).
- DECIMAL / NUMERIC: Slaat vaste-kommagetallen met een zeer hoge precisie op. Grootte: 8 bytes (64 bits).
B. Tekenreeksgegevenstypen (String)
Wordt gebruikt om teken- of tekstgegevens op te slaan.
- CHAR: Slaat tekenreeksen met een vaste lengte op (bijv. artikel-ID, burgerservicenummer). Bereik: 0 tot 255 tekens.
- VARCHAR: Slaat tekenreeksen met een variabele lengte op. Bereik: 0 tot 65.535 tekens (in de nieuwste versies).
- TINYTEXT: Slaat korte tekstgegevens op. Bereik: 0 tot 255 tekens.
- TEXT: Slaat standaard tekstgegevens op. Bereik: 0 tot 65.535 tekens.
- MEDIUMTEXT: Slaat middellange tekstgegevens op. Bereik: 0 tot 16.777.215 tekens.
- LONGTEXT: Slaat zeer lange tekstgegevens op. Bereik: 0 tot 4.294.967.295 tekens.
C. Datum- en Tijdgegevenstypen
Wordt gebruikt om datum- en tijdgegevens op te slaan.
- DATE: Slaat een datum op (Formaat: JJJJ-MM-DD). Bereik: ‘1000-01-01’ tot ‘9999-12-31’. Grootte: 3 bytes.
- TIME: Slaat een tijd op (Formaat: UU:MM:SS). Bereik: ‘-838:59:59’ tot ‘+838:59:59’. Grootte: 3 bytes.
- DATETIME: Combinatie van datum en tijd (Formaat: JJJJ-MM-DD UU:MM:SS). Bereik: ‘1000-01-01 00:00:00’ tot ‘9999-12-31 23:59:59’. Grootte: 8 bytes.
- YEAR: Slaat een jaar op (Formaat: JJJJ). Bereik: 1900 tot 2155. Grootte: 1 byte.
D. BLOB-gegevenstypen (Binair)
BLOB staat voor Binary Large Object. Het wordt gebruikt om zuiver binaire gegevens op te slaan, is hoofdlettergevoelig en is ideaal voor multimediabestanden zoals afbeeldingen, documenten of audio.
- BIT: Slaat binaire gegevens op. Bereik: 64 binaire cijfers.
- TINYBLOB: Maximale grootte van 255 bytes.
- BLOB: Maximale grootte van 65.535 bytes.
- MEDIUMBLOB: Maximale grootte van 16.777.215 bytes.
- LONGBLOB: Maximale grootte van 4.294.967.295 bytes.
Soorten Sleutels in SQL
Een sleutel in SQL is een combinatie van een of meer attributen (kolommen) die dient om rijen gegevens in een tabel uniek te onderscheiden of om de ene tabel met de andere te verbinden (te relateren).
- Supersleutel: Een verzameling attributen die kan worden gebruikt om elke rij gegevens in een tabel uniek te identificeren.
- Kandidaatsleutel: Een minimale supersleutel zonder overbodige attributen. Een kandidaatsleutel wordt gekozen uit de kleinste combinatie van velden die unieke waarden kan identificeren.
- Primaire Sleutel: De kandidaatsleutel die is geselecteerd als de hoofdidentificatie van een record. Gegevens in een primaire sleutel mogen niet leeg zijn (Not Null) en mogen niet dupliceren. Elke tabel kan slechts één Primaire Sleutel hebben.
- Alternatieve Sleutel: Een kandidaatsleutel die niet is gekozen als Primaire Sleutel.
- Vreemde Sleutel: Een sleutel die wordt gebruikt om de ene tabel met de andere te verbinden, waardoor een ouder-kindrelatie ontstaat. De Primaire Sleutel in de oudertabel wordt gerefereerd door de Vreemde Sleutel in de gerelateerde (kind)tabel.
- Samengestelde Sleutel: Een sleutel die uit twee of meer attributen bestaat om een entiteit uniek te identificeren. Meestal gebruikt wanneer geen enkele kolom voldoet aan de eisen voor een Primaire Sleutel.
Soorten Constraints in MySQL
Constraints zijn regels die worden toegepast op kolommen of tabellen om de integriteit en geldigheid van gegevens te handhaven.
- NOT NULL: Zorgt ervoor dat een kolom niet leeg mag blijven bij het invoegen van een record. De kolom moet worden gevuld met gegevens.
- UNIQUE: Zorgt ervoor dat elke waarde in een kolom verschillend is van de andere (geen dubbele records).
- PRIMARY KEY: Een combinatie van de NOT NULL- en UNIQUE-constraints. Identificeert elke rij in een tabel uniek. Slechts één PRIMARY KEY is toegestaan per tabel.
- FOREIGN KEY: Handhaaft de referentiële integriteit tussen tabellen. Zorgt ervoor dat de waarde in de kindkolom een geldige referentie heeft in de ouderkolom (in een andere tabel).
- CHECK: Voert validatie of controle uit voordat gegevens in de database worden opgeslagen. Gegevens worden geëvalueerd met een booleaanse waarde; als ze aan de voorwaarde voldoen, wordt deze als true beschouwd en opgeslagen, maar als false, wijst SQL de gegevens af en geeft een foutmelding weer.






