Computervaardigheden Hoofdstuk 4 Databank Basis Inhoud Databank Terminologie
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
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 2
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 3
Terminologie soort datum lengte User-Interface Layer Business Logic Layer Tabel • kolomtitel = "field" (veld) • rij = "record" • sommige velden vormen sleutel ("key") zoeken Database Layer join Query (Vraag) • selecteer en combineer data uit verschillende tabellen • gedraagt zich als een nieuwe tabel • programmeertaal SQL 4
Navigeren door een Venster Databank • tabellen • queries • . . . Zicht op onderdeel Databank (Tabel "Observaties 1") 5
Importeren • Open Microsoft Access • Menu: File/New. . . - Blank Database • Maak bestand - vleermuizen. mdb • Importeer Observaties 1. txt • Menu: File/Get External Data/Import. . . - Analoog met Excel, maar - (1) "First Row Contains Field Names" - (2) "No primary key" 6
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 !!! 7
Velden Manipuleren • (1) kies "Design view" - meetlat • (2) maak veld "ID" - Data Type "Auto. Number" • Verschuif "ID" naar eerste plaats • (3) kies "Data Sheet view" - tabel - Wat zie je ? • Verwijder veld ID terug - via "Design View" 8
Basis Query (1/2) • (1) Selecteer "Queries" in het databankvenster • (2) >>Create Query in Design view • (3) of Toolbar "New" 9
Basis Query (2/2) • Kies tabel (of andere "Query") waaraan je de vraag zult stellen - Observaties 1 - Add, dan Close • Dubbelklik * (=alle velden) • Bewaar Query - Observaties 1 Q • Datasheet view - wat zie je ? 10
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 11
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 Observaties 1. soort, Observaties 1. datum, Observaties 1. spanwijdte, Observaties 1. gewicht FROM Observaties 1 ORDER BY Observaties 1. soort, Observaties 1. datum; 12
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" 13
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 (((Observaties 1. soort)="baardvleermuis")) OR (((Observaties 1. soort) Like "water*")) OR (((Observaties 1. soort) Like "*staart")) ORDER BY. . . ; 14
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) 15
Booleaanse operatoren • AND/OR/NOT als booleanse operatoren. . . - x AND Y: waar als zowel X en Y waar zijn; vals minstens één van beide vals is - x OR Y: waar als ofwel X, ofwel Y, ofwel beide waar zijn; vals zowel X en Y vals zijn - NOT X: waar als X vals is • vb: baardvleermuizen, spanwijdte in ]20, 22] SELECT. . . FROM. . . WHERE (((Observaties 1. soort) Like "baard*") AND ((Observaties 1. spanwijdte)>20 And (Observaties 1. spanwijdte)<=22)) ORDER BY. . . ; 16
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 ? 17
Rekenkundige operatoren • <expressie> AS <naam> - 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. . . ; 18
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) 19
Rekenkundige operatoren over reeksen • Expressie AS <naam> - Expressie is rekenkundige bewerking over reeks getallen -. . . AS. . . : definieert naam van de nieuwe veld • vb: selecteer minimum, maximum en gemiddelde spanwijdte SELECT Min(Observaties 1. spanwijdte) AS [Min], Max(Observaties 1. spanwijdte) AS [Max], Avg(Observaties 1. spanwijdte) AS [Avg] FROM Observaties 1; 20
Group By Query • maak nieuwe query • Menu: View/Totals - Of druk op • Veld "soort" - Total: Group By + • 3 x veld spanwijdte - Total: Min, Max, Avg - Resultaat ? (Data Sheet) • Extra criterium: - soort - like "baard*" Ascending 21
GROUP BY. . . HAVING • GROUP BY <veldnaam> - selecteert eventuele categorieën van records • HAVING - extra criteria op categorieën van records . . . FROM Observaties 1 GROUP BY Observaties 1. soort HAVING (((Observaties 1. soort) Like "baard*")) ORDER BY Observaties 1. soort; 22
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 23
Oefening • nieuwe query - naam: Alle. Observaties • velden - Observaties 1. soort - Observaties 1. datum - Year([datum]) AS jaar - Observaties 1. spanwijdte, - Observaties 1. gewicht • sorteren - Observaties 1. soort - Observaties 1. datum - naam: Aantal. Per. Jaar - FROM Alle. Observaties • velden - Alle. Observaties. soort - Alle. Observaties. jaar - Count(Alle. Observaties. jaar) • veldnaam: Aantal • GROUP BY - Alle. Observaties. soort - Alle. Observaties. jaar 24
Crosstab Query • Open "Aantal. Per. Jaar" 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) 25
Crosstab Query Resultaat • Menu: File/Export. . . • Save as type - Microsoft Excel 97 -2003 (*. xls) - of Text Files (. txt, csv, . . . ) • vul eventuele parameters in 26
Oefeningen • namen van alle geobserveerde vleermuissoorten ? • aantal geobserveerde vleermuissoorten ? • alle observaties van baardvleermuizen • • - geobserveerd in 2003 - 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 in dit jaar zijn geobserveerd - als lijst - als crosstab query - exporteer de laatste naar excel 27
- Slides: 27