H2: SELECT

SELECT queries
WDV-III en DBS-I
Les H2 / Week 1
1 / 35
volgende
Slide 1: Tekstslide
ICTMBOStudiejaar 1

In deze les zitten 35 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

SELECT queries
WDV-III en DBS-I
Les H2 / Week 1

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Even terugblikken:
  • Wat is een database en hoe is die opgebouwd
  • Hoe kunnen we onze tabel ontwerpen
  • Enkele datatypen
  • Kolomattributen: null, A_I, default, primary key

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Terugblik op weekcheck H1
  • Eerste kolom is 'id' met PRIMARY KEY 'A/I'
  • Kolomnaam kort en krachtig
  • Kolomnamen met kleine letters
  • Geen spaties in kolomnamen
  • Geen vreemde tekens (zoals '&', '!' en '#') 
  • _ als spatie, dus 'aantal_kinderen' 
  • String = VARCHAR met waarde '255'

Slide 3 - Tekstslide

Deze slide heeft geen instructies

Welk datatype zouden we gebruiken voor...
Een naam
A
VARCHAR
B
FLOAT
C
INT
D
DATETIME

Slide 4 - Quizvraag

Deze slide heeft geen instructies

Welk datatype zouden we gebruiken voor...
Een uurloon
A
VARCHAR
B
FLOAT
C
INT
D
DATETIME

Slide 5 - Quizvraag

Deze slide heeft geen instructies

Welk datatype zouden we gebruiken voor...
Een geboortedatum
A
VARCHAR
B
FLOAT
C
INT
D
DATETIME

Slide 6 - Quizvraag

Deze slide heeft geen instructies

Welk datatype zouden we gebruiken voor...
Een telefoonnummer
A
VARCHAR
B
FLOAT
C
INT
D
DATETIME

Slide 7 - Quizvraag

Deze slide heeft geen instructies

Een tabel zit in 1 of meerdere databases
A
Waar
B
Onwaar

Slide 8 - Quizvraag

Deze slide heeft geen instructies

Een database bevat nul of meer tabellen
A
Waar
B
Onwaar

Slide 9 - Quizvraag

Deze slide heeft geen instructies

Een database server bevat meerdere databases
A
Waar
B
Onwaar

Slide 10 - Quizvraag

Deze slide heeft geen instructies

Doelen van vandaag
  • Je legt uit wat een SELECT-query is.
  • Je kunt een select query schrijven en uitvoeren, eventueel met een where-clause.
  • Je geeft de tabel aan waaruit geselecteerd moet worden.
  • Je geeft een voorwaarde mee waaraan  je geselecteerde gegevens moeten voldoen.
  • Je sorteert het resultaat van je geselecteerde gegevens.

Slide 11 - Tekstslide

Deze slide heeft geen instructies

Ophalen van data, "Querying"
Databases zijn heel goed in het verwerken van zoekopdrachten. Grote hoeveelheden data kunnen snel en eenvoudig doorzocht worden, aan de hand van complexe voorwaarden.

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Ophalen van data
"Geef me de naam van iedere Amsterdammer die ouder is dan 16, maar jonger is dan 65"

"Toon alle blogposts uit de categorie 'Sport', nieuwste eerst"

"Geef me naam en rugnummer van iedere voetballer die tussen 1998 en 2001 meer dan drie goals heeft gescoord in internationale wedstrijden"

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Selecteer de kolommen c, uit tabel table_name, waarvoor geldt dat condition, en geef het gesorteerd op kolommen o.

Slide 14 - Tekstslide

Deze slide heeft geen instructies

SELECT
  • Engels-achtige syntax
  • Query = vraag. We vragen data aan de database.
  • Wat wil je hebben (SELECT)
  • Van waar wil je het hebben (FROM)
  • Van welke voorwaarde wil je het hebben? (WHERE)
  • In welke volgorde wil je het hebben? (ORDER BY)

Slide 15 - Tekstslide

Deze slide heeft geen instructies

Resultaat:




id
studentnummer
toets
toetsresultaat
1
234234
WIN
5
2
208978
WIN
7
3
289474
WEB
8

Slide 16 - Tekstslide

Deze tabel even overnemen op een whitebord. Dat maakt terugverwijzen naar de gehele inhoud tabel makkelijker.
Resultaat:
toets
toetsresultaat
WIN
5
WIN
7
WEB
8

Slide 17 - Tekstslide

Deze slide heeft geen instructies

Resultaat
id
studentnummer
toets
toetsresultaat
2
234234
WIN
5

Slide 18 - Tekstslide

