Computervaardigheden Hoofdstuk 4 — Databank (Basis)
2 Inhoud Databank -Terminologie, Navigeren, Importeren Tabellen -Records/Velden manipuleren Queries (Vragen) [Ook in SQL] -sorteren -filter volgens criteria -rekenkundige bewerkingen -GROUP BY -CROSS-TAB exporteren Oefeningen
3 Survival guide Essentiële vaardigheden Importeren van gegevens Query met enkelvoudige criteria Sorteren binnen een query Query met rekenkundige bewerkingen Belangrijke vaardigheden Query met meervoudige criteria Query met rekenkundige bewerkingen over reeksen (COUNT, MIN, MAX, AVG) "Group By" query; inclusief het gebruik van operatoren als COUNT, MIN, MAX, AVG Nuttige vaardigheden "Cross tab" query
4 Terminologie Business Logic Layer Database Layer soort datum lengte User-Interface Layer Tabel kolomtitel = "field" (veld) rij = "record" sommige velden vormen sleutel ("key") zoeken join Query (Vraag) selecteer en combineer data uit verschillende tabellen gedraagt zich als een nieuwe tabel programmeertaal SQL
5 Navigeren door een Venster Databank tabellen queries... Zicht op onderdeel Databank (Tabel "Observaties1")
6 Importeren Open Microsoft Access Menu: File/New... -Blank Database Maak bestand -vleermuizen.mdb Importeer Observaties1.txt Menu: File/Get External Data/Import... -Analoog met Excel, maar -(1) "First Row Contains Field Names" -(2) "No primary key"
7 Records Manipuleren (1) kies rij per nummer, volgende, vorige, eerste, laatste rij (2) kies "nieuw record" - * -vul waardes in -klik op potloodje: bewaren -rechtsklik >> Delete Record Sorteer op "soort" -Selecteer kolom "soort" -Menu: Records/Sort: Asc Slechts sorteren op 1 kolom !!!
8 Velden Manipuleren (1) kies "Design view" -meetlat (2) maak veld "ID" -Data Type "AutoNumber" Verschuif "ID" naar eerste plaats (3) kies "Data Sheet view" -tabel -Wat zie je ? Verwijder veld ID terug -via "Design View"
9 Basis Query (1/2) (1) Selecteer "Queries" in het databankvenster (2) >>Create Query in Design view (3) of Toolbar "New"
10 Basis Query (2/2) Kies tabel (of andere "Query") waaraan je de vraag zult stellen -Observaties1 -Add, dan Close Dubbelklik * (=alle velden) Bewaar Query -Observaties1Q Datasheet view -wat zie je ?
11 Sorteren Terug naar "Design view" Verwijder veld "*" -selecteer kolom klik op kleine balkje -rechtsklik >> Cut voeg veld "soort", "datum",... toe "Sort Ascending" -voor "soort" en "datum" Datasheet view
12 SQL Selecteer SQL View -alternatief t.o.v. "Design View" en "Data Sheet View" SQL is standaard databank programmeertaal -(1) SELECT...: de velden die het resultaat zal bevatten -(2)... FROM...: de tabellen waarvan je de velden zult kiezen -(3)...ORDER BY...: [optioneel] om te sorteren SELECT Observaties1.soort, Observaties1.datum, Observaties1.spanwijdte, Observaties1.gewicht FROM Observaties1 ORDER BY Observaties1.soort, Observaties1.datum;
13 Query met Criteria (1/2) in "Design View" Criterium: -soort: "baardvleermuis" In "Datasheet View" -resultaat ? in "Design View“, extra criterium: -soort: Like "water*" -resultaat ? (Datasheet view) Extra criterium: -soort: Like "*staart"
14 Vergelijking, Like WHERE clausule om extra criteria op te leggen -normaal operatoren =,, >= -vb. "soort" veld moet gelijk zijn aan "baardvleermuis" LIKE "...*..." -tekst veld lijkt op gegeven tekst; * staat voor “eender wat" -vb. "soort" veld moet beginnen met "water" -vb. "soort" veld moet eindigen met "staart" SELECT... FROM... WHERE (((Observaties1.soort)="baardvleermuis")) OR (((Observaties1.soort) Like "water*")) OR (((Observaties1.soort) Like "*staart")) ORDER BY...;
15 Query met Criteria (2/2) in "Design View" Criteria -soort: Like "baard*" -spanwijdte: > 20 -resultaat ? (Datasheet view) in "Design View" extra criterium: -spanwijdte: > 20 and <= 22 -resultaat ? (Datasheet view)
16 Booleaanse operatoren AND/OR/NOT als booleanse operatoren... -x AND Y: waar als zowel X en Y waar zijn; vals als minstens één van beide vals is -x OR Y: waar als ofwel X, ofwel Y, ofwel beide waar zijn; vals als zowel X en Y vals zijn -NOT X: waar als X vals is vb: baardvleermuizen, spanwijdte in ]20, 22] SELECT... FROM... WHERE (((Observaties1.soort) Like "baard*") AND ((Observaties1.spanwijdte)>20 And (Observaties1.spanwijdte)<=22)) ORDER BY... ;
17 Query met Rekenkundige Bewerkingen (1/2) In "Design View" extra kolom:resultaat: [gewicht]*[spanwijdte] -resultaat = naam van het veld -[gewicht]*[spanwijdte] = berekening voor inhoud Wat levert dit op ?
18 Rekenkundige operatoren AS -Expressie omvat allerlei rekenkundige bewerkingen (incl. functies) -... AS...: definieert naam van het nieuwe veld vb: vermenigvuldig gewicht en spanwijdte en stop dit in een nieuw veld "resultaat" SELECT..., [gewicht]*[spanwijdte] AS resultaat FROM... WHERE... ORDER BY...;
19 Query met Rekenkundige Bewerkingen (2/2) maak nieuwe query Menu: View/Totals -of druk op 3 x veld spanwijdte -Min, Max, Avg -Veldnamen invullen -Resultaat ? (Data Sheet)
20 Rekenkundige operatoren over reeksen Expressie AS -Expressie is rekenkundige bewerking over reeks getallen -... AS...: definieert naam van de nieuwe veld vb: selecteer minimum, maximum en gemiddelde spanwijdte SELECT Min(Observaties1.spanwijdte) AS [Min], Max(Observaties1.spanwijdte) AS [Max], Avg(Observaties1.spanwijdte) AS [Avg] FROM Observaties1;
21 Group By Query maak nieuwe query Menu: View/Totals -Of druk op Veld "soort" -Total: Group By + Ascending 3 x veld spanwijdte -Total: Min, Max, Avg -Resultaat ? (Data Sheet) Extra criterium: -soort - like "baard*"
22 GROUP BY... HAVING GROUP BY -selecteert eventuele categorieën van records HAVING -extra criteria op categorieën van records... FROM Observaties1 GROUP BY Observaties1.soort HAVING (((Observaties1.soort) Like "baard*")) ORDER BY Observaties1.soort;
23 Conclusie Databank -Terminologie, Navigeren, Importeren Tabellen -Records/Velden manipuleren Queries (Vragen) [Ook in SQL] -sorteren -filter volgens criteria -rekenkundige bewerkingen (ook over reeksen) -GROUP BY -CROSS-TAB Oefeningen
24 Oefening nieuwe query -naam: AlleObservaties velden -Observaties1.soort -Observaties1.datum -Year([datum]) AS jaar -Observaties1.spanwijdte, -Observaties1.gewicht sorteren -Observaties1.soort -Observaties1.datum nieuwe query -naam: AantalPerJaar -FROM AlleObservaties velden -AlleObservaties.soort -AlleObservaties.jaar -Count(AlleObservaties.jaar) veldnaam: Aantal GROUP BY -AlleObservaties.soort -AlleObservaties.jaar
25 Crosstab Query Open "AantalPerJaar" in Design View Definieer: "crosstab query" Menu: Query/Crosstab Query Crosstab: -Kies rij, kolom en waarde -(1) soort - row heading -(2) jaar - Column Heading -(3) aantal - Value Resultaat ? (Data View)
26 Crosstab Query Resultaat Menu: File/Export... Save as type -Microsoft Excel (*.xls) -of Text Files (.txt, csv,...) vul eventuele parameters in
27 Oefeningen namen van alle geobserveerde vleermuissoorten ? aantal geobserveerde vleermuissoorten ? alle observaties van baardvleermuizen -geobserveerd in met gewicht in [6, 8] -met spanwijdte in [20, 23] vorige vraag: gewicht in ]8, 10] het gemiddeld gewicht van alle geobserveerde franjestaarten het totaal gewicht van alle tijdens 2003 geobserveerde baardvleermuizen Een overzicht per soort, per jaar van het totaal gewicht van alle vleermuizen van die soort die die in dit jaar zijn geobserveerd -als lijst -als crosstab query -exporteer de laatste naar excel