Relationele database. Het relationele model

Maat: px
Weergave met pagina beginnen:

Download "Relationele database. Het relationele model"

Transcriptie

1 Module SQL

2 Relationele database. Een database, gegevensbank of databank is een verzameling van gegevens, ingericht met oog op makkelijke raadpleging en gebruik. Databases spelen een belangrijke rol in het opslaan en beheren van gegevens bij onder meer de overheid, financiële instellingen en bedrijven en worden op kleinere schaal ook privé gebruikt. Databases heb je in allerlei soorten en maten. Je hebt ook eenvoudige tabellen of kaartenbakken. Wanneer je de computer gebruikt heb je een kleine database in allerlei programma s, zoals bijvoorbeeld het adressenboekjes bij je programm De grootste databases vind je bij banken, verzekeringen en andere instellingen en deze zijn digitaal opgeslagen. Hoe een database er ook uit mag zien, ze moeten allemaal aan de volgende minimale (CRUD) voorwaarden voldoen om als database gezien te worden: 1. Gegevens moeten eenvoudig kunnen worden opgeslagen (Create). 2. Gegevens moeten eenvoudig kunnen worden opgezocht en doorzocht (Read). 3. Gegevens moeten onderhouden kunnen worden (Update). 4. Gegevens moeten verwijderd kunnen worden zonder dat dat de werking van dat systeem nadelig beïnvloedt (Delete). Om aan deze voorwaarden te kunnen voldoen is een essentiële regel belangrijk: De database moeten integer zijn: 1. Gegevens moeten consistent zijn en mogen bijvoorbeeld niet dubbel worden opgeslagen. 2. De gegevens moeten geautoriseerd toegevoegd, onderhouden of verwijderd worden. Met andere woorden: de database moet beschermd worden tegen onbevoegde gebruikers. Vaak wordt dit gedaan aan de hand van een gebruikersnaam en een wachtwoord. Wanneer databases groter worden, is het erg belangrijk dat ze goed georganiseerd zijn. Dit is nodig om goed beheer mogelijk te maken en ervoor te zorgen dat informatie uit de database opgevraagd kan worden. Bij het beheren van een database horen hulpmiddelen. We noemen dit een database-managementsystem (DBMS), bijvoorbeeld Microsoft Access. Om informatie uit een digitale database op te vragen kan je de database vragen stellen met behulp van een query. Er zijn verschillende soorten talen voor queries maar wij houden ons vooral bezig met Structured Query Language (SQL). Het relationele model Er bestaan verschillende modellen voor databasesystemen, verschillende manieren om een database op te zetten. Het belangrijkste model is het relationele model. In een relationeel model worden alle gegevens opgeslagen in tabellen. Zo zal bijvoorbeeld alle contactgegevens van leerlingen op een school in 1 tabel opgeslagen zijn.

3 LEERLINGEN VOOR TUSSEN ACHTER HUIS GE LLNR STRAAT POSTCODE PLAATS TELEFOON GEB_DATUM KLAS NAAM VOEGSEL NAAM NUMMER SLACHT 80 Lorraine Portiek Vaartserijnstraat TC Utrecht v 29-sep-81 5b 81 Patrick Heijmans Krozengaarde JB Houten m 21-apr-82 5a 82 Gita Kalisadra Frederik van AZ Vleuten v 11-apr-82 6a Eedenstr. 83 Aniel Mangakas Verl KH Utrecht m 08-okt-81 6b Hoogravenseweg 84 Wendy van der Berk Langeweg aW Vianen v 29-aug-83 5b 85 Nastasja van Kesteren Merwedekade JB Utrecht v 07-nov-82 4a Het relationele model is bedacht door de wiskundige E.F. Codd, toen werkzaam bij de computergigant IBM, en gepubliceerd en De term relationeel is afkomstig uit de wiskunde. In de verzamelingenleer bestaat het begrip relatie. Het idee is dat je met zinnen als 'Leerling y zit in klas x' een relatie legt tussen leerlingen en klassen. Bijvoorbeeld "Jantine de Bakker zit in 4b". De elementen van deze relatie geven de kolommen leerlingen en klas. In een rij van de tabel komen dan "Jantine de Bakker' en "4b". Hier komen we bij het maken van het project op terug. Leerling klas Jantine de Bakker 4b Voorbeeld van een database. In deze module gaan we aan het werk met twee verschillende databases om mee te oefenen. Eén van deze databases behoort tot een schoolbibliotheek. Deze database heeft 6 tabellen die elk uit verschillende kolommen bestaan. De kolomnamen zijn zo gekozen dat ze zichzelf verklaren. In sommige gevallen kort je de kolomnaam in.

4 In de schoolbibliotheek kunnen meerdere exemplaren aanwezig van hetzelfde boek. Om de boeken toch te onderscheiden in een database heeft elk boek zijn eigen exemplaarnummer, wat terug te vinden is in de database als EXNR. In de tabel Exemplaren kan je zien dat aan elk exemplaar een boeknummer is gekoppeld. Dit boeknummer is weer terug te vinden in de het tabel Boeken en via het Auteurnummer (AUTNR) kan je terugvinden wie het heeft geschreven. Dit lijkt omslachtig maar is wel van belang. Stel je voor dat je de tabellen Boeken en Auteur samenvoegt en je dus bij elk boek alle gegevens van de auteur erbij zet. Auteurs schrijven vaak meerdere boeken en dus staan de gegevens van de auteur meerdere keren in de database en, zoals al eerder aangegeven, mogen gegevens niet dubbel voorkomen in een database. Mocht je bijvoorbeeld een auteur hebben die 15 boeken heeft geschreven die overlijdt dan moet je zijn sterfdatum op 15 verschillende plekken invullen en zodra je er één vergeet klopt je database niet meer. Opdrachten Bekijk de inhoud van de tabellen in de bibliotheekdatabase. b. Waarom kent de tabel reserveringen geen kolom Exnr. Een persoon bestelt meestal niet meerdere exact dezelfde versies van een boek.

5 SQL Een sql-query kent een vaste structuur. Je moet aangeven over welk tabel het gaat en welke kolommen en rijen je te zien wilt krijgen. In SQL kun je die vaste structuur herkennen aan de sleutelwoorden. De sleutelwoorden kun je het best steeds vooraan een nieuwe regel zetten en worden met hoofdletter opgeschreven. Dit is niet noodzakelijk, maar maakt het wel overzichtelijker. De basisstructuur van een eenvoudige query is: SELECT (geef aan welke kolommen je wilt zien) FROM (geef aan uit welke tabellen deze kolommen komen) WHERE (Geef aan welke voorwaarden moeten gelden. Dit bepaalt welke rijen je te zien krijgt); Let op! Een query eindigt altijd met ; Een eerste query. Laten we beginnen met een simpele query die alle namen van de leerlingen opvraagt uit de database van de schoolbibliotheek. 1. Om te beginnen start je Access op en open je het bibliotheek.mdb databasebestand. 2. Selecteer het create -tabblad bovenaan je scherm 3. Klik op 'Query Design' 4. Klik op close

