SQL 2 - Like, limit, Update, Delete

SQL
1 / 30
next
Slide 1: Slide
InformaticaWOStudiejaar 4,5

This lesson contains 30 slide, with interactive quiz and text slide.

time-iconLesson duration is: 45 min

Items in this lesson

SQL

Slide 1 - Slide

This item has no instructions

Fundament
SQL

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

Slide 2 - Slide

This item has no instructions

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

Slide 3 - Slide

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 4 - Slide

This item has no instructions

meerdere regels en de ;
Voor de leesbaarheid kun je een SQL opdracht op 
meerdere regels zetten, daarom is de ; heel belangrijk!
Daarmee wordt het einde aangegeven van de regel (bij MySQL)
Dit is dezelfde opdracht:

Slide 5 - Slide

This item has no instructions

WHERE
Vorige les maakten we al kennis met de WHERE clausule 

Je kunt die maar 1 keer gebruiken in een query

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

Slide 6 - Slide

This item has no instructions

WHERE: LIKE 1/2
Met de LIKE operator kun je (in combinatie met WHERE) filteren als 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 7 - Slide

This item has no instructions

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

  • WHERE naam LIKE ' % c h i c k e n % ' ;
  • WHERE naam LIKE ' _ _ _ ' ;
  • WHERE naam LIKE ' \ _ ' ;
  • WHERE naam LIKE ' a % c d e ' ;
  • WHERE emailadres NOT LIKE ' % p l a n e e t . c o m ' ;

Slide 8 - Slide

This item has no instructions

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


Slide 9 - Slide

This item has no instructions


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

Slide 10 - Quiz

This item has no instructions


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

Slide 11 - Quiz

This item has no 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 12 - Quiz

This item has no 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 13 - Quiz

This item has no instructions

SQL: oefenen in w3schools
https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc
maak een query:
  • 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 14 - Slide

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 15 - Quiz

This item has no 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 16 - Quiz

This item has no 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 17 - 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 18 - Quiz

This item has no 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 19 - Slide

This item has no 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 20 - Slide

This item has no 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 21 - Slide

This item has no 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 22 - Slide

This item has no 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 23 - 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 24 - 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 25 - Quiz

This item has no 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 26 - Slide

This item has no 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 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.
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 28 - Slide

This item has no instructions

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

Slide 29 - Slide

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 30 - Slide

This item has no instructions