Inleiding tot Data Definition Language (DDL)
DDL staat voor Data Definition Language, een verzameling commando's om het ontwerp van een database volledig te beschrijven in SQL (Structured Query Language). De belangrijkste commando's 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 commando's CREATE, ALTER en DROP in MySQL
a. CREATE
Het CREATE-commando wordt gebruikt om een nieuwe database, tabel of view te maken.
- Voorbeeld:
CREATE DATABASE toko_buku; - Uitleg: Dit commando maakt een nieuwe database met de naam
toko_buku.
b. ALTER
Het ALTER-commando wordt gebruikt om de structuur van een reeds gemaakte tabel te wijzigen. Deze bewerking kan worden gebruikt om kolommen toe te voegen, te verwijderen, te wijzigen, de tabel aan te passen of nieuwe attributen aan kolommen toe te voegen.
- Voorbeeld:
ALTER TABLE boek ADD titel varchar(20); - Uitleg: Dit commando voegt een nieuw veld (kolom) toe met de naam
titelvan het gegevenstypevarcharmet een maximale lengte van 20 tekens aan de tabelboek.
c. DROP
Het DROP-commando wordt gebruikt om objecten in de database permanent te verwijderen. Deze objecten kunnen de database zelf zijn, tabellen, functies, indexen, procedures, triggers of views.
- Voorbeeld:
DROP DATABASE toko_buku; - Uitleg: Dit commando verwijdert de database met de naam
toko_buku.
Gegevenstypen in MySQL
Het kiezen van het juiste gegevenstype is erg belangrijk voor de efficiëntie van de databaseopslag. Hieronder volgen de categorieën gegevenstypen in MySQL:
A. Numerieke gegevenstypen (Getallen)
Worden gebruikt om getalsgegevens op te slaan.
- TINYINT: Slaat hele getallen op (positief/negatief). Bereik: -128 tot 127. Grootte: 1 byte (8 bits).
- SMALLINT: Slaat hele getallen op. Bereik: -32768 tot 32767. Grootte: 2 bytes (16 bits).
- MEDIUMINT: Slaat hele getallen op. Bereik: -8388608 tot 8388607. Grootte: 3 bytes (24 bits).
- INT: Slaat hele getallen op. Bereik: -2147483648 tot 2147483647. Grootte: 4 bytes (32 bits).
- BIGINT: Slaat hele getallen op grote schaal op. Bereik: -9223372036854775808 tot 9223372036854775807. Grootte: 8 bytes (64 bits).
- FLOAT: Slaat gebroken getallen op met enkele precisie. Grootte: 4 bytes (32 bits).
- DOUBLE / REAL: Slaat gebroken getallen op met dubbele precisie. Grootte: 8 bytes (64 bits).
- DECIMAL / NUMERIC: Slaat gebroken getallen op met zeer hoge precisie. Grootte: 8 bytes (64 bits).
B. String gegevenstypen (Tekst)
Worden gebruikt om karakter- of tekstgegevens op te slaan.
- CHAR: Slaat stringgegevens op met een vaste grootte (bijvoorbeeld: artikel-ID, BSN-nummer). Bereik: 0 tot 255 tekens.
- VARCHAR: Slaat stringgegevens op met een dynamische/veranderlijke grootte. Bereik: 0 tot 65.535 tekens (in de nieuwste versie).
- 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
Worden gebruikt om tijd- en datumgegevens op te slaan.
- DATE: Slaat een datum op (Formaat:
YYYY-MM-DD). Bereik: 1000-01-01 tot 9999-12-31. Grootte: 3 bytes. - TIME: Slaat een tijd op (Formaat:
HH:MM:SS). Bereik: -838:59:59 tot +838:59:59. Grootte: 3 bytes. - DATETIME: Combinatie van datum en tijd (Formaat:
YYYY-MM-DD HH: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:
YYYY). Bereik: 1900 tot 2155. Grootte: 1 byte.
D. BLOB-gegevenstypen (Binair)
BLOB staat voor Binary Large Object. Wordt gebruikt om zuivere binaire gegevens op te slaan, is hoofdlettergevoelig en ideaal voor multimediabestanden zoals afbeeldingen, documenten of geluid.
- 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 verschillende attributen (kolommen) die wordt gebruikt om rijen gegevens uniek te identificeren in een tabel of om een tabel te koppelen (relateren) aan een andere tabel.
- Super Key: Een verzameling attributen die kan worden gebruikt om elke rij gegevens in een tabel uniek te identificeren.
- Candidate Key: Een minimale super key zonder redundante attributen. Een candidate key wordt gekozen uit de combinatie van de minste velden om een unieke waarde te identificeren.
- Primary Key: De geselecteerde candidate key die fungeert als de primaire identificatie van een record. Gegevens in een primary key mogen niet leeg zijn (Not Null) en mogen niet dupliceren. Elke tabel mag slechts één Primary Key hebben.
- Alternate Key: De candidate key die niet is geselecteerd als Primary Key.
- Foreign Key: Een sleutel die wordt gebruikt om de ene tabel met een andere tabel te relateren, waardoor een ouder- en kindrelatie ontstaat. De Primary Key in de oudertabel wordt verwezen door de Foreign Key in de bijbehorende kindtabel.
- Composite Key: Een sleutel die bestaat uit twee of meer attributen om een entiteit uniek te identificeren. Wordt meestal gebruikt wanneer geen enkele individuele kolom voldoet aan de vereisten voor een Primary Key.
Soorten Constraints in MySQL
Een constraint is een beperkingsregel die wordt toegepast op een kolom of tabel om de integriteit en validiteit van gegevens te waarborgen.
- NOT NULL: Zorgt ervoor dat een kolom niet leeg mag worden gelaten bij het invullen van een record. De kolom moet worden ingevuld met gegevens.
- UNIQUE: Zorgt ervoor dat elke waarde in een kolom uniek is (geen duplicatie van records).
- PRIMARY KEY: Een combinatie van de constraints
NOT NULLenUNIQUE. Identificeert elke rij in een tabel uniek. Er is slechts éénPRIMARY KEYtoegestaan in een tabel. - FOREIGN KEY: Handhaaft de referentiële integriteit tussen tabellen. Zorgt ervoor dat de waarde in de kindkolom een geldige verwijzing heeft naar de ouderkolom (andere tabel).
- CHECK: Voert validatie of controle uit voordat gegevens worden opgeslagen in de database. De gegevens worden geëvalueerd met een booleaanse waarde; indien waar wordt voldaan, worden ze opgeslagen, maar indien onwaar zal SQL de gegevens weigeren en een foutmelding weergeven.
Geschreven door
Wilan
Vaste bijdrager van Bali Island Tekno die actief kennis deelt over technologie, programmeren en de wereld van software-engineering.