6 5. Verander de view naar SQL. 6. Voer in: SELECT voornaam, tussenvoegsel,achternaam ; 7. druk op run Als alles goed gegaan is heb je nu een tabel met alle namen van de leerlingen. Opdrachten Voor de volgende query uit: SELECT achternaam, tussenvoegsel, achternaam, ; Wat is het verschil in de resultaten en vergelijking met: SELECT voornaam, tussenvoegsel, achternaam ; De eerste query geeft nu een error omdat de SELECT een komma heeft aan het eind, wat niet zo hoort. b. Hoe ziet de query eruit als je alle kolommen van de tabel leerlingen wil selecteren? SELECT * ;

7 Om bovenstaande opdracht uit te voeren kan je ervoor kiezen om elke kolomnaam van de tabel leerlingen achter SELECT te plaatsen. Dit kost tijd en is gevoelig voor schrijffouten. Eén schrijffout en je query werkt niet. Als je alle kolommen van een tabel wil hebben is het niet nodig om al die namen op te schrijven maar simpel weg een * te gebruiken. SELECT * ; ORDER BY Lijsten van leerlingen zijn altijd in volgorde van hun achternaam opgeschreven. Dit maakt het vinden van een leerling op zo'n lijst makkelijker. Als we onze query uitbreiden met een regel ORDER BY wordt de lijst met leerlingen gesorteerd op hun achternaam: SELECT voornaam, tussenvoegsel,achternaam ORDER BY achternaam; Je kan de kolommen waarop je sorteert ook anders aanduiden. In plaats van de naam van deze kolom noem je dan het volgnummer van de kolom. Dit nummer vind je door naar de volgorde te kijken waarin ze achter SELECT staan vermeld. SELECT voornaam, tussenvoegsel,achternaam,klas ORDER BY 3; Op vele scholen worden leerlingen niet alleen gesorteerd op hun achternaam, maar ook in welke klas ze zitten. Vaak is het zo dat ze eerst gesorteerd worden op klas en dan pas op achternaam. Om dit voor elkaar te krijgen zet je beide kolommen achter ORDER BY met een komma ertussen: SELECT voornaam, tussenvoegsel,achternaam,klas ORDER BY klas, achternaam; Tenslotte kun je op twee manieren sorteren: oplopend (A-Z) of aflopend (Z- A). Gezien er in SQL enkel Engelse woorden worden gebruikt krijg je ascending en descending, afgekort tot ASC en DESC. Als je niks vermeldt, wordt er automatisch oplopend gesorteerd. Om aflopend te sorteren geef je dit aan door achter de kolomaanduiding na ORDER BY je keuze te vermelden. SELECT voornaam, tussenvoegsel,achternaam,klas ORDER BY 3 DESC; Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Maak een lijst van alle auteurs gesorteerd op achternaam. SELECT voornaam, achternaam FROM auteurs ORDER BY achternaam; b. Maak een lijst van alle boeken gesorteerd op Rubriek en dan op titel. SELECT rubriek, titel FROM boeken ORDER BY rubriek, titel;

8 DISTINCT Als we een overzicht willen hebben van de woonplaatsen van alle leerlingen zouden we de volgende query uit kunnen voeren: SELECT plaats ; Het resultaat levert een lange lijst van woonplaatsen waarvan de eerste tien hier zijn gegeven: Query1 plaats Odijk Nieuwegein Utrecht Houten Utrecht Utrecht Utrecht Schalkwijk Utrecht Bunnik... Het valt meteen op dat alleen al in de eerste tien er meerdere keren Utrecht vermeld staat. Dit maakt het niet overzichtelijk om erachter te komen uit welke steden alle leerlingen komen. Om het overzichtelijk te maken willen we elke plaats maar één keer in de lijst hebben staan. We voegen daarvoor het sleutelwoord DISTINCT toe aan de query. SELECT DISTINCT plaats ; Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Maak een lijst van alle bestaande rubrieken. SELECT DISTINCT rubriek FROM boeken; b. Maak een oplopende lijst van alle klassen die in zich in het systeem bevinden. SELECT DISTINCT klas ORDER BY klas ASC;

9 WHERE Leraren hebben niet veel aan een lijst met alle leerlingen van hele school, maar willen graag een lijst van leerlingen die in een bepaalde klas zitten. Gelukkig is het in SQL mogelijk om voorwaarden mee te geven aan een query om zo de gewenste rijen te selecteren zodat enkel die rijen worden gegeven. Willen we een lijst hebben van leerlingen die in klas 5a zitten kunnen de we volgende query uitvoeren: WHERE klas = '5a' ORDER BY achternaam; Let op! SQL werkt met verschillende datatypes en de meest gebruikte zijn integers (cijfers) en Strings (woorden/zinnen). Bij een String moeten altijd aanhalingstekens gebruikt worden en daarom staat er klas = '5a' Naast enkel het = teken zijn er andere operatoren van de wiskunde die gebruikt kunnen worden. < en > betekenen kleiner dan en groter dan <= en >= beteken kleiner dan of gelijk aan en groter dan of gelijk aan. <> betekent niet gelijk aan elkaar. Dit wil weleens per programma verschillen. Soms komt het voor dat er in een kolom niet alle rijen zijn ingevuld. Als je bijvoorbeeld kijkt bij de tabel auteurs, heeft niet elke auteur een sterfjaar. Een lege cel in een tabel heeft de waarde NULL. Als je alle auteurs wil selecteren zonder sterfjaar gebruik je de query: WHERE sterf_jaar IS NULL ORDER BY achternaam; Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Maak een alfabetische lijst van alle titels van de boeken uit de rubriek biologie. SELECT titel FROM boeken WHERE rubriek = "biologie" ORDER BY titel; b. Maak een lijst met alle auteurs die na 1950 zijn geboren. FROM auteurs WHERE geb_jaar > 1950; c. Maak een lijst met alle leerlingen waarvan het telefoonnummer onbekend is. WHERE telefoon IS NULL;

10 In veel gevallen komt het voor dat je meerdere eisen wil stellen, zoals een lijst van alle meiden uit 5 Dit noemen we samengestelde voorwaarden. Om voorwaarden samen te stellen gebruik je de sleutelwoorden OR en AND, zoals bij booleaanse algebra (zie module 1 Logica). Om alle meiden uit 5a te selecteren kan je de volgende query gebruiken: WHERE klas = '5a' AND geslacht = 'v' ORDER BY achternaam; Je mag zoveel voorwaarden als je wil samenstellen, zolang er maar tussen elke voorwaarde een OR of AND staat. Deze query bijvoorbeeld zoekt naar een leerlingen genaamd Jantine de Bakker : WHERE voornaam = 'Jantine ' AND tussenvoegsel = 'de' AND achternaam = 'Bakker'; Zoals al eerder aangegeven is het niet verplicht om elk sleutelwoord op een nieuwe regel te plaatsen. We kunnen de vorige query ook op de volgende manier opschrijven wat duidelijk een stuk minder overzichtelijk is: WHERE voornaam = 'Jantine ' AND tussenvoegsel = 'de AND achternaam = 'Bakker'; Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Maak een lijst met alle leerlingen uit 4b die in Utrecht wonen. WHERE klas = 4b AND plaats = Utrecht ; b. Jantine moet een lijst maken met alle meiden die wonen in Houten of Schalkwijk. Ze gebruikt de query:, geslacht WHERE (plaats = 'houten' OR plaats = 'Schalkwijk') AND geslacht = 'v' ORDER BY achternaam; Tot haar verbazing krijgt ze wel alle meiden uit Schalkwijk maar ze krijgt zowel alle meiden als jongens die in Houten wonen. Repareer de query zo dat ze dus een lijst krijgt met enkel de meiden uit Schalkwijk of Houten. c. Maak een lijst met alle leerlingen die in de 5e klas zitten., klas WHERE klas = 5a OR klas = 5b ;

