SQL 2 - EK - Like, limit, Update, Delete

SQL
1 / 34
suivant
Slide 1: Diapositive
InformaticaWOStudiejaar 4,5

Cette leçon contient 34 diapositives, avec quiz interactifs et diapositives de texte.

time-iconLa durée de la leçon est: 45 min

Éléments de cette leçon

SQL

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

Een tabel

Slide 2 - Diapositive

Cet élément n'a pas d'instructions

Welke query laat de achternamen van alle auteurs zien?
A
SELECT FROM auteurs
B
SELECT * FROM auteurs;
C
SELECT achternaam FROM auteurs;
D
SELECT NAAM FROM AUTEURS;

Slide 3 - Quiz

Cet élément n'a pas d'instructions

Maak een query waarmee alle namen worden geselecteerd die beginnen met een "B"

Slide 4 - Question ouverte

Cet élément n'a pas d'instructions

Maak een query waarmee alle namen worden geselecteerd die geboren zijn voor 1964

Slide 5 - Question ouverte

Cet élément n'a pas d'instructions

Fundament
introductie SQL

Fundament kerndomein C: Databases en SQL
Hoofdstuk 1.5 tmt 1.9
https://fundament-online.nl/leeromgeving/content.php?paragraaf_id=114869

Slide 6 - Diapositive

Cet élément n'a pas d'instructions

Leerdoelen
Na deze les kun je:
  • uitleggen waarom een database belangrijk is;
  • uitleggen wat een SQL-injection is;
  • uitleggen wat LIKE doet;
  • uitleggen wat LIMIT doet;
  • met SQL een field of kolom updaten;
  • met SQL een record verwijderen.

Slide 7 - Diapositive

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.
SQL: injection
In je database wordt bijvoorbeeld bijgehouden wat de inlognaam en wachtwoord is van elke gebruiker
Je moet de database dus goed beschermen!
Als je namelijk invoer-velden op je website hebt, dan kunnen die misbruikt worden voor een zgn. SQL injectie: https://fundament-online.nl/leeromgeving/content.php?id=49141

Slide 8 - Diapositive

Cet élément n'a pas d'instructions


Welke wildcard gebruik je met LIKE om één enkel karakter te vervangen?
A
%
B
_
C
*
D
$

Slide 9 - Quiz

Cet élément n'a pas d'instructions

meerdere regels en de ;
Voor de leesbaarheid kun je een SQL opdracht op 
meerdere regels zetten, 
daarom is de ; heel belangrijk!

Dit is dezelfde opdracht:

Slide 10 - Diapositive

Cet élément n'a pas d'instructions

WHERE
Vorige les maakten we al kennis met de WHERE clausule 

Je kunt die maar 1 keer gebruiken in een query

Als je er meerdere voorwaarden wil gebruiken heb je Booleaanse (ook wel logische) operatoren nodig: 
AND, OR, NOT

Slide 11 - Diapositive

Cet élément n'a pas d'instructions

WHERE: LIKE 2/2
Wat voorbeelden (extra spaties voor leesbaarheid):

  • WHERE naam LIKE ' %chicken% ' ;
  • WHERE naam LIKE ' _ _ _ ' ;
  • WHERE naam LIKE ' \_ ' ;
  • WHERE naam LIKE ' a%cde ' ;
  • WHERE emailadres NOT LIKE ' %planeet.com ' ;

Slide 12 - Diapositive

Cet élément n'a pas d'instructions

LIMIT
LIMIT: beperkt hoeveel rijen je in je resultaat terug krijgt


Slide 13 - Diapositive

Cet élément n'a pas d'instructions


Welke operator gebruik je om te zoeken naar patronen in een SQL-query?
A
=
B
LIKE
C
BETWEEN
D
EXISTS

Slide 14 - Quiz

Cet élément n'a pas d'instructions

Hoe zou je zoeken naar alle namen die beginnen met de letter 'A'?

WHERE name LIKE ...
A
'%A%'
B
'_A'
C
'A%'
D
'%A'

Slide 15 - Quiz

Cet élément n'a pas d'instructions

Welke van de volgende zoekopdrachten geeft alle resultaten die eindigen met 'son'?

WHERE name LIKE ...
A
'%son'
B
'_son'
C
'son%'
D
'%son%'

Slide 16 - Quiz

Cet élément n'a pas d'instructions

SQL: oefenen in w3schools
https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc
maak een query:
  • op meerdere regels (of juist 1 regel) en andersom
  • waar Address een ä bevat
  • die maximaal 3 regels als resultaat teruggeeft
  • met City London maar de PostalCode niet heeft WX
  • met City Berlin maar de PostalCode niet is 12209
Let op: 
Gebruik nu geen AI, maar alleen je aantekeningen of W3Schools
timer
7:00

Slide 17 - Diapositive

met City Berlin maar de PostalCode niet is 12209

> geeft foutmelding, omdat die regel niet bestaat in de database!

Wat doet de LIMIT-clausule in een SQL-query?
A
Het beperkt de lengte van strings in een kolom
B
Het geeft een maximum aantal rijen terug
C
Het beperkt het aantal kolommen
D
Het sorteert de resultaten

Slide 18 - Quiz

Cet élément n'a pas d'instructions

Hoe zou je alleen de eerste 5 rijen van een tabel ophalen?

SELECT * FROM tabel ...
A
LIMIT 5;
B
LIMIT 1 TO 5;
C
TOP 5;
D
LIMIT 5

Slide 19 - Quiz

Cet élément n'a pas d'instructions


Wat gebeurt er als je LIMIT 0 gebruikt in een query?

