Skip to main content

SQL

Inleiding

We kijken naar een database met drie entiteiten; student, vak en een koppeltabel.

De relatie student-vak is veel-op-veel (N:M) want één student kan meer vakken hebben en één vak kan bij meer studenten horen.

We hebben dus een N:M relatie en hebben daarbij een koppeltabel nodig.

Als we het cijfer van een student voor een vak willen opslaan dan moet dat in de koppeltabel. Het cijfer gaat namelijk over de combinatie student-vak. Alles wat over de combinatie gaat moet in de koppeltabel.

We hebben dus het volgende ERD.

image-1676378321011.png

Database maken

Start MariaDB (MySQL) in XAMPP en ga naar http://localhost/phpmyadmin

Je kunt ook op de admin in XAMPP drukken:

image-1676379334123.png

  • In phpmyadmin, maak je een nieuwe database en noem die student.

image-1676378685637.png

image-1676378813133.png

  • Controleer of de database is geïmporteerd.

image-1676378544439.png

  • Klap de drie entiteiten (cijfer, student en vak) open en kijk of je alle kolommen ziet.

Select Query

Om gegevens uit de database te halen is een aparte taal bedacht. Dit heet SQL. Een SQL programmaatje wordt een query genoemd en telt meestal maar een paar regel.

De meeste queries halen gegeven uit de database en de meest eenvoudige query haalt alle gegevens uit één entiteit. Stel je wilt alle informatie van alle studenten zien, dan is dit de query:

SELECT * FROM student

Voer deze query uit in phpmyadmin onder het tabje SQL.

image-1676379711258.png

Zorg er voor dat je de juiste database hebt geselecteerd (hebt aangeklikt).

Je hebt nu een * in de query gebruikt. Dat betekent dat je alle velden laat zien. Stel dat je alleen de voornaam en het email adres wilt afdrukken dan kan je dat als volgt.

SELECT voornaam, email FROM student

Aliasen voor kolomnamen

Stel dat je nu de kolomnamen wilt veranderen dan kan je aliassen gebruiken. Stel de kolomnaam voornaam veranderen in Naam, en email in eMail dan kan dat als volgt.

SELECT voornaam as 'Naam', email as 'eMail' FROM student

 

 

----------------------------------------------------------

image-1676378580643.png

image-1676378514972.png