11 LIKE De vorige opgave is op te lossen door achter WHERE alle verschillende 5e klassen aan te geven door klas = '5a' OR klas = '5b'. In dit geval zijn er maar 2 verschillende 5e klassen maar vaak komt het voor dat er veel meer 5e klassen zijn. Om ze niet allemaal op te hoeven schrijven kunnen we als hulpmiddel een * (sommige programma's gebruiken %) of _ gebruiken. De * houdt in dat je niet weet welke en hoeveel tekens er nog volgen en de _ houdt in dat er precies één teken mist, maar het niet uit maakt welke. Willen we dus alle jongens uit de 5e klas hebben gebruiken we: WHERE klas LIKE '5_ ' AND geslacht = 'm' ORDER BY achternaam; Willen we alle leerlingen die een postcode hebben dat begint met 496 gebruiken we: SELECT voornaam, tussenvoegsel,achternaam WHERE postcode LIKE '496* ' ORDER BY achternaam; Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Maak een lijst met alle leerlingen waarvan de achternaam begint met Frederi WHERE achternaam LIKE frederi* ; b. Je bent op zoek naar de achternaam van de auteur Willem Frederik maar je weet niet zeker of Frederik met een c of k eindigt. FROM auteurs WHERE voornaam LIKE Willem Frederi_ ;

12 Functies Aan het einde van het schooljaar wil de directie weten hoeveel verschillende soorten boeken ze in de bibliotheek hebben staan, maar ze hebben niet de tijd om ze allemaal te gaan tellen. Gelukkig heeft SQL verschillende functies die daar bij kunnen helpen. Eén daarvan is COUNT : SELECT COUNT(*) FROM boeken; Het resultaat is enkel een getal dat precies aangeeft hoeveel rijen er de tabel Boeken staat. Zo is er nog een aantal functies, maar in tegenstelling tot COUNT moeten deze functies wel gekoppeld worden aan een kolomnaam. Om te voorkomen dat COUNT dubbele regels telt is het mogelijk DISTINCT toe te voegen, maar dan is het wel van belang om een kolomnaam toe te voegen: COUNT(DISTINCT kolomnaam). SUM(kolomnaam) Hiermee bereken je som van alle getallen in een kolom. Het is dan ook van belang dat het een kolom is met getallen. MAX(kolomnaam) Levert de grootste waarde in een kolom. MIN(kolomnaam) Levert de laagste waarde in een kolom AVG(kolomnaam) Berekent het gemiddelde van alle getallen in een kolom. De query: SELECT SUM(boete) FROM uitleningen; levert het totale bedrag dat betaald is een boetes. Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Wat is de grootste boete die iemand heeft moeten betalen SELECT MAX(boete) FROM uitleningen; b. Hoeveel boeken zijn er in reparatie. SELECT COUNT(exnr) FROM exemplaren WHERE status = 'in reparatie'; c. In hoeveel rubrieken zijn de boeken in de bibliotheek opgedeeld. SELECT COUNT(DISTINCT rubriek) FROM boeken;

13 Groeperen Met de functie COUNT is het eenvoudig om van elke klas erachter te komen hoeveel leerlingen erin zitten: SELECT COUNT (*) WHERE klas = '4a'; SELECT COUNT (*) WHERE klas = '4b'; SELECT COUNT (*) WHERE klas = '5a'; SELECT COUNT (*) WHERE klas = '5b'; Maar dit is natuurlijk onhandig om dat voor elke klas te doen. We zouden eerst de leerlingen moeten groeperen per klas en dan pas tellen hoeveel leerlingen er in elke groep zitten. Om dit te kunnen doen gebruikt je het sleutelwoord GROUP BY: SELECT klas, COUNT (*) GROUP BY klas; Dit is de enige keer dat er een kolom en een functie te combineren zijn in de SELECT-regel, namelijk met een extra regel met GROUP BY (kolomnaam). Het is mogelijk om te groeperen met voorwaarden. Stel je voor dat je alle klassen met meer dan 25 leerlingen wil hebben. Hiervoor kan je het sleutelwoord HAVING voor gebruiken: SELECT klas, COUNT (*) GROUP BY klas HAVING COUNT(*) >= 25;

14 Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Hoeveel jongens en meiden zitten er op school. SELECT geslacht, COUNT(*) GROUP BY geslacht; b. Maak een lijstje van aantallen leerlingen per woonplaats. SELECT plaats, COUNT(*) GROUP BY plaats; c. Hoeveel boeken zijn er van elke rubriek aanwezig? SELECT rubriek, COUNT(*) FROM boeken GROUP BY rubriek; d. Uit welke plaatsen komen meer dan tien leerlingen? SELECT plaats, COUNT(*) GROUP BY plaats HAVING COUNT(*) > 10;

15 Tabellen koppelen. In het tabel reserveringen zijn er drie leerlingen die hun reserveringkosten nog niet hebben betaald. De medewerkers van de bibliotheek willen graag weten welke leerlingen dit zijn, maar in het tabel staan enkel leerlingnummers. Ze stellen de volgende query op om erachter te komen welke leerlingen nog niet hebben betaald:, kosten_betaald, reserveringen WHERE kosten_betaald='n'; In plaats van dat ze de namen krijgen van de drie leerlingen krijgen ze een lange lijst waarin alle leerlingen drie keer in voor komen. Query1 voornaam tussenvoegsel achternaam kosten_betaald Janco Dijke van n Janco Dijke van n Janco Dijke van n Rene Bokker n Rene Bokker n Rene Bokker n Marco van Bemmel n Marco van Bemmel n Marco van Bemmel n Om duidelijkheid te krijgen wat hier misgaat willen ze de leerlingnummers er ook bij hebben. Gezien zowel de tabel leerlingen als reserveringen een kolom hebben met de naam LLNR moet er een onderscheid gemaakt worden. Om aan te geven uit welk tabel de kolom komt zetten we tabelnaam eerste gevolgd door de kolomnaam met een punt ertussen:, kosten_betaald, leerlingen.llnr, reserveringen.llnr, reserveringen WHERE kosten_betaald='n'; Query1 voornaam tussenvoegsel achternaam kosten_betaald leerlingen.llnr reserveringen.llnr Janco Dijke van N Janco Dijke van N Janco Dijke van N Rene Bokker N Rene Bokker N Rene Bokker N Marco van Bemmel N Marco van Bemmel N Marco van Bemmel N 53 66

16 Hieruit is te zien dat de leerlingennummers van beide tabellen niet goed gekoppeld worden. Om dat voor elkaar te krijgen moet er een voorwaarde bij komen:, kosten_betaald, leerlingen.llnr, reserveringen.llnr, reserveringen WHERE leerlingen.llnr = reserveringen.llnr AND kosten_betaald = n ; Query1 voornaam tussenvoegsel achternaam Monique Aalbers Ilse Dennis Ebbenhorst Smets Om duidelijk te maken wat er precies is gebeurd als je twee tabellen samenvoegt, volgt hier een klein voorbeeld. Naam Niels Ingrid Alice Woonplaats Utrecht Houten Utrecht Naam Niels Ingrid Alice Postcode 3522PG 3991BD 3586aS Stel je wilt deze twee tabellen samenvoegen tot een geheel. Je zou dan de volgende query kunnen gebruiken: SELECT plaats.naam, woonplaats, postcode FROM plaats, postcode Dit levert: Niels Utrecht 3522PG Niels Utrecht 3991BD Niels Utrecht 3586aS Ingrid Houten 3522PG Ingrid Houten 3991BD Ingrid Houten 3586aS Alice Utrecht 3522PG Alice Utrecht 3991BD Alice Utrecht 3586aS Hij koppelt elke rij van de ene tabel aan elke elke rij van de andere tabel. Naam Niels Ingrid Alice Woonplaats Utrecht Houten Utrecht Naam Niels Ingrid Alice Postcode 3522PG 3991BD 3586aS

17 Het is dus zeer belangrijk dat als je twee of meer tabellen gebruikt in een query, dat je de tabellen op de juist manier koppelt. Wil je bijvoorbeeld weten welke titels de leerlingen lenen uit de bibliotheek, zou je drie tabellen bij elkaar moeten voegen; namelijk leerlingen, uitleningen en boeken:, titel, uitleningen, boeken WHERE leerlingen.llnr = uitleningen.llnr AND uitleningen.boeknr = boeken.boeknr; Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Maak een lijst van auteurs en de titels van hun boeken die in de bibliotheek zijn., titel FROM auteurs, boeken WHERE auteurnr = autnr; b. Maak een lijst van leerlingen en de boetes die ze hebben betaald, boete, uitleningen WHERE leerlingen.llnr = uitleningen.llnr; c. Maak een lijst van alle leerlingen en hun reserveringen, titel, reserveringen, boeken WHERE reserveringen.llnr = leerlingen.llnr AND reserveringen.boeknr = boeken.boeknr; d. Welke boeken zijn er in de bibliotheek van schrijvers uit de 19e eeuw?, geb_jaar, titel FROM auteurs, boeken WHERE geb_jaar >= 1800 AND geb_jaar < 1900 AND auteurnr = autnr; e. Van welke auteur zijn er boeken in de reparatie? FROM exemplaren, boeken, auteurs WHERE status = 'in reparatie' AND exemplaren.boeknr = boeken.boeknr AND autnr = auteurnr;

18 Subquery De bibliotheek wil graag weten welke leerling het afgelopen jaar de hoogste boete heeft betaald. Daarvoor moeten we twee vragen beantwoorden. Wat was de hoogste boete en wie moest die betalen. De eerste vraag is het eenvoudigst: SELECT MAX(boete) FROM uitleningen; De hoogste boete blijkt f4,- te zijn. Nu moeten we alleen nog uitzoeken bij welke leerlingen deze boete hoort: FROM uitleningen, leerlingen WHERE leerlingen.llnr = uitleningen.llnr AND boete = 4,00; Deze twee queries kunnen samengevoegd worden tot één query met behulp van een subquery: FROM uitleningen, leerlingen WHERE leerlingen.llnr = uitleningen.llnr AND boete = ( SELECT MAX(boete) FROM uitleningen ); Opdrachten Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. Wie is de jongste auteur die ze in hun database hebben staan? FROM auteurs WHERE geb_jaar = ( SELECT MAX(geb_jaar) FROM auteurs); Oefeningen Geef in alle gevallen de query die je hebt gebruikt en niet de resultaten. 1 Maak een lijst van alle presidenten die als hobby vissen hebben SELECT pres_name FROM preshobby WHERE hobby = 'fishing'; 1b. Hoeveel presidenten hebben als hobby vissen? SELECT COUNT(*) FROM preshobby WHERE hobby = 'fishing'; 2. Welke presidenten hebben meer dan 5 kinderen? SELECT pres_name FROM presmarriage

19 WHERE nr_children > 5; 3. Welke presidenten leefde nog toen deze database werd gemaakt? SELECT pres_name FROM president WHERE death_age IS NULL; 4. Welke president was het oudst op zijn trouwdag en hoe oud was hij? SELECT pres_name, pr_age FROM presmarriage WHERE pr_age = ( SELECT MAX(pr_age) FROM presmarriage); 5. Welke presidenten hebben geen volledige periode afgemaakt (één periode duurt 4 jaar) SELECT pres_name FROM president WHERE yrs_serv < 4; 6. Welke presidenten trouwden nadat ze waren gekozen tot president. SELECT presmarriage.pres_name FROM presmarriage, admin WHERE admin.year_inaugurated < presmarriage.year;

20 CRUD Tot nu toe hebben we enkel query s gemaakt die data uit een database kunnen selecteren (Read), de zogenaamde SELECT-queries. SQL kan nog voor veel meer dingen gebruikt worden omtrent databases namelijk het aanmaken van tabellen, invoegen van data (Create), updaten van data (Update) en het verwijderen van data (Delete). CREATE Om te beginnen moet er eerst een database aangemaakt worden. Dit kan met de volgende query: CREATE DATABASE naam; Let erop dat er geen spaties voor mogen komen in de naam van een database. Na het maken van de database kunnen we overgaan op het creëren van tabellen. Net zoals bij de SELECT-query s kent ook deze CREATE-query een standaard opbouw, namelijk: CREATE TABLE naam ( kolomnaam type, kolomnaam type, kolomnaam type, kolomnaam type, kolomnaam type, ); Stel je voor dat je een tabel wil maken met een klantennummer, voornaam, achternaam, adres en een woonplaats. Om dat voor elkaar te krijgen gebruik je deze query: CREATE TABLE naam ( KlantNR int, Voornaam varchar(255), achternaam varchar(255), adres varchar(255), woonplaats verchar(255) ); Types Bij het maken van een database moet je er ook bij bedenken welke type data je in een kolom wil opslaan. Wil je een getal opslaan, een datum of misschien een naam. SQL kent meerdere types en tussen sommige programma s wil daar nog wel eens een verschil tussen zitten. Wij gebruiken in deze module de types die bij MySQL horen. Hieronder staat een rijtje van de belangrijkste en wil je de hele lijst zien kan je surfen naar: Type varchar(grootte) Tekst Enum( x, y, z ) int double date() Beschrijving Een tekst waarvan je de maximum lengte kan aangeven. Bijvoorbeeld voor voornamen, achternamen, wachtwoorden Een tekst van maximaal tekens lang. Wordt vooral gebruikt voor langere stukken tekst bijvoorbeeld een beschrijving van een artikel. Een lijst van mogelijke waardes die ingevuld kunnen worden. Bijvoorbeeld voor geslacht, rubriek, genre Een geheel getal, wordt heel vaak gebruikt voor ID-nummers Een kommaget Een datum in de vorm van JJJJ-MM-DD

21 INSERT Nu het hele database is aangemaakt moet het mogelijk zijn om nieuw data in te voegen, bijvoorbeeld een nieuwe klant. Dit wordt gedaan aan de hand van INSERT: INSERT INTO tabel_naam (Kolomnaam, Kolomnaam) VALUES ( data, data ); Komt het voor dat je in een bepaalde kolom geen data wil plaatsen dan sla je deze kolomnaam over. Let erop dat je de data in dezelfde volgorde zet als je de kolomnamen hebt staan. Komt het voor dat je alle kolommen wilt vullen dan is het niet verplicht deze allemaal op te schrijven als je er maar voor zorgt dat de data in de juiste volgorde staat. Voorbeeld: INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway'); UPDATE Het kan voorkomen dat een klant zijn wachtwoord wil veranderen, of dat hij misschien is verhuisd. Dit is mogelijk met de UPDATE-query: UPDATE tabelnaam SET kolomnaam1 = waarde1, kolomnaam2 = waarde2, WHERE kolomnaam = waarde; Stel je voor dat de klant met het adres blaat@test.nl zijn wachtwoord wil veranderen. Dan kan je de volgende query gebruiken om dat voor elkaar te krijgen: UPDATE klanten SET wachtwoord='nieuw_ww' WHERE = blaat@test.nl ; DELETE We hebben nu bijna alles gehad van CRUD. Met INSTERT kunnen we nieuwe objecten aanmaken (Create), met behulp van SELECT-query s kunnen we data opvragen (Read) en met de UPDATE is het mogelijk om bestaande informatie aan te passen(update). We missen alleen nu de Delete en dat kan je doen aan de hand van DELETE: DELETE FROM tabelnaam WHERE kolomnaam1 = waarde1; (Je mag meerdere voorwaardes meegeven) Stel je wilt een klant verwijderen met de naam Alfreds Futterkiste gebruik je de volgende query: DELETE FROM klanten WHERE klantnaam='alfreds Futterkiste'

Structured Query Language (SQL)

Structured Query Language (SQL) Structured Query Language (SQL) Huub de Beer Eindhoven, 4 juni 2011 Database: in essentie 0 of meer tabellen elke tabel nul of meer kolommen (of velden) elke tabel nul of meer unieke rijen elke query werkt

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Miniles gegevensbanken bevragen met SQL

Miniles gegevensbanken bevragen met SQL Miniles gegevensbanken bevragen met SQL In deze miniles gaat het over gegevensbanken of databases. Dit zijn bestanden waarin gegevens kunnen worden opgeslagen. Het is dan van belang dat je op een eenvoudige

Nadere informatie

Les S-02: Meer geavanceerde SQL-instructies

Les S-02: Meer geavanceerde SQL-instructies Les S-02: Meer geavanceerde SQL-instructies 2.0 Overzicht les 1: De basisvorm van een SQL query ziet er als volgt uit: (DISTINCT) selecteer de velden uit de tabel waar de volgende voorwaarde geldt ; Bij

Nadere informatie

Query SQL Boekje. Fredrik Hamer

Query SQL Boekje. Fredrik Hamer Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen

Nadere informatie

11. Het selecteren van gegevens deel II

11. Het selecteren van gegevens deel II 11. Het selecteren van gegevens deel II 11.1. Inleiding In hoofdstuk 7 heb je kennis gemaakt met het statement Select. In dit hoofdstuk ga je wat dieper in op het statement. Je gaat sorteren / groeperen

Nadere informatie

= > >= < <= BETWEEN IS NULL IS NOT NULL

= > >= < <= BETWEEN IS NULL IS NOT NULL Select queries SELECT...FROM... SELECT DISINCT...FROM... WHERE...AND...OR...NOT...LIKE...IN = > >= <

Nadere informatie

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64 Klas Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters JONGENS Number Integer MEISJES Number Integer Lessen Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters DOCCODE Short Text 3 Characters

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

Relationele databases en SQL

Relationele databases en SQL Relationele databases en SQL Bij deze lesstof hoort de Access-database Bibliotheek.mdb 1 STRUCTUUR IN INFORMATIE: NAAR EEN RELATIONELE DATABASE Een gegevensbank is een verzameling van gegevens. Gegevensbanken

Nadere informatie

Databases - Inleiding

Databases - Inleiding Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden

Nadere informatie

12. Meer dan één tabel gebruiken en sub-queries

12. Meer dan één tabel gebruiken en sub-queries 12. Meer dan één tabel gebruiken en sub-queries 12.1. Inleiding In de vorige hoofdstukken heb je telkens queries uitgevoerd op één tabel. In de praktijk is het raadplegen van gegevens over het algemeen

Nadere informatie

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 DATAMODEL SQL Middelbare School Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 INHOUDSOPGAVE 1. Informatiedomein 3 1.1 Informatiedomein 3 1.2 Toepassingen 3 2.

Nadere informatie

Van CaseTalk naar een database in SQLite studio

Van CaseTalk naar een database in SQLite studio Van CaseTalk naar een database in SQLite studio Dit document legt uit hoe je een SQL export uit CaseTalk kunt importeren in het DBMS (Database Management System) SQLite Studio. SQLIte studio is handig

Nadere informatie

En hoe gaan ze dit allemaal terugvinden?

En hoe gaan ze dit allemaal terugvinden? En hoe gaan ze dit allemaal terugvinden? Taak 1.2.10 Thomas Muller Paul van der Linden MT1A Tutor: van Griensven Docent: van den Biggelaar Gemaakt door Thomas Muller en Paul van der Linden Pagina 1 van

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Introductie (relationele) databases

Introductie (relationele) databases Eerste les Introductie (relationele) databases Database en DBMS Een verzameling van gestructureerd opgeslagen gegevens Dus ook een kaartenbak is een database Van oudsher waren er hiërarchische en netwerkdatabases

Nadere informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases

Nadere informatie

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC Aantekeningen IRDB Vak: IRDB > Infrma1ca Rela1nele DataBase Onderstaande database scripts zijn gebaseerd p PstgreSQL. Standaarden Schrijf SQL wrden al1jd in hfdlefers, k al werkt het met kleine lefers;

Nadere informatie

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5 1 Inhoudsopgave. Inleiding.... 3 1 Databases en Data Base Management Systems.... 3 2 Tabellen.... 3 3 Wat is SQL?... 5 4 Gegevens opvragen (deel 1).... 5 4.1 Boolean operatoren.... 7 4.2 IN en BETWEEN

Nadere informatie

Databases SQL - meerdere tabellen

Databases SQL - meerdere tabellen Databases SQL - meerdere tabellen Nut van een database Dilbert 1 Reservering Lezer Uitgave Filiaal Basis zaken Uitlening Exemplaar NB: er kan verschil in smaak zitten tussen M1a en S1a notatie Join : het

Nadere informatie

SQL.

SQL. SQL joost.vennekens@kuleuven.be Mogelijkheden Tabellen maken: create table Tabellen verwijderen: drop table Tabellen vullen: insert into Tabellen wijzigen: update, delete from Gegevens opvragen: select

Nadere informatie

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Op dit moment gebruiken

Nadere informatie

Data Manipulation Language

Data Manipulation Language Data Manipulation Language (DML) In de vorige les hebben we een database structuur gemaakt van 4 tabellen. Hiervoor worden de volgende scripts gebruikt voor de verschillende tabellen: Tabel A ROBERT ELLIS

Nadere informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster 4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

SQL & Relationele datamodellen in interactieve media

SQL & Relationele datamodellen in interactieve media SQL & Relationele datamodellen in interactieve media HVA-CMD-V1-datamodelleren oefeningen deel 1: SQL 2012-2013 Inhoud Inhoud... 2 Selecties uit een enkelvoudige datatabel... 3 Selecties uit een meerdere

Nadere informatie

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens

Nadere informatie

Les S-01: De basisbeginselen van SQL

Les S-01: De basisbeginselen van SQL Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database

Nadere informatie

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010 4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4.1 Starten met MS Access Als je het programma Microsoft Access

Nadere informatie

Relationele databases

Relationele databases Systematisch bouwen van informatiesystemen t.b.v. practicumopdracht : Relationele databases Structured Query Language SQL Relationele databases Geautomatiseerde informatiesystemen gebruiken bijna altijd

Nadere informatie

2.2 Een tabel ontwerpen

2.2 Een tabel ontwerpen 2.2 Een tabel ontwerpen 2.2.1 Gegevens analyse Alvorens de tabellen van een database te kunnen gaan opzetten, dient u eerst te bepalen, welke gegevens daarin moeten worden opgenomen. Bepaal eerst het doel

Nadere informatie

[TOETS SQL INLEIDING]

[TOETS SQL INLEIDING] 2011 ROC ter AA afdeling T&T Team ICT Toets SQL Inleiding Duur: 100 minuten Hulpmiddelen: Alleen Pen en Papier Er is één voorblad en vijf opgaven pagina s. Normering: Deel I: 14 punten (7x2 Deel II: 10

Nadere informatie

2.4.4 LibreOffice Werkblad Mac

2.4.4 LibreOffice Werkblad Mac 2.4.4 LibreOffice Werkblad Mac Deze cursus bestaat uit 4 delen. 1. Werkblad gebruiken voor berekeningen 2. Werkblad gebruiken voor het maken van lijsten 3. Werkblad gebruiken voor een (eenvoudige) boekhouding

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Digitaal Staatsexamen VWO 2010

Digitaal Staatsexamen VWO 2010 Onderdeel I - Meerkeuzevragen Kies het juiste alternatief. Digitaal Staatsexamen VWO 2010 1) Wat is de decimale waarde van het binaire getal 101110? A. 4 B. 23 C. 46 D. 92 2) Bekijk bovenstaand model voor