De query ...
A
geeft een foutmelding
B
retourneert geen resultaten
C
retourneert alle resultaten
D
retourneert de eerste rij

Slide 20 - Quiz

LIMIT 0 geeft geen foutmelding, maar retourneert gewoon geen rijen, zelfs als er gegevens in de tabel staan. Dit kan nuttig zijn om bijvoorbeeld de structuur van de query te testen zonder daadwerkelijk resultaten te ontvangen.
Wat gebeurt er als je geen LIMIT gebruikt in een SQL-query?

De query retourneert ...
A
geen resultaten
B
maximaal 10 resultaten
C
alle resultaten
D
de laatste rij

Slide 21 - Quiz

Cet élément n'a pas d'instructions

Insert, Update en Delete
We hebben een db gelezen en gefiltert... maar wat als we hem willen aanpassen? 

Daarvoor bestaan de volgende functies:
Insert Into ... Values() : toevoegen aan de database 
Update ... Set : wijzigen in de database
Delete From : verwijderen uit de database

Slide 22 - Diapositive

Cet élément n'a pas d'instructions

INSERT INTO
INSERT INTO databasenaam(naam, adres, stad)
VALUES ('Tom B. Erichsen', 'Skagen 21', 'Stavanger');

Let op : sommige tabellen hebben een "auto-increment" veld/kolom, die automatisch nummert. 
Als dat het geval is, dan zet je die niet in de values lijst (dat gaat dan automatisch)

Slide 23 - Diapositive

Cet élément n'a pas d'instructions

UPDATE ... SET
UPDATE databasenaam
SET City = 'London', Address = 'abc 123'
WHERE CustomerID = 5;

Let op : bij Update en Delete is de Where erg belangrijk, omdat die bepaalt wat er aangepast wordt

Slide 24 - Diapositive

Cet élément n'a pas d'instructions

DELETE FROM
DELETE FROM databasenaam
WHERE CustomerID = 5;

Let op : bij Update en Delete is de WHERE erg belangrijk, omdat die bepaalt wat er aangepast wordt

Slide 25 - Diapositive

Cet élément n'a pas d'instructions


Wat moet je altijd specificeren bij een UPDATE-query om te voorkomen dat alle rijen worden gewijzigd?
A
GROUP BY
B
WHERE
C
FILTER
D
LIMIT

Slide 26 - Quiz

LIMIT 0 geeft geen foutmelding, maar retourneert gewoon geen rijen, zelfs als er gegevens in de tabel staan. Dit kan nuttig zijn om bijvoorbeeld de structuur van de query te testen zonder daadwerkelijk resultaten te ontvangen.
Welke query verwijdert alle producten met een 'id' van 10?
A
DELETE FROM producten WHERE id = 10;
B
DROP FROM producten WHERE id = 10;
C
REMOVE FROM producten WHERE id = 10;
D
ERASE FROM producten WHERE id = 10;

Slide 27 - Quiz

LIMIT 0 geeft geen foutmelding, maar retourneert gewoon geen rijen, zelfs als er gegevens in de tabel staan. Dit kan nuttig zijn om bijvoorbeeld de structuur van de query te testen zonder daadwerkelijk resultaten te ontvangen.

Wat gebeurt er als je een UPDATE-query zonder een WHERE-clausule uitvoert?
A
Alleen de eerste rij wordt bijgewerkt
B
Alle rijen worden bijgewerkt
C
Geen enkele rij wordt bijgewerkt
D
De query retourneert een foutmelding

Slide 28 - Quiz

Cet élément n'a pas d'instructions

Oefenen?
Helaas kunnen we niet eenvoudig in de browser oefenen op W3Schools, omdat dat is uitgeschakeld in verband met veiligheid

We gaan later een lokale database installeren waar we wel kunnen oefenen

Slide 29 - Diapositive

Cet élément n'a pas d'instructions

Wat gebeurt er als je een UPDATE-query zonder een WHERE-clausule uitvoert?
A
Geen enkele rij wordt bijgewerkt
B
De query retourneert een foutmelding
C
Alle rijen worden bijgewerkt
D
Alleen de eerste rij wordt bijgewerkt

Slide 30 - Quiz

LIMIT 0 geeft geen foutmelding, maar retourneert gewoon geen rijen, zelfs als er gegevens in de tabel staan. Dit kan nuttig zijn om bijvoorbeeld de structuur van de query te testen zonder daadwerkelijk resultaten te ontvangen.
WHERE: LIKE 1/2
Met de LIKE operator kun je (i.c.m. WHERE) filteren op een waarde waarvan je de waarde niet exact weet

  • Met % geef je aan dat er iets voor/na/tussen staat
  • Met _ geef je aan dat er 1 karakter staat op die plek
  • Met \_ geef je aan dat er een _ op die plek moet staan (het is dus een escape char... weet je nog?)

Slide 31 - Diapositive

Cet élément n'a pas d'instructions

Opdracht # 1
  1. Kopieer de code
    rechts
  2. Sla het op als:
    index0_1.htm
  3. Open het bestand
    in je browser
  4. Wat gebeurt er? Zie je een JS functie?
timer
5:00

Slide 32 - Diapositive

Cet élément n'a pas d'instructions

Leerdoelen
Nu kun je:
  • uitleggen waarom een database belangrijk is;
  • uitleggen wat een SQL-injection is;
  • uitleggen wat LIKE doet;
  • uitleggen wat LIMIT doet;
  • met SQL een field of kolom updaten;
  • met SQL een of meerdere records verwijderen.

Slide 33 - Diapositive

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.

Slide 34 - Diapositive

Cet élément n'a pas d'instructions