Databank van een restaurant

Download Report

Transcript Databank van een restaurant

Databank van een restaurant


Download op
http://studwww.ugent.be/~ncharlie.
Twee tabellen:
• Klanten: Alle klanten die minstens één keer het
•
restaurant bezocht hebben. Hun voornaam, naam en
geboortedatum wordt opgeslagen, bovendien heeft
iedere klant een klantennummer, dit is de primaire
sleutel.
Reservaties: Hier worden alle reservaties opgeslagen:
dag, begintijd, eindtijd en klantnummer. Iedere
reservatie heeft ook een ID als primaire sleutel.
Wat is een query?


Een query is een aanvraag voor
informatie uit een databank.
In een relationele databank zoals
MSAccess wordt het resultaat van een
query uitgedrukt in een tabel. Een query
maken is dan een nieuwe tabel
opbouwen aan de hand van ingevulde
informatie in bestaande tabellen.
Wat is een query?


Een query kan uitgedrukt worden in een
query taal. Meest gebruikte: SQL
(structured query language). Access
heeft eigen variant.
Access biedt ons een GUI (grafische
user interface) om queries te maken.
Deze zullen wij nu gebruiken.
Wat is een query?


In access kunnen wij een query een
naam geven en opslaan, en dan
bekijken en beschouwen als een soort
tabel (een view).
De informatie blijft alleen in de echte
tabellen opgeslagen. Wijzigen in een
query-tabel is eigenlijk wijzigen in echte
tabellen.
Een query maken



Eerst specificeren welke tabel(len) je gebruikt.
Velden kiezen. (*=alle velden van een tabel.)
Het raster toont alle velden.
• Field = naam van het veld.
• Table = naam van de tabel
• Sort = sorteren op dit veld (oplopend / aflopend)
• Show = veld tonen of niet
• Criteria= zie later
Opdracht 1

Maak een query die alle velden van de
tabel “klanten” toont (gebruik hiervoor
het sterretje). Sorteer de tabel op naam,
maar zorg dat de kolom naam maar één
keer zichtbaar is. Sla op onder de naam
“queryKlanten” en open de query-tabel.
Nieuwe velden definiëren


Men kan een uitdrukking invullen in de rij “Field” van een
nieuwe kolom in het veldenraster.
Gelijkaardig aan de formules in Excel zoals we al geleerd
hebben
•
•


Functies en operatoren niet altijd hetzelfde.
Toegepast op andere velden ipv andere cellen
De uitdrukking wordt voorafgegaan door een naam voor
het nieuwe veld en een dubbele punt.
De gebruikte velden staan tussen vierkante haakjes.
Deze worden echter automatisch door Access ingevuld
als je ze niet invult.
Nieuwe velden definiëren

Begin een nieuwe query met de tabel
“klanten”. Voeg het volgende veld toe
aan de query:
VolledigeNaam: [Voornaam] & " " & [Naam]
Sla deze query op onder de naam
“querySenioren” en open hem.
Opdracht 2

Voeg een veld “Leeftijd” toe aan de
query “querySenioren”. Gebruik de
functies en Now() (de huidige datum), de
mogelijkheid om datums van elkaar af te
trekken en Format(datum, “yy”) (om de
twee laatste cijfers van het jaar uit een
datum te krijgen).
Oplossing
Leeftijd:
Format(Now() – [Geboortedatum], “yy”)
Criteria

In het vak “criteria” kunnen we nu
voorwaarden invullen in dezelfde syntax
als we vorige week gezien hebben bij
“validation rule”. De query toont dan
alleen de records die aan alle criteria
voldoen.
Opdracht 3

Zorg dat alleen de klanten vanaf 60 jaar
worden weergegeven in de query
“querySeniors”.
Oplossing

>= 60
Relationships



Wanneer we meer dan één tabel in een
databank aanmaken, is dat meestal omdat er
een verband is tussen deze tabellen.
Alle tabellen in onze databank handelen over
één en hetzelfde restaurant.
Klanten maken reservaties. Daarom moeten
we bij elke reservatie een klantennummer
opgeven. Dit klantennummer is eigenlijk een
verwijzing naar de primary key van “klanten”.
Relationships


Leg de relationship vast tussen onze
twee tabellen via Tools > Relationships
Enforce Referential Integrity = zorgt
ervoor dat Access controleert dat voor
iedere afspraak een geldige
klantnummer wordt opgegeven.
Query met twee tabellen

Maak een nieuwe query aan, waarbij je
zowel de tabel klanten als reservaties
toevoegt. Voeg de velden Dag, BeginTijd
en EindTijd van de reservaties toe. Voeg
ook de rijen naam en voornaam van de
tabel klanten toe. Sluit de tabel en sla op
als “queryReservaties”. Bekijk nu de
query-tabel.
Opdracht 4


De uitbater van het restaurant wilt een gratis
champagnefles geven aan iedere klant die
komt eten voor z’n verjaardag. Voeg een veld
toe “verjaardag” dat “HAPPY BIRTHDAY” zegt
wanneer de klant verjaart op deze reservatie.
Opmerkingen: De If functies in Access heet “iif”
(maar werkt voor de rest analoog aan excel).
Gebruik format (datum, “ddmm”) om dag en
maand uit een datum te halen.
Oplossing
verjaardag:
IIf(Format([Dag];"ddmm")=
Format([Geboortedatum];"ddmm");
"HAPPY BIRTHDAY";"")
Voor wie klaar is…

Maak een nieuwe databank van artikels
en bestellingen. Bewaar van ieder artikel
een nummer naam en een prijs. Bewaar
van iedere bestelling een nummer, een
artikelnummer en een aantal stuks. Vul
de tabellen in met een tiental
voorbeelden. Maak een query die ook de
totale prijs van iedere bestelling toont.