Nadere informatie

Gebruikers Handleiding

Gebruikers Handleiding Gebruikers Handleiding (De SQL module) Versie 2.14 Pagina 2 van 14 Versie 2.14 Inhoudsopgave NGP SQL...5 Het Menu... 6 De instellingen... 7 De database informatie... 9 Het Script... 10 Pagina 3 van 14

Nadere informatie

Hoofdstuk: 1 Principes van databases

Hoofdstuk: 1 Principes van databases DBSQLF Databases en SQL Hoofdstuk: 1 Principes van databases aant Css: 4 732 blz 9 1.1 Doel ve database - om op het juiste moment op de juiste plaats de juiste gegevens beschikbaar te hebben richten we

Nadere informatie

Een functie is een kant en klare formule. Via de knop Som in de groep Bewerken van het tabblad Start kun je een aantal veelgebruikte functies kiezen:

Een functie is een kant en klare formule. Via de knop Som in de groep Bewerken van het tabblad Start kun je een aantal veelgebruikte functies kiezen: SAMENVATTING HOOFDSTUK 6 De functies Gemiddelde en Afronding Een functie is een kant en klare formule. Via de knop Som in de groep Bewerken van het tabblad Start kun je een aantal veelgebruikte functies

Nadere informatie

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên

Nadere informatie