Deze slide heeft geen instructies

Resultaat:
studentnummer
208978
289474

Slide 19 - Tekstslide

In SELECT iets anders selecteren dan waar je op WHERE gaat.
Resultaat:
id
studentnummer
toets
toetsresultaat
2
208978
WIN
7
3
289474
WEB
8

Slide 20 - Tekstslide

Deze slide heeft geen instructies

Resultaat:
id
studentnummer
toets
toetsresultaat
2
208978
WIN
7
1
234234
WIN
5
3
289474
WEB
8

Slide 21 - Tekstslide

Deze slide heeft geen instructies

Resultaat:
id
studentnummer
toets
toetsresultaat
3
289474
WEB
8
2
208978
WIN
7
1
234234
WIN
5
DESC is een optioneel keyword wat we aan het einde van een ORDER BY kunnen plakken.

Standaard is de sortering ASC (ascending, oftewel oplopend), maar we kunnen DESC (descending, oftewel aflopend) specificeren.

Je mag ook ASC meegeven, maar dat is al standaard.

Slide 22 - Tekstslide

Deze slide heeft geen instructies

Resultaat
id
3
1
2

Slide 23 - Tekstslide

Deze slide heeft geen instructies

phpMyAdmin
Kies de curio database en dan de dbs_lestabel en ga naar SQL in het menu bovenin.
Standaard query staat er al:




Hier gaan wij nu onze eigen queries typen, en uitvoeren met 'Go'.

Slide 24 - Tekstslide

Deze slide heeft geen instructies

Foutmeldingen


MySQL foutmeldingen soms onduidelijk, dus kijk zelf je query na als er een fout is.

Slide 25 - Tekstslide

Deze slide heeft geen instructies

Tekst naar Query

"Geef de naam en cijfers van alle studenten die in Breda wonen"

Slide 26 - Tekstslide

Deze slide heeft geen instructies

Tekst naar Query

"Geef de auteurs en titels van alle boeken in het thriller genre, gesorteerd op naam van de auteur"

Slide 27 - Tekstslide

Deze slide heeft geen instructies




Oefenen



Hiervoor importeren we een database die al voor ons gemaakt is genaamd `vrienden_register`

Slide 28 - Tekstslide

Deze slide heeft geen instructies

Slide 29 - Tekstslide

Deze slide heeft geen instructies

Selecteer alleen de naam en het beroep van iedereen

Slide 30 - Open vraag

SELECT naam, beroep
FROM vrienden
Selecteer de namen van iedereen die meer dan twee kinderen heeft, gesorteerd op aantal kinderen

Slide 31 - Open vraag

SELECT naam
FROM vrienden
WHERE aantal_kinderen > 2  
ORDER BY aantal_kinderen
Selecteer het aantal kinderen van iedereen die piloot of acteur is.

Slide 32 - Open vraag

SELECT aantal_kinderen
FROM vrienden
WHERE beroep = 'Piloot' OR beroep = 'Acteur'
Geef alle data, gesorteerd op het aantal kinderen (aflopende volgorde)

Slide 33 - Open vraag

SELECT *
FROM vrienden
ORDER BY aantal_kinderen DESC
Inleveropdracht: Bioscoop
Download de gegeven bioscoop database van itslearning.
Geef voor de volgende vragen een SELECT query die het juiste antwoord geeft:
  1. Geef de naam van alle klanten die ouder zijn dan 16
  2. Geef de volledige informatie over alle films in het genre 'Romantiek'
  3. Geef de regiseurs van alle thrillers, alfabetisch gesorteerd op naam van de regisseur
  4. Wat is de minimum-leeftijd voor kijkers van 'Twilight'?
  5. Geef de naam van alle klanten die 12 of ouder zijn, aflopend gesorteerd op leeftijd
  6. Geef alle informatie over alle klanten, gesorteerd op oudste bovenaan
  7. Geef de titels van alle horror-films met een minimum-leeftijd van 12 of lager, alfabetisch gesorteerd op titel

Slide 34 - Tekstslide

Deze slide heeft geen instructies

Doelen van vandaag
  • Je legt uit wat een SELECT-query is.
  • Je kunt een select query schrijven en uitvoeren, eventueel met een where-clause.
  • Je geeft de tabel aan waaruit geselecteerd moet worden.
  • Je geeft een voorwaarde mee waaraan  je geselecteerde gegevens moeten voldoen.
  • Je sorteert het resultaat van je geselecteerde gegevens.

Slide 35 - Tekstslide

Deze slide heeft geen instructies