Download de presentatie
1
Computervaardigheden
Computervaardigheden en Programmatie Universiteit Antwerpen Computervaardigheden Hoofdstuk 5 — Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.) Grafieken en Rapporten
2
Computervaardigheden en Programmatie
Universiteit Antwerpen Inhoud Terminologie Data importeren Basis queries Allerhande Joins “Doe dit.” “Aandachtspunt!” “Wat gebeurt hier ?” “Controleer wat je ziet.” Grafieken en Rapporten
3
Anatomie van een databank
Computervaardigheden en Programmatie Universiteit Antwerpen Anatomie van een databank Een databank is een verzameling van tabellen. Een tabel is een lijst van records. Een record is een lijst van velden. Alle records binnen éénzelfde tabel hebben dezelfde structuur. Ariteit (aantal velden). Type (soort veld; hoofdzakelijk getal of tekst) Grafieken en Rapporten
4
Elk Access project is één databank
Computervaardigheden en Programmatie Universiteit Antwerpen Elk Access project is één databank Dit is een voorbeeld van zo’n tabel. Elke tabel heeft een unieke naam. Deze tabel heet “Data”. Hier vind je een overzicht van de tabellen in deze databank. Hier zie je het aantal records in een tabel. Grafieken en Rapporten
5
Een nieuwe databank starten
Computervaardigheden en Programmatie Universiteit Antwerpen Een nieuwe databank starten 1. Open Microsoft Access 2. Menu: File/New ... 3. Kies voor “blank database” 4. Kies een naam voor je database 5. En sla op. Grafieken en Rapporten
6
Computervaardigheden en Programmatie
Universiteit Antwerpen Data importeren 1. File > Get External Data > Import... 2. Kies je databestand. Let op: kies niet voor “Link Tables...” ! Dit laat je wel toe de data te gebruiken, maar importeert deze niet in Access. Als je bewaart wordt de data niet mee bewaard, en als je je Access project nadien doorstuurt (of indient op het examen) werkt je verdere code niet meer. Let op: kies het juiste type bij “Files of type”! Grafieken en Rapporten
7
Computervaardigheden en Programmatie
Universiteit Antwerpen Data importeren 4. Kies de juiste delimiter. Zorg dat “First Row contains Field Names” geselecteerd is. Next. 3. Selecteer “Delimited”; Next Gebruik de preview om het effect van je keuzes te bekijken en te verifiëren. Grafieken en Rapporten
8
Computervaardigheden en Programmatie
Universiteit Antwerpen Data importeren 5. Kies voor “In a New Table”; Next 6. Next. Grafieken en Rapporten
9
Computervaardigheden en Programmatie
Universiteit Antwerpen Data importeren 7. Kies voor “No primary key”; Next 8. Kies een naam voor je tabel; Finish. Grafieken en Rapporten
10
Computervaardigheden en Programmatie
Universiteit Antwerpen Queries Een query is een bevraging van de databank. Een query gebeurt op basis van de records in één of meer tabellen. Het resultaat van een query is zelf ook een tabel. Deze tabel blijft gebonden aan de query, en verandert als de records in de andere tabellen veranderen. Grafieken en Rapporten
11
Computervaardigheden en Programmatie
Universiteit Antwerpen Nieuwe Query starten 2. Voor elke tabel die je wil bevragen, selecteer deze en klik op “Add”. Sluit af met “Close”. 1. Klik op “Queries”, en dubbelklik op “Create Query in Design View” Let op: kies uitsluiten de tabellen die je echt nodig hebt ! Overbodige tabellen zullen het resultaat van je query beïnvloeden. Grafieken en Rapporten
12
De Query maken en evalueren
Computervaardigheden en Programmatie Universiteit Antwerpen De Query maken en evalueren 4. Klik op het “View” icoon linksboven. Kies voor “Datasheet View”. De design view wordt dan vervangen door een tabel met de resultaten van de query. 3. Dubbelklik op “*” in tabel “Data”. Deze stap bouwt de query op. De query hierboven selecteert alle records. Andere soorten queries volgen later in de slides. Grafieken en Rapporten
13
SQL: de code achter je Query
Computervaardigheden en Programmatie Universiteit Antwerpen SQL: de code achter je Query 5. Klik linksboven op het “View” icoon. Kies deze keer voor “SQL View”. De datasheet view wordt vervangen door een tekstveld met daarin de code van je Query. Deze code is SQL code. SQL is een standaard query taal (Standard Query Language => SQL) die door zowat alle databanken gesproken wordt. Wat je in de design view doet, is eigenlijk het opstellen van zo’n SQL query die dan door Access wordt verwerkt. Let op: Deze cursus verwacht niet dat je zelf zo’n code kan schrijven. Je moet echter wel weten hoe je ze terug kan vinden, aangezien deze code vaak als antwoord dient op examenvragen. Grafieken en Rapporten
14
Computervaardigheden en Programmatie
Universiteit Antwerpen Sorteren op velden 1. Keer terug naar de “Design View”. 2. Verwijder de kolom met de “*” uit je query. (Klik op het kleine balkje, dan delete of rechtsklik en “Cut”.) 3. Voeg velden “day” en “sunshine” toe. 4. Kies bij de kolom voor “day” bij “Sort” voor “Ascending”. 5. Ga naar de “Datasheet View”. Je krijgt als resultaat een tabel met volgende eigenschappen: elke record heeft slechts twee velden, en alle records zijn gesorteerd op datum. Grafieken en Rapporten
15
Computervaardigheden en Programmatie
Universiteit Antwerpen Formules 1. Keer terug naar de “Design View”. 2. Selecteer “day” in de cel “Field:” van de eerste kolom. 3. Vervang dit met: month: Month(day) 4. In de “Field:” cel van kolom drie, schrijf: rain: rainAM + rainPM 5. Ga naar de “Datasheet View”. De tabel bevat nu records met drie velden: het maandnummer bevat, de hoeveelheid zon, en de som is van de regen in voor- en namiddag van de oorspronkelijke record. Grafieken en Rapporten
16
Algemene vorm van formules
Computervaardigheden en Programmatie Universiteit Antwerpen Algemene vorm van formules Elke formule is van de vorm: field_name : expr Hierbij is field_name een naam voor het nieuwe veld. Dit is vrij te kiezen, maar moet uniek zijn. Na de dubbelpunt volgt een expressie die de waarde voor het nieuwe veld berekent. Dit is een combinatie van rekenkundige bewerkingen (+, -, *, /) en/of aanroepen van functies. Die laatste zien er steeds als volgt uit: function_name ( params ) Hierbij is function_name natuurlijk de naam van de functie die je wil aanroepen. In ons voorbeeld was dat “Month”. De parameters geef je op als een lijst, eventueel gescheiden met komma’s (dus geen punt-komma’s als in Excel). Grafieken en Rapporten
17
Queries met voorwaarden
Computervaardigheden en Programmatie Universiteit Antwerpen Queries met voorwaarden Probeer elk van deze queries en vergelijk: De linker-query selecteert alle records waarvan zowel sunshine als rain groter zijn dan 5. Er zijn 13 dergelijke records. De rechter query selecteert alle records waarvan ofwel sunshine ofwel rain groter is dan 5. Er zijn 204 dergelijke records. Grafieken en Rapporten
18
Queries met voorwaarden
Computervaardigheden en Programmatie Universiteit Antwerpen Queries met voorwaarden Elke voorwaarde die je plaatst in één van de cellen van de “Criteria:” rijen test de waarde van het veld in de overeenkomstige kolom. Zelfde rij: logische “AND” Als twee voorwaarden in eenzelfde rij staan (zoals hierboven), dan moet aan beide voorwaarden voldaan zijn vooraleer een record aanvaard wordt. Als twee voorwaarden in verschillende rijen staan (zoals hieronder), dan is het voldoende dat de record aan de voorwaarden van één rij voldoet om geselecteerd te worden. Verschillende rijen: logische “OR” Grafieken en Rapporten
19
Queries met voorwaarden
Computervaardigheden en Programmatie Universiteit Antwerpen Queries met voorwaarden Je kan ook meerdere voorwaarden in één cel plaatsen: Bovenstaande query kijkt of sunshine kleiner is dan 1 of (omwille van de OR) groter dan 5, en (omdat de voorwaardan in dezelfde rij staan) of rain groter is dan 1 en (omwille van de AND) kleiner dan 5. M.a.w.: (sun < 1 Or sun > 5) And (rain > 1 And rain < 5) Grafieken en Rapporten
20
Queries over groepen van records
Computervaardigheden en Programmatie Universiteit Antwerpen Queries over groepen van records 1. Start een nieuwe query op basis van de tabel “Data”. 2. Klik op het “Totals” icoon in de toolbar. Verifieer dat je design view nu ook een “Total:” rij bevat. Grafieken en Rapporten
21
Queries over groepen van records
Computervaardigheden en Programmatie Universiteit Antwerpen Queries over groepen van records 3. Voeg drie keer veld “sunshine” aan de query toe. 4. Selecteer bij “Total:” voor de eerste sunshine “Min”, voor de tweede sunshine “Max” en voor de derde sunshine “Avg”. 5. Geef elke sunshine een naam (“min”, “max”, “average”). 7. Bekijk het resultaat in de datasheet view. Grafieken en Rapporten
22
Computervaardigheden en Programmatie
Universiteit Antwerpen Totals “Totals” laat toe om karakteristieken te berekenen op basis van een groep records in plaats van individuele records. Mogelijkheden: min, max, avg, stdev, count, sum,... Het resultaat is één record per groep, met daarin de berekende karakteristieken als velden. Zo berekende deze query de minimum, maximum en gemiddelde hoeveelheid zonneschijn over het gehele jaar. Grafieken en Rapporten
23
Computervaardigheden en Programmatie
Universiteit Antwerpen Totals + Group By Pas vorige query als volgt aan: 1. Voeg een nieuwe kolom toe met “day”. 2. Pas de waarde “day” aan met de expressie voor het berekenen van de maand. 3. Kies bij “Total:” voor “Group By”. Bekijk het resultaat in de datasheet view. De tabel bevat nu twaalf records, één voor elke maand. Dit is omdat we alle records gegroepeerd hebben op basis van de waarde voor maand. Zo zijn er natuurlijk juist twaalf. Grafieken en Rapporten
24
Elke query levert een tabel op!
Computervaardigheden en Programmatie Universiteit Antwerpen Elke query levert een tabel op! Je kan dus queries doen op basis van de resultaten van eerdere queries. Grafieken en Rapporten
25
Queries op resultaten van queries
Computervaardigheden en Programmatie Universiteit Antwerpen Queries op resultaten van queries Bewaar de vorige query als “SunshinePerMonth”. Start dan een nieuwe query op basis van SunshinePerMonth (zie figuur linksonder). Voeg dan month en average toe, en stel dat average groter moet zijn dan 5 (zie figuur rechtsboven). Bekijk het resultaat in de datasheet view (figuur rechts). Sla de query op als “MonthsWithSunshineOver5” (wordt later in de slides opnieuw gebruikt). Grafieken en Rapporten
26
Voorbereiding: tabel Months
Computervaardigheden en Programmatie Universiteit Antwerpen Voorbereiding: tabel Months Importeer de data uit months.txt in een nieuwe tabel genaamd “Months”. Grafieken en Rapporten
27
Queries over meerdere tabellen
Computervaardigheden en Programmatie Universiteit Antwerpen Queries over meerdere tabellen Start een nieuwe query op basis van de “Months” tabel en op basis van de “SunshinePerMonth” query. Voeg daarna elk veld uit elke tabel toe aan de query. Bekijk het resultaat in de datasheet view. Grafieken en Rapporten
28
Queries over meerdere tabellen
Computervaardigheden en Programmatie Universiteit Antwerpen Queries over meerdere tabellen Months SunshinePerMonth X = 12 x 12 Grafieken en Rapporten
29
Computervaardigheden en Programmatie
Universiteit Antwerpen Inner Join Het resultaat van vorige query is een tabel waarbij elke record uit de eerste tabel (Months) wordt gecombineerd met elke record uit de tweede tabel (SunshinePerMonth). Wat we eigenlijk willen is dat records uit beide tabellen pas worden gecombineerd als hun waarde voor maand overeenkomt. Dit is wat we nu gaan doen: Sleep “Number” uit “Months” op “month” uit “SunshinePerMonth”. Access toont hierna een verbinding tussen deze twee velden. Dit is een “Inner Join”. Bekijk het resultaat in de datasheet view. Grafieken en Rapporten
30
Computervaardigheden en Programmatie
Universiteit Antwerpen Inner Join Months SunshinePerMonth Merk op dat door het leggen van een inner join nu alleen records worden samengesteld waarvoor de waarden die meespelen in de inner join dezelfde zijn. Grafieken en Rapporten
31
Primary en Foreign Keys
Computervaardigheden en Programmatie Universiteit Antwerpen Primary en Foreign Keys Gegeven dit: Je kan nu zeggen dat “Number” en “month” keys zijn. Van een primary key wordt verwacht dat elke record binnen een tabel een unieke waarde voor deze key heeft. Dit is het geval voor “Number” in “Months”. Een foreign key is een veld waarvan de waarde overeen komt met de primary key van records in een bepaalde tabel. Dit is het geval voor “month” in “SunshinePerMonth”. Keys worden dus gebruikt om records in verschillende tabellen aan elkaar te linken. Dit is in essentie wat we doen in een Join. Grafieken en Rapporten
32
Inner Join + Voorwaarden
Computervaardigheden en Programmatie Universiteit Antwerpen Inner Join + Voorwaarden Pas de query als volgt aan: Bekijk het resultaat: Bij combinatie van joins en voorwaarden: eerst gebeurt de join, daarna wordt het resultaat gefilterd door de voorwaarden. Grafieken en Rapporten
33
Computervaardigheden en Programmatie
Universiteit Antwerpen Voorbereiding Maak volgende query: Bekijk het resultaat: De definitie van “MonthsWithSunshineOver5” vind je terug op slide 25. Merk op: dit levert het zelfde resultaat op als de query in de vorige slide. Les geleerd: er zijn altijd wel meerdere oplossingen mogelijk. Grafieken en Rapporten
34
Computervaardigheden en Programmatie
Universiteit Antwerpen Outer Join Dubbelklik op de verbinding tussen Number en month. Kies optie 2 (ALL from “Months”), en klik OK. Verifieer dat er de verbinding tussen Number en month nu een richting heeft gekregen (van Number naar month). Dit maakt van je inner join een outer join. De pijl toont aan dat je join nu een outer join is. Grafieken en Rapporten
35
Computervaardigheden en Programmatie
Universiteit Antwerpen Outer Join ? ? ? Merk op dat elke record uit Months nu mee wordt opgenomen in het resultaat, ook al was er geen record in SunshinePerMonthOver5 met een overeenkomstige waarde voor number. De overige velden worden leeg gelaten. Grafieken en Rapporten
36
Computervaardigheden en Programmatie
Universiteit Antwerpen Voorbereiding Importeer de data in “haltes.txt” in een nieuwe tabel “Haltes”. Importeer de data in “lijnen.txt” in een nieuwe tabel “Lijnen”. Grafieken en Rapporten
37
Computervaardigheden en Programmatie
Universiteit Antwerpen Recursieve Join Start een nieuwe query. Voeg de tabel “Haltes” twee keer toe. Bouw daarna de query als volgt op: Grafieken en Rapporten
38
Computervaardigheden en Programmatie
Universiteit Antwerpen Recursieve Join Haltes Haltes Een recursieve join werkt dus als een gewone join. Het enige verschil is dat je twee keer dezelfde tabel bevraagt. Grafieken en Rapporten
39
Meerdere joins in één query
Computervaardigheden en Programmatie Universiteit Antwerpen Meerdere joins in één query Rechtsklik naast één van de tabellen in de query, en kies “Show Table...” Voeg één keer tabel “Lijnen” toe aan de query. Grafieken en Rapporten
40
Meerdere joins in één query
Computervaardigheden en Programmatie Universiteit Antwerpen Meerdere joins in één query Pas de query als volgt aan en bekijk het resultaat. Grafieken en Rapporten
41
Meerdere joins in één query
Computervaardigheden en Programmatie Universiteit Antwerpen Meerdere joins in één query Het resultaat toont voor elke lijn de naam van die lijn, samen met twee opeenvolgende halten op die lijn. Grafieken en Rapporten
42
Meerdere joins in één query
Computervaardigheden en Programmatie Universiteit Antwerpen Meerdere joins in één query Dit werkt als volgt: 1 2 3 Join 1 combineert twee records waarvan “Volgende” in de eerste record dezelfde waarde heeft als “Halte” in de tweede record. Dit geeft ons dus twee opeenvolgende haltes. Join 2 combineert twee records als ze dezelfde waarde voor “Lijn” hebben. Samen met vorige join hebben we dus: twee opeenvolgende haltes op dezelfde lijn. Join 3 linkt het lijnnummer van één van de eerste twee records (die wegens join 2 hetzelfde zijn voor beide records) aan het nummer in de records van Lijnen. Het resultaat is dus dat voor elke twee opeenvolgende haltes op een zelfde lijn we nu ook de naam van die lijn kennen. Grafieken en Rapporten
43
Extra: voorwaarde “Like”
Computervaardigheden en Programmatie Universiteit Antwerpen Extra: voorwaarde “Like” Breidt de vorige query als volgt uit: Like “Meir” Like “S*” “Like” kijkt of de waarde tekstueel overeenkomt met de waarde die er op volgt. Je mag “*” gebruiken in de betekenis van “eender welke combinatie van letters”. Dat betekent dat we hier kijken of de eerste halte ofwel “Meir” is, ofwel begint met een “S”. Grafieken en Rapporten
44
Computervaardigheden en Programmatie
Universiteit Antwerpen Survival guide Essentiële vaardigheden Importeren van gegevens Query met enkelvoudige criteria Sorteren binnen een query Query met rekenkundige bewerkingen one-to-many" relatie definiëren join-query over een "one-to-many" relatie 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 Outer join-query (links of rechts) Nuttige vaardigheden Recursieve join (een tabel met zichzelf joinen) Grafieken en Rapporten
45
Computervaardigheden en Programmatie
Universiteit Antwerpen Conclusie Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries SQL sorteren filter volgens criteria rekenkundige bewerkingen (ook over reeksen) GROUP BY Joins Inner Joins Outer Joins Recursive Joins Grafieken en Rapporten
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.