oefeningen TOP2000 antwoorden

oefeningen TOP2000 antwoorden oefeningen TOP2000 antwoorden vragen niveau 1 Niveau 1 beslaat de volgende onderwerpen: SELECT, FROM, WHERE, DISTINCT, ORDER BY, LIKE, BETWEEN, IN, wildcards, eenvoudige vergelijkingen, eenvoudige logische

Nadere informatie

Les 11 : Basis SQL (deel2).

Les 11 : Basis SQL (deel2). Les 11 : Basis SQL (deel2). Wat is SQL? SQL gaan we gebruiken voor het raadplegen van de database. We gaan gegevens invoegen in de database, selecteren, aanpassen en verwijderen van de database. Om dit

Nadere informatie

ISO Query By Example

ISO Query By Example ISO Query By Example Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. QBE waarom nog een query taal? de relationele algebra en SQL geven niet alleen een specificatie van een query-resultaat,

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

F. TRUYEN - Informatiekunde QBE. MS Access

F. TRUYEN - Informatiekunde QBE. MS Access F. TRUYEN - Informatiekunde QBE MS Access Maak queries via Design View Voeg de tabellen toe die je wil bevragen Selecteer de gewenste kolommen Bekijk resultaat met View knop Bekijk SQL code SQL venster

Nadere informatie

