De indexen definieer je de parameters INDEX, UNIQUE en A_I. Je herkent ze in PHPMyAdmin aan het gele en grijze sleuteltje.
Je kan ook de relaties bepalen via de “Structuur” tab en dan de knop “Relatieoverzicht”.
Een simpele SELECT-query bestaat bijvoorbeeld uit de volgende componenten:
SELECT kolom_naam (,...) FROM tabel_naam;
Eerst specificeer je het SQL-commando SELECT en vervolgens geef je aan op welke kolommen en tabellen het commando van toepassing is. Een puntkomma sluit het statement af.
Voorbeeld:
SELECT Voornaam, Achternaam FROM Auteurs;
SELECT kolom_naam (,...) FROM tabel WHERE voorwaarde;
De voorwaarde bestaat uit 3 onderdelen:
Verschillende voorwaardes kunnen met AND en OR zijn.
Voorbeelden:
SELECT Voornaam, Achternaam FROM Auteurs WHERE Geboorteplaats='Cambridge'; SELECT Voornaam, Achternaam FROM Auteurs WHERE Geboorteplaats LIKE '%bridge%'; SELECT Voornaam, Achternaam FROM Auteurs WHERE Geboortejaar >= '1973'; SELECT Voornaam, Achternaam FROM Auteurs WHERE Geboortejaar >= '1970' AND Geboortejaar <= '1980';
SELECT kolom_naam (,...) FROM tabel WHERE voorwaarde ORDER BY sorteervolgorde_kolom_naam;
SELECT tabel_1.kolom_naam (,...) FROM tabel_1, tabel_2 WHERE tabel_1.kolom_primaire_id = tabel_2.kolom_secundaire_id;
De tabel “Auteurs” en “Werken” worden gerelateerd via de het index veld auteur_id en de overeenkomstige rijen worden getoond in het resultaat.
SELECT * FROM Auteurs INNER JOIN Werken ON Auteurs.auteur_id = Werken.auteur_id;
De tabel “Auteurs”, “Werken” en “Uitgeverij” worden gerelateerd via de het index veld auteur_id en uitgeverij_id en de overeenkomstige rijen worden getoond in het resultaat.
SELECT * FROM Auteurs INNER JOIN Werken ON Auteurs.auteur_id = Werken.auteur_id INNER JOIN Uitgeverij ON Werken.uitgeverij_id = Uitgeverij.uitgeverij_id;
Alle rijen van de link tabel “Werken” worden getoond, als er geen relatie met rechtse tabel “Uitgeverij” wordt gevonden worden de resultaten met NULL opgevuld.
SELECT * FROM Werken LEFT JOIN Uitgeverij ON Werken.uitgeverij_id = Uitgeverij.uitgeverij_id;
werk_id | auteur_id | uitgeverij_id | Titel | Eerste publicatie | uitgeverij_id | Naam |
---|---|---|---|---|---|---|
1 | 1 | 1 | In de Ban van de Ring | 1954 | 1 | Uitgeverij Unieboek-Het Spectrum |
2 | 1 | 2 | De Hobbit | 1937 | 2 | George Allen & Unwin |
3 | 1 | NULL | De Silmarillion | 1977 | NULL | NULL |
4 | 2 | NULL | Het Transgalactisch Liftershandboek | 1979 | NULL | NULL |
5 | 2 | NULL | Het Restaurant aan het Einde van het Heelal | 1980 | NULL | NULL |
6 | 2 | NULL | Het Leven, het Heelal en de Rest | 1984 | NULL | NULL |
Alle rijen van de rechtste tabel “Uitgeverij” worden getoond, als er geen relatie met links tabel “Werken” wordt gevonden worden de resultaten met NULL opgevuld.
SELECT * FROM Werken RIGHT JOIN Uitgeverij ON Werken.uitgeverij_id = Uitgeverij.uitgeverij_id;
werk_id | auteur_id | uitgeverij_id | Titel | Eerste publicatie | uitgeverij_id | Naam |
---|---|---|---|---|---|---|
1 | 1 | 1 | In de Ban van de Ring | 1954 | 1 | Uitgeverij Unieboek-Het Spectrum |
2 | 1 | 2 | De Hobbit | 1937 | 2 | George Allen & Unwin |
NULL | NULL | NULL | NULL | NULL | 3 | Cosmos |