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

SQL
1 / 34
volgende
Slide 1: Tekstslide
InformaticaWOStudiejaar 4,5

In deze les zit 34 slide, met interactieve quiz en tekstslide.

time-iconLesduur is: 45 min

Onderdelen in deze les

SQL

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Een tabel

Slide 2 - Tekstslide

Deze slide heeft geen instructies

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 - Quizvraag

Deze slide heeft geen instructies

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

Slide 4 - Open vraag

Deze slide heeft geen instructies

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

Slide 5 - Open vraag

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

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 - Tekstslide

Deze slide heeft geen instructies


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

Slide 9 - Quizvraag

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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


Slide 13 - Tekstslide

Deze slide heeft geen instructies


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

Slide 14 - Quizvraag

Deze slide heeft geen instructies

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 - Quizvraag

Deze slide heeft geen instructies

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 - Quizvraag

Deze slide heeft geen instructies

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 - Tekstslide

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 - Quizvraag

Deze slide heeft geen instructies

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 - Quizvraag

Deze slide heeft geen instructies


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 - Quizvraag

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 - Quizvraag

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies


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 - Quizvraag

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 - Quizvraag

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 - Quizvraag

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Quizvraag

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

Deze slide heeft geen instructies

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 - Tekstslide

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 - Tekstslide

Deze slide heeft geen instructies