Databases en SQL Foundation (DBSQLF.NL)

Databases en SQL Foundation (DBSQLF.NL) Databases en SQL Foundation (DBSQLF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48

Nadere informatie

PROGRAMMA 2011-2012. Vak: informatica..

PROGRAMMA 2011-2012. Vak: informatica.. Vak: informatica.. Laag: Havo-. PROGRAMMA 2011-2012 week leerstof dagen toets overig 34-26.08 zomervakantie Bespreking PTA-404 Deze week: uitreiking van de Praktische Opdracht Programmeren Herhaling theorie

Nadere informatie

Sorteren, groeperen en totaliseren

Sorteren, groeperen en totaliseren 6 Sorteren, groeperen en totaliseren 6.1 Inleiding Een rapport maken begint met het selecteren van de tabellen en het plaatsen van de velden die u in uw rapport wilt afdrukken. Vervolgens sorteert, groepeert

Nadere informatie

Les S-01: De basisbeginselen van SQL

Les S-01: De basisbeginselen van SQL Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database

Nadere informatie

Data Definition Language

Data Definition Language Data Definition Language We gaan hier dezelfde database gebruiken als in de vorige les. Nu gaan we deze echter maken met behulp van DDL gedeelte van SQL. Om in het SQL deel van Microsoft Access te komen

Nadere informatie

Inhoudsopgave. Theorie... 14 Praktijk... 14. Gegevens uit Database halen... 13 DML commando s... 14

Inhoudsopgave. Theorie... 14 Praktijk... 14. Gegevens uit Database halen... 13 DML commando s... 14 SQL 2013 Inhoudsopgave Inhoudsopgave... 2 SQL begrippen... 3 Maken Database... 4 Rechten voor een Database... 4 User aanmaken... 5 Rol Toekennen aan een user... 5 Backup... 6 Theorie... 6 In SQL... 6 SQL

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Antwoorden Informatica Hoofdstuk 7

Antwoorden Informatica Hoofdstuk 7 Antwoorden Informatica Hoofdstuk 7 Antwoorden door een scholier 2667 woorden 8 september 2016 5,6 3 keer beoordeeld Vak Methode Informatica Enigma 6. Om snel het persoon op te zoeken en weten wie het persoon

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Extra Tentamen Databases 1, 2M400, 8 oktober 2003. Alle uitwerkingen van de opgaven moeten worden ingevuld in de daarvoor bestemde vrije

Nadere informatie

Structured Query Language

Structured Query Language Structured Query Language SQL = internationale standaardtaal. Origineel IBM. SQL92 (SQL2), SQL99 (SQL3), SQL:2003, SQL:2007 en SQL:2008. Vele dialecten. In wat volgt beperken we ons tot wat tot de kern

Nadere informatie

Tentamen Databases. 18 december 2002. 09:00-12:00, Educatorium Gamma

Tentamen Databases. 18 december 2002. 09:00-12:00, Educatorium Gamma Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Tentamen

Nadere informatie

Excel Controller. Handleiding Excel Controller Wizard

Excel Controller. Handleiding Excel Controller Wizard Excel Controller Handleiding Excel Controller Wizard 1 Inhoud Inleiding... 3 Eigen SQL... 3 Stap 1 Eigen SQL... 3 Stap 2 Testen SQL... 8 Stap 3 Wizard... 11 Stap 4 Parameters... 13 Voorbeeld Eigen Parameter...

Nadere informatie

8. De invoer van gegevens

8. De invoer van gegevens 8. De invoer van gegevens 8.1. Inleiding Voor het invoeren van gegevens kan het DML-statement INSERT INTO worden gebruikt. Om dit statement correct te kunnen gebruiken, moet je wel antwoord weten op de

Nadere informatie

E-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN

E-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN E-MAILS VERZENDEN MET AFDRUK SAMENVOEGEN Met E-mail samenvoegen voor Word en Outlook kunt u o.a. een brochure of nieuwsbrief maken en deze per e-mail verzenden naar uw Outlook-lijst met contactpersonen

Nadere informatie

Antwoorden door een scholier 1990 woorden 3 maart keer beoordeeld. Informatica INFORMATICA HOOFDSTUK 4

Antwoorden door een scholier 1990 woorden 3 maart keer beoordeeld. Informatica INFORMATICA HOOFDSTUK 4 Antwoorden door een scholier 1990 woorden 3 maart 2006 6 23 keer beoordeeld Vak Methode Informatica Turing INFORMATICA HOOFDSTUK 4 1a database management system 1b database 1c database system 1d geen 2a

Nadere informatie

ISO SQL: Structured Query Language

ISO SQL: Structured Query Language ISO SQL: Structured Query Language Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. SQL: query taal met woorden doel: intuitieve query taal gebruikt Engelse woorden: select, from,

Nadere informatie

Office LibreOffice Werkblad gebruiken

Office LibreOffice Werkblad gebruiken office_lo_werkblad_gebruiken/05-03-15/pag 1/6 Office LibreOffice Werkblad gebruiken Deze les bestaat uit 4 delen. 1. Werkblad gebruiken voor berekeningen 2. Werkblad gebruiken voor het maken van lijsten

Nadere informatie

6. Het maken van een database

6. Het maken van een database 6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor

Nadere informatie

Versie: 1.1 Datum: 24-11-2014. Handleiding Portal HostedXL

Versie: 1.1 Datum: 24-11-2014. Handleiding Portal HostedXL Versie: 1.1 Datum: 24-11-2014 Handleiding Portal HostedXL Inhoudsopgave 1 INLEIDING... 3 2 INLOGGEN... 4 2.1 GEBRUIKERS... 6 2.1.1 Nieuwe gebruiker aanmaken... 6 2.1.2 Bestaande gebruiker aanpassen...

Nadere informatie

9 H. Flits Zwanenveld 89-90 Nijmegen Jeugd1 10 L. Willemsen Kasteel 4 Wychen Jeugd1 12 M.E.P. Graag Broerdijk 234 Nijmegen Heren 12/8/89 19/8/89 36

9 H. Flits Zwanenveld 89-90 Nijmegen Jeugd1 10 L. Willemsen Kasteel 4 Wychen Jeugd1 12 M.E.P. Graag Broerdijk 234 Nijmegen Heren 12/8/89 19/8/89 36 0 Inleiding SQL: Structured Query Language 0. Informatiesystemen, gegevensbanken en tabellen Bij het automatiseren van gegevensbanken maakt men tegenwoordig bijna altijd gebruik van gegevensbank-beheerssystemen

Nadere informatie

1. * Database worden vaak gebruikt in Client-Server architectuur.

1. * Database worden vaak gebruikt in Client-Server architectuur. Naam Studentnummer Klas Herkansing [ ] ja, nee [ ], zoja uit welk jaar? kernbegrippen relationele database Minimaal drie van de vijf vragen goed beantwoorden. 1. * Database worden vaak gebruikt in Client-Server

Nadere informatie

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens Info-books HA40c Toegepaste Informatica Handleiding Deel 40c : Gegevensbeheer en algoritmen in Access Jos Gils Erik Goossens Veldlengte Het maximale aantal tekens dat in een veld kan ingevoerd worden.

Nadere informatie

SQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal

SQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal SQL: query taal met woorden ISO SQL: Structured Query Language Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. doel: intuitieve query taal gebruikt Engelse woorden: select, from,

Nadere informatie

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site Kies File>New>Blank Page>PHP Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site Geef de site een passende naam. Kies ook de juiste map voor de webdocumenten.

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank Inhoud Computervaardigheden Hoofdstuk 5 Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.) Terminologie Data importeren Basis queries Allerhande Joins Doe dit. Aandachtspunt! Wat gebeurt hier?

