Les 2 - SQL Select, Where en Group by

SQL - Les 2 : Select, As, Where, Group By
Week 2 / Periode 6
1 / 23
volgende
Slide 1: Tekstslide
Applicatie- en mediaontwikkelaarMBOStudiejaar 2

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

time-iconLesduur is: 60 min

Onderdelen in deze les

SQL - Les 2 : Select, As, Where, Group By
Week 2 / Periode 6

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Welke Select-statement hoort
bij het resultaat?
Student
Klas
Resultaat
A
select * from klas inner join student on klas.id_klas = student.id_klas
B
select * from klas right join student on klas.id_klas = student.id_klas
C
select * from klas left join student on klas.id_klas = student.id_klas
D
select * from student left join klas on student.id_klas = klas.id_klas

Slide 2 - Quizvraag

Deze slide heeft geen instructies

Welke Select-statement hoort
bij het resultaat?
Student
Klas
Resultaat
A
select * from klas inner join student on klas.id_klas = student.id_klas
B
select * from klas right join student on klas.id_klas = student.id_klas
C
select * from student right join klas on klas.id_klas = student.id_klas
D
select * from student inner join klas on student.id_klas = klas.id_klas

Slide 3 - Quizvraag

Deze slide heeft geen instructies

Welke stelling is juist?
A
Een left join gebruik je als je veel records verwacht
B
Een inner join laat alle records zien die overeenkomstig zijn in allebei de tabellen
C
Bij een left join maakt de volgorde van de tabellen in de select-statement niet uit
D
Een right join gebruik je bijna nooit

Slide 4 - Quizvraag

Deze slide heeft geen instructies

Inleiding
  • Korte herhaling
  • AS Keyword
  • Where
  • Group By (eventueel)

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Korte herhaling
  • Inner join 
select * from studenten s
       inner join klas k on s.ID_Klas = k.ID_Klas
Laat enkel de record zien die overeenkomstig zijn in beide tabellen

Slide 6 - Tekstslide

Deze slide heeft geen instructies

Korte herhaling
  • Left join 
select * from studenten s
       left join klas k on s.ID_Klas = k.ID_Klas
Laat alle record zien van de linker tabel, en kijkt wat overeenkomt in de rechter tabel

Slide 7 - Tekstslide

Deze slide heeft geen instructies

Korte herhaling
  • Right join 
select * from studenten s
       right join klas k on s.ID_Klas = k.ID_Klas
Laat alle record zien van de rechter tabel, en kijkt wat overeenkomt in de linker tabel

Slide 8 - Tekstslide

Deze slide heeft geen instructies

Verkorte notatie
select studenten.Achternaam , studenten.Tussenvoegsel  etc...

Maar
from studenten s (hiermee zeggen we eigenlijk, overal waar s staat bedoelen we studenten)

select s.Achternaam , s.Tussenvoegsel 

Slide 9 - Tekstslide

Deze slide heeft geen instructies

AS - Keyword
$q = $db->query("select * from studenten s
               left join klas k on s.ID_Klas = k.ID_Klas");
    $maps = array();
    while($row = mysqli_fetch_array($q)) {
        $product = array(
            'id_klas' => $row['id_klas']
        )
    }

Slide 10 - Tekstslide

In dit geval geeft ID_klas geeft op regel 2 en 4 een Null. wanneer dezelfde colomn naam voorkomt kan enkel het laatste colomn uitgelezen worden
AS - Keyword
$q = $db->query("select s.ID_klas as 'sID_klas', k.ID_Klas as 'kID_Klas' from studenten s
               left join klas k on s.ID_Klas = k.ID_Klas");
    $maps = array();
    while($row = mysqli_fetch_array($q)) {
        $product = array(
            'id_klas' => $row['id_klas']
        )
    }

Slide 11 - Tekstslide

In dit geval geeft ID_klas geeft op regel 2 en 4 een Null. wanneer dezelfde colomn naam voorkomt kan enkel het laatste colomn uitgelezen worden
maak de volgende query met as keyword (plak je SQL code als resultaat):
select s.Achternaam, s.Tussenvoegsel, s.Voornaam, d.Achternaam
from studenten s
inner join klas k on s.ID_Klas = k.ID_Klas
inner join docenten d on k.ID_Docent = d.ID_Docent

Slide 12 - Open vraag

Deze slide heeft geen instructies

Where
$q = $db->query("select s.voornaam as 'svoornaam' from studenten s
               left join klas k on s.ID_Klas = k.ID_Klas");
     while($row = mysqli_fetch_array($q)) {
        if($row['svoornaam'] = "Karel")
              $student = array(
                             'svoornaam' => $row['svoornaam']
        )
    }
VS
select s.voornaam as 'svoornaam' from studenten s
               left join klas k on s.ID_Klas = k.ID_Klas
 where s.Voornaam = "Karel"

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Where
Methode zonder where

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Where
Methode zonder where

Slide 15 - Tekstslide

Deze slide heeft geen instructies

Where
Een gewone select statement met een extra regel eraan vastgeplakt.

select * from studenten s
      where s.voornaam = "Karel"

Slide 16 - Tekstslide

Deze slide heeft geen instructies

Toon alle studenten in de klas ABC2B
select * from studenten s
inner join klas k on s.ID_Klas = k.ID_Klas
inner join docenten d on k.ID_Docent = d.ID_Docent

Slide 17 - Open vraag

Deze slide heeft geen instructies

Toon alle studenten met de achternaam die begint met een V
select * from studenten s
inner join klas k on s.ID_Klas = k.ID_Klas
inner join docenten d on k.ID_Docent = d.ID_Docent
(https://www.w3schools.com/sql/sql_wildcards.asp)

Slide 18 - Open vraag

Deze slide heeft geen instructies

GROUP BY
Group By word veelal gebruikt om overzichten te maken in aantallen, sommen, gemiddelde etc

Slide 19 - Tekstslide

Deze slide heeft geen instructies

GROUP BY

Slide 20 - Tekstslide

Deze slide heeft geen instructies

GROUP BY
select k.Omschrijving, count(s.ID_Student) as 'studentaantal' from klas k
      left join studenten s on k.ID_Klas = s.ID_Klas
      group by k.Omschrijving 

Slide 21 - Tekstslide

Deze slide heeft geen instructies

Maak een overzicht van hoeveel studenten een SLB'er heeft

select * from klas k
left join studenten s on k.ID_Klas = s.ID_Klas
left join docenten d on k.ID_Docent = d.ID_Docent

Slide 22 - Open vraag

Deze slide heeft geen instructies

Tot slot
  • Pas de kennis toe in de komende projecten
  • Mocht het nog niet gelukt zijn; download een sql tool
  • Is het nog niet helemaal duidelijk oefenen, oefenen
  • Volgende week gaan we oefenen, download het script : p5_order_db.sql en importeer het script
  • Les stof lastig? https://www.w3schools.com/sql/sql_examples.asp

Slide 23 - Tekstslide

Deze slide heeft geen instructies