Nadere informatie

Informatie Voor algemene vragen/opmerkingen omtrent de inhoud van deze site kunt u bellen of e-mailen met: Cargo Data Systems BV

Informatie Voor algemene vragen/opmerkingen omtrent de inhoud van deze site kunt u bellen of e-mailen met: Cargo Data Systems BV Rapportgenerator Gebruikershandleiding Versie 1.0 Disclaimer Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar worden gemaakt, op welke wijze dan ook, zonder voorafgaande schriftelijke toestemming

Nadere informatie

Van een ER-diagram naar een database specificatie in SQL

Van een ER-diagram naar een database specificatie in SQL Van een ER-diagram naar een database specificatie in SQL Huub de Beer Eindhoven, 4 juni 2011 Inhoudsopgave 1 Inleiding 1 2 Van een ER-diagram naar het relationele model 1 3 Van relationeel model naar SQL

Nadere informatie

Project PiggyBank 2014

Project PiggyBank 2014 Project PiggyBank 2014 Auteur Laatst gewijzigd Licentie Webadres Bert Bredewold 23 April 2014 CC Naamsvermelding 3.0 Nederland licentie http://maken.wikiwijs.nl/50661 Dit lesmateriaal is gemaakt met Wikiwijsleermiddelenplein.

Nadere informatie

INLOGGEN Vul gebruikersnaam en wachtwoord in, en klik op log in.

INLOGGEN Vul gebruikersnaam en wachtwoord in, en klik op log in. Snel starten met Testweb PSL als coördinator WAAR? Je vindt Testweb PSL op de volgende website: www.testweb.bsl.nl Je kunt inloggen in het groene vak aan de rechterkant: Direct inloggen Testweb PSL INLOGGEN

Nadere informatie

Ledenlijsten + etiketten maken

Ledenlijsten + etiketten maken Ledenlijsten + etiketten maken Eerst wordt uitgelegd hoe je een ledenlijst (van alle clubleden of leden per lesjaar) kan opvragen en bewerken en nadien hoe je met deze lijst etiketten kan maken. De ledenlijst

Nadere informatie

COMPUTERWOORDEN.NL SQL - basis

COMPUTERWOORDEN.NL SQL - basis Inhoudsopgave... 1 Introductie: SQL... 7 SQL... 7 SQL geschiedenis...7 SQL dialecten...7 Basis SQL-commando's...8 CREATE TABLE... 8... 8... 8 Datatype...8 Grootte...10 Veldtype... 10 DELETE FROM... 10...

Nadere informatie

Inleiding tot de catalogus. 10mm. foto

Inleiding tot de catalogus. 10mm. foto Inleiding tot de catalogus 10mm foto Inhoud Registreren... 4 Je gezinsleden aan je profiel koppelen... 8 Je gebruikersprofiel... 9 Verlengen... 11 Materialen opzoeken en reserveren... 12 Registreren Om

Nadere informatie

Handleiding LVS-bestand

Handleiding LVS-bestand Tabblad Niveaus 1. Leerlingen(groepen) invoeren. 2. Nieuwe leerling toevoegen. 3. Leerlingen verwijderen. 4. Behaalde niveaus invoeren. Tabblad Gemiddelden 1. Waarom dit tabblad? 2. Opmerking toevoegen.

Nadere informatie

4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen.

4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4.1 Starten met MS Access Als je het programma Microsoft Access

Nadere informatie

Moderne Naamkunde - Access practicum <David Onland en Gerrit Bloothooft juni 2008> 1. Databases

Moderne Naamkunde - Access practicum <David Onland en Gerrit Bloothooft juni 2008> 1. Databases Moderne Naamkunde - Access practicum 1 Databases Wat zijn databases? Databases worden gebruikt om grote hoeveelheden gegevens te beheren en om te zetten in

Nadere informatie

Een introductie tot gegevensbanken

Een introductie tot gegevensbanken Een introductie tot gegevensbanken Kris Luyten Tom Van Laerhoven Expertisecentrum Digitale Media Limburgs Universitair Centrum Wetenschapsdagen 2002 1. Overzicht Wat zijn gegevensbanken? Bestanden versus

Nadere informatie

PROGRAMMA 2011-2012. Vak: Informatica..

PROGRAMMA 2011-2012. Vak: Informatica.. Vak: Informatica.. Laag: vwo-. PROGRAMMA 2011-2012 week leerstof dagen toets overig 34-26.08 zomervakantie Bespreking PTA-404 1. Deze week: uitreiking van de Praktische Opdracht Programmeren Herhaling

Nadere informatie

6.8 Lijsten: oefeningen

6.8 Lijsten: oefeningen 6.8 Lijsten: oefeningen Opgaven 44.: Records zoeken Open het document "Autokosten". Klik in de lijst. Kies de opdracht 'Data - Formulier' [Data - Form]. Klik de knop 'Criteria' [Criteria]. Vul als zoekcriterium

Nadere informatie

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling Databases SQL Leerjaar 1/2 ICT-Academie Niveau 4 Applicatie ontwikkeling Auteur: R. Meijerink Datum: Januari 2013 0. Inleiding Databases / SQL In deze lessen wordt je geleerd databases te bouwen in SQL-code.

Nadere informatie

1. Databanken. Wat is een databank? Verschillende opslagmethodes

1. Databanken. Wat is een databank? Verschillende opslagmethodes 1. Databanken Wat is een databank? Verschillende opslagmethodes Tekst bestanden Spreadsheet Relationele gegevensbanken Relationeel model De gestandaardiseerde opvraagtaal SQL Beheer van een mysql databank

Nadere informatie

Informatie verwerking en databases... 4. RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE...

Informatie verwerking en databases... 4. RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE... Databases+SQL 1 Inhoud Informatie verwerking en databases... 4 RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE... 18 SQL ORDER BY... 19 SQL Aggregate

Nadere informatie

Handleiding CMS VOORKANT

Handleiding CMS VOORKANT Handleiding CMS VOORKANT Inhoudsopgave Pagina 1. Toegang tot het CMS... 3 2. Artikel toevoegen... 4 3. Artikel bewerken... 5 4. Artikel kopiëren of verwijderen... 6 5. Afbeelding, link of tabel invoegen...

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

Nadere informatie

Macro s. 4.2 Een macro maken

Macro s. 4.2 Een macro maken 4.2 Een macro maken Een macro is een reeks van commando s die u kunt maken en die een programma uitvoeren. Wanneer u de macro in zijn geheel uitvoert, dan worden de acties opeenvolgend uitgevoerd. Elk

Nadere informatie

Gekoppelde tabellen: de JOIN

Gekoppelde tabellen: de JOIN Gekoppelde tabellen: de JOIN Huub de Beer Eindhoven, 4 juni 2011 Koppelingstabellen en SQL: eenvoudig voorbeeld: leerlingen en klassen ll_nr woonplaats mentor Leerling zit in klas Klas klascode geb_jaar

Nadere informatie

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina.

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina. Gegevens exporteren en bewerken vanuit GRIEL Stap 1. Selecteer de juiste gegevens en download deze 1. Stel het datumfilter in op de gewenste periode. Druk op ververs. 2. Maak met behulp van het filter

Nadere informatie

Handleiding Afdrukken samenvoegen

Handleiding Afdrukken samenvoegen Handleiding Afdrukken samenvoegen Versie: 1.0 Afdrukken Samenvoegen Datum: 17-07-2013 Brieven afdrukken met afdruk samenvoegen U gebruikt Afdruk samenvoegen wanneer u een reeks documenten maakt, bijvoorbeeld

Nadere informatie

SQL / Systeemanalyse

SQL / Systeemanalyse SQL / Systeemanalyse Wie ben ik Hans de Wit 44 jaar HBO BI in deeltijd gedaan Sinds 2008 werkzaam met BI / DWH med.hro.nl/wihan SQL De gegevens in een database vormen de grondstof voor informatie De informatie

Nadere informatie

Het omzetten van een ER-diagram naar SQL

Het omzetten van een ER-diagram naar SQL Het omzetten van een ER-diagram naar SQL Huub de Beer Eindhoven, 4 juni 2011 Omzetting ER-diagram naar SQL in twee stappen 1: ER-Diagram relationeel model Onderwerp van hoofdstuk 3 Entiteittype relatie,

Nadere informatie

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 voorbeeldexamen Databases and SQL Foundation (DBSQLF) I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 inhoud 3 inleiding 4 voorbeeldexamen 21 antwoordindicatie 44 beoordeling

Nadere informatie

databases & SQL - antwoorden

databases & SQL - antwoorden informatica databases & SQL - antwoorden Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2010 Remie Woudt remie.woudt@gmail.com 2013 François Vonk (XAMP vervangen door USBWebserver

Nadere informatie

7. Het selecteren van gegevens

7. Het selecteren van gegevens 7. Het selecteren van gegevens 7.1. Inleiding Het doel van databases is het ontsluiten van gegevens. Een database wordt gebruikt om gegevens in op te slaan en te lezen. In dit hoofdstuk ga je door gebruik

Nadere informatie

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn: 5. De oefendatabase 5.1. Inleiding In de volgende hoofdstukken ga je oefenen / werken met SQL. Om te kunnen oefenen heb je natuurlijk wel een database nodig. In dit hoofdstuk wordt besproken hoe je deze

Nadere informatie