Informatie verwerking en databases RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE SQL INSERT SQL UPDATE SQL DELETE...

Maat: px
Weergave met pagina beginnen:

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

Transcriptie

1 Databases+SQL 1

2 Inhoud Informatie verwerking en databases... 4 RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE SQL INSERT SQL UPDATE SQL DELETE SQL ORDER BY SQL Aggregate functies SQL GROEP BY SQL HAVING SQL Tabel relaties, Primaire- en Foreign keys De Primaire-key en Foreign key Referentiële integriteit Soorten relaties Benamingen van tabellen, velden en queries Nulde normaalvorm (0NV) Eerste normaalvorm (1NV) Tweede normaalvorn (2NV) Derde normaalvorm (3NV)

3 SQL UNION SQL genestelde queries SQL CREATE SQL ALTER SQL Views SQL Indexen SQL Hosting Bijlage: SQL Operators en functies (engels)

4 Informatie verwerking en databases Een makkelijke manier om gegevens (feiten) bij te houden is een tabel (lijst). Op basis van gegevens, of wel feiten, kunnen verantwoorde en goed afgewogen keuzes gemaakt worden. Hiervoor moeten gegevens geïnterpreteerd worden, zodat de beschikbare gegevens informatie opleveren. Sinds de intrede van de computer worden die lijsten ook elektronisch bijgehouden. Als de lijst niet al te lang is, kan dit uitstekend met een EXCEL- spread sheet. Maar wanneer de lijsten complexer en groter worden, dan wordt het beheer en het correct invoeren van gegevens een hele klus. Zeker wanneer er ook nog andere lijsten komen waar gegevens uitgehaald moeten worden. Nog lastiger wordt het wanneer er foto s, geluid en film beheerd moeten worden. Er ontstaan te veel situaties waarbij redundantie kan optreden (gegevens dubbel opgeslagen). Ook kunnen belangrijke gegevens per ongeluk worden verwijderd of gegevens kunnen elkaar gaan tegenspreken (inconsistentie), bijvoorbeeld: een persoon heeft twee verschillende woonplaatsen. Zulke fouten kunnen niet worden getolereerd als je het hebt over: de bedrijfsjaarcijfers, belastingbetalingen, relatiebeheer, verkoopcijfers, noem maar op De integriteit (juistheid) van de gegevens moet 100% zijn. Kennis is macht, mits deze kennis wordt onderbouwd met de interpretatie van de juiste gegevens (informatie). 4

5 Een database, ook wel gegevensbank, is een verzameling bij elkaar horende tabellen (lijsten), inclusief hun onderliggende relaties. Om gegevens uit de tabellen op te roepen is een Database Management Systeem (DBMS) nodig. Aan een DBMS worden vragen (queries) gesteld, zodat er een specifieke set gegevens wordt gepresenteerd. Een taal die gegevens uit databases kan halen is SQL (Structurated Query Language). Er zijn naast de bestaande SQL standaarden enkele andere populaire relationele database-systemen zoals: MS SQL-Server, MySQL, Oracel, Sybase en DB2 die elk hun eigen SQL dialect hebben (ook bekend als SQL extentions of SQL implementations) van één van de twee SQL standaarden (ISO of ANSI). Er zijn vele SQL- implementaties en zogenaamde SQL-dialecten en SQL-extensions. Bijvoorbeeld: een MS SQL-server specifieke versie van SQL wordt: Transact SQL genoemd, de versie van het Orakel wordt: PL/SQL genoemd en de versie van MS- Access wordt: JET SQL genoemd. Deze reader is zo dialect onafhankelijk mogelijk gemaakt en de meeste voorbeelden kunnen op de meeste belangrijke SQL-implementaties worden toegepast. Om de in- en uitvoer te regelen wordt een interface gebruikt, maar de feitelijke opslag gebeurt in een database. De in- en uitvoer wordt de front-end genoemd, die gekoppeld is met de back-end, waar bijvoorbeeld een Oracle database draait met daarin de tabellen. De front-end kan door MS Access worden gedaan, terwijl een DBMS een koppeling maakt met de back-end (de database) om de gevraagde gegevens te benaderen. Omdat niet iedereen zomaar alle gegevens mag opvragen, worden er in het DBMS accounts aangemaakt die geautoriseerd worden met de gewenste bevoegdheden per gebruiker. Omdat een database (meestal) niet door één gebruiker wordt benaderd, kan het voor komen dat twee gebruikers tegelijkertijd een record (tabel rij) willen wijzigen. Slechts één gebruiker kan een record wijzigen, anders zou het mogelijk zijn dat twee online-klanten beide het zelfde huisje huren. Dit wordt voorkomen door record-locking. 5

6 De basis van SQL SQL is een afkorting voor Structurated Query Language (uitgesproken als: S-Q-L of see-quill) en is een standaard relationele query- taal (SQL is gestandaardiseerd door zowel ANSI als ISO) die voor gegevens uitwisseling met databases wordt gebruikt. SQL werd ontwikkeld door IBM in jaren '70 en heeft zijn wortels in de relationele algebra gedefinieerd door dhr. Codd in De SQL functionaliteit gaat verder dan de relationele algebra, die gegevens kan terug vinden, toevoegen, wijzigen en verwijderen van/aan een RDBMS (Relationeel DataBase Management Systeem). SQL kan rekenkundige operators zoals: deling, vermenigvuldiging, aftrekking en optellen en vergelijkingsoperators (=, <, >, <=, >=, <= en <>). SQL ken select functies zoals: LIKE, IS NULL, IS NOT NULL, AS, MAX(), MIN(), AVG(), COUNT(), SUM(), FIRST() en LAST(). SQL definieert veel keywoorden, die in verscheidene categorieën kunnen worden verdeeld. De eerste SQL keywoorden categorie is voor het verkrijgen van gegevens zoals het SELECT keywoord. De tweede categorie is voor de SQL keywoorden die voor gegevensmanipulatie worden gebruikt zoals het INSERT, UPDATE, en DELETE SQL keywoorden. De derde categorie is de transact-sql keywoorden categorie, die keywoorden zoals COMMIT en het ROLLBACK. Een andere SQL keywoorden categorie is de SQL Data Definition Language zoals CREATE en DROP kenmerkt. Nog een andere categorie van SQL keywoorden controleert de rechten van RDBMS (GRANT en REVOKE keywoorden). SQL gebruikt opeenvolging van karakters als één enkel herkenningsteken van een lijncommentaar. 6

7 De SQL commando s zijn niet hoofdlettergevoelig en de volgende SQL queries geven het zelfde resultaat: SELECT * FROM Gebruikers; select * from Gebruikers; Voorkom veel type werk door jokers te gebruiken; * voor alle kolommen in die aangegeven tabel(len) % voor een onbekend aantal willekeurige tekens en cijfers (wildcard in strings) # voor een enkel getal? voor een enkele letter NB: In MS Access wordt de * als wildcard gebruikt in teksten (strings) 7

8 RDBMS en tabellen DBMS is een afkorting voor het Relationele Database Management Systeem. Gegeven in een RDBMS worden opgeslagen in database objecten, de tabellen. De databasetabellen zijn de primaire gegevensopslag voor elke RDBMS en hoofdzakelijk zijn zij verzamelingen van data (gegevens) die meestal met elkaar zijn gerelateerd. De relaties komen later aanbod. Een beschrijving van een tabel met de naam Gebruikers zou informatie over vele personen kunnen opslaan en elke invoering (rij of record) in deze tabel zal één unieke gebruiker vertegenwoordigen. Hoewel alle gebruikersinvoeringen in de tabel van Gebruikers uniek zijn, zijn zij verwant in de betekenis dat zij gelijkaardige object beschrijven. De Gebruikers van de tabel VoorNaam AchterNaam GebDatum John Smit 12/12/1969 David Bakker 30/07/1954 Susan Advocaat 03/03/1970 Elke databasetabel bestaat uit kolommen en rijen. Elke tabelkolom bepaalt het type van de gegevens die daarin worden opgeslagen en dit gegevenstype is geldig voor alle onderliggende rijen in die kolom. Een tabel-rij (record) is een invoering van gegevens die voor elke kolom in deze bepaalde tabel waarden bevat. RDBMS slaan de gegevens op in groep van tabellen (database), die meestal (soms ook niet) een relatie met elkaar hebben (kolommen uit verschillende tabellen). SQL SELECT SQL SELECT is zonder enige twijfel het meest gebruikte SQL commando. Het SQL SELECT commando wordt gebruikt om gegevens van één of meerdere databasetabellen op te vragen. Om het gebruik van het SELECT commando te illustreren wordt de tabel gebruiken van Gebruikers (uit het vorige hoofdstuk): VoorNaam AchterNaam GebDatum John Smit 12/12/1969 David Bakker 01/03/1973 Susan Advocaat 03/03/1970 De SQL statement (verklaring) toont hieronder een eenvoudig gebruik van het SQL SELECT commando: SELECT VoorNaam, AchterNaam, GebDatum FROM Gebruikers; 8

9 Dit SLQ-statement begint met het SELECT keywoord dat door tabelkolom(men) wordt gevolgd. De gespecificeerde kolommen in het SELECT statement worden aangeleverd door het RDBMS vanuit de tabel(len) die genoemd zijn bij FROM (waaruit de gegevens moeten komen). Er is een speciale syntaxis die met het SELECT commando kan worden gebruikt, als alle kolommen van een tabel moeten worden opgevraagd., dan worden alle kolomnamen vervangen door het * symbool. Zoals hieronder: SELECT * FROM Gebruikers; Gegevens uit twee tabellen ( Gebruikers en Aankopen ) ophalen gaat als volgt: SELECT VoorNaam, AchterNaam, GebDatum, Product, Aantal, Prijs FROM Gebruikers, Aankopen; SELECT INTO statement wint gegevens van een databasetabel terug en neemt het in een andere tabel op. Het SELECT INTO voorbeeld staat hieronder: SELECT VoorNaam, AchterNaam, GebDatum INTO UsersBackup FROM Gebruikers; Het eerste deel van het statement lijkt vertrouwd, het selecteert alleen de verschillende kolommen uit een tabel. Het tweede deel van deze SQL statement is het belangrijke deel, dat specificeert om de rijen in de UsersBackup- tabel op te nemen. Het laatste deel specificeert welke tabel er wordt gebruikt om de rijen van te verkrijgen. Dit voorbeeld veronderstelt dat zowel de Gebruikers als de UsersBackup- tabellen een identieke structuur hebben. Om een exacte kopie van de gegevens in de Gebruikers te maken wordt het volgende statement gebruikt: SELECT * INTO UsersBackup FROM Gebruikers; 9

10 SQL WHERE SQL WHERE het keywoord wordt gebruikt om gegevens voorwaardelijk te selecteren, uit de opgegeven tabel(en). Om de WHERE-keywoord toepassingen te illustreren; zijn er twee extra kolommen en extra rijen aan de tabel Gebruikers toegevoegd, die in de vorige hoofdstukken al eerder is gebruikt. VoorNaam AchterNaam GebDatum Stad John Smit 12/12/1969 Zwolle David Bakker 01/03/1954 Den Haag Susan Advocaat 03/03/1970 Hengelo Paul Janssen 09/17/1982 Zwolle Stephen Advocaat 03/03/1974 Hengelo Bekijk de volgende SQL vraag: SELECT VoorNaam, AchterNaam, Stad FROM Gebruikers WHERE Stad = ' Hengelo '; Het resultaat van de SQL uitdrukking zal het volgende zijn: VoorNaam AchterNaam Stad Susan Advocaat Hengelo Stephen Advocaat Hengelo De SQL vraag gebruikte "=" (Gelijk aan) exploitant in de WHERE criteria: Stad = ' Hengelo ' Slechts de gebruikers die zijn geselecteerd en gelijk zijn met de waarde Hengelo in de kolom Stad. Wanneer string-waarden (karakters) in queries worden gebruikt, dan moeten ze tussen aanhalingstekens (dubbele quotes) worden gezet. Bijvoorbeeld: bij de SQL query hieronder worden dubbele quotes in plaats van de enkele quotes gebruikt: SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE Stad = Den Haag ; Als alle gebruikers worden opgevraagd die in AchterNaam O Brain hebben, volgt hier het SQL statement: SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE AchterNaam = O Brain ; 10

11 Echter een string-opmaakt die gebruikt is in de WHERE criteria geeft een error. De SQL-engine zal proberen om de SQL-statement te interpreteren en zal enkele quote binnen de string als het einde van die string beschouwen. Het resterende deel van de SQL-statement wordt niet correct geïnterpreteerd. Door alle enkele quotes in een string met twee enkele quotes te vervangen worden zij geïnterpreteerd door SQL en aangezien één quote in een string. Hier onder staat de verbeterde SQL-statement die correct zal werken: SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE AchterNaam = ' O''Neil '; Het gebruik van = (Gelijk aan) operator in de voorbeelden hierboven, maar er kan ook een van de volgende vergelijkingsoperators samen met SQL WHERE keywoord worden gebruikt: <> (Not Equal) SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE VoorNaam <> 'John'; > (Groter dan) SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE GebDatum > ' 02/03/1970 '; > = (Groter of Gelijk) SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE GebDatum > = ' 02/03/1970 '; < (Less than) SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE GebDatum < '02/03/1970'; <= (Less or Equal) SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE GebDatum <= '02/03/1970'; Er zijn meer mogelijkheden: BETWEEN 20 AND 80 IN (3, 73, `Veld1`) LIKE Ker% IS NULL, IS NOT NULL, AS, MAX(), MIN(), AVG(), COUNT(), SUM(), FIRST() en LAST(), DATEDIFF(), AND, OR en NOT Zie de bijlagen of de mysql website met documentatie voor meer mogelijkheden. 11

12 Naast de vergelijkingsoperators kunnen ook logische operators worden gebruikt. Logische operators worden gebruikt om twee of meer criteria te combineren in een WHERE- statement. Om alle gebruikers uit de tabel Gebruikers te geselecteren die wonen in Zwolle en na 10/10/1975 geboren zijn: SELECT VoorNaam, AchterNaam, GebDatum, , Stad FROM Gebruikers WHERE Stad = ' Zwolle AND GebDatum > ' 10/10/1975 '; Hieronder staat het resultaat van bovengenoemde SELECT: VoorNaam AchterNaam GebDatum Stad Paul Janssen 09/17/1982 pj@paulsus.net Zwolle Criteria worden doormiddel van de AND (logische operator) aaneengeschakeld, wat betekent dat beide voorwaarden WAAR moeten zijn. Als alle gebruikers van de tabel Gebruikers worden geselecteerd, welke wonen in Zwolle of na 10/10/1975 geboren zijn zullen in het volgen het statement worden gebruikt: SELECT VoorNaam, AchterNaam, GebDatum, , Stad FROM Gebruikers WHERE Stad = ' Zwolle ' OR GebDatum > ' 10/10/1975 '; Het resultaat is: VoorNaam AchterNaam GebDatum Stad John Smit 12/12/1969 j.smith@john.com Zwolle Paul Janssen 09/17/1982 pj@paulsus.net Zwolle Stephen Advocaat 03/03/1974 advocaat@prof.net Hengelo Dit keer werken de twee criteria samen met FROM, wat betekent dat minstens één van de twee criteria moet voldoen om te worden opgenomen in het resultaat. De logische operator NOT kan ook in de SQL-statements worden gebruiken, zie het volgende voorbeeld: SELECT VoorNaam, AchterNaam, GebDatum, , Stad FROM Gebruikers WHERE Stad NOT LIKE %dam% '; Dit statement zal alle gebruikers selecteren de van wonen in een stads zonder dam in de kolom Stad. Meer logische operators zijn: BETWEEN.. AND.., IN(..,..,..), IS NULL, IS NOT NULL, AND, OR, NOT en meer 12

13 Jokers (wildcards) zijn: %, # en _ LIKE (gelijkwaardig aan) SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE VoorNaam LIKE ' S% ' Een SQL-statement waarin het LIKE keywoord is gebruikt, zal alle gebruikers met voornaam, die beginnen met de letter S, als resultaat geven. Wanneer het %- karakter binnen een LIKE statement wordt gebruikt, wordt het % beschouwd als een vervanging voor verschillende letters. Het WHERE keywoord samen met het BETWEEN keywoord wordt gebruikt om een gebied te bepalen: SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE GebDatum BETWEEN ' 02/03/1970 ' AND ' 10/10/1972 ' Om meerdere waarden bij een WHERE keywoord te gebruiken kan de IN operator worden gebruikt. SELECT VoorNaam, AchterNaam FROM Gebruikers WHERE Stad IN ( Hengelo, Zwolle ) De SQL statement zal hierboven alle gebruikers van Hengelo en Zwolle terugkeren. 13

14 SQL INSERT De SQL INSERT INTO conditie wordt gebruikt om gegevens in een SQL tabel op te nemen. Het INSERT INTO wordt vaak gebruikt en heeft de volgende syntaxis: INSERT INTO TABEL1 (KOLOM1, KOLOM2, KOLOM3) VALUES (KolomWaarde1, KolomWaarde2, KolomWaarde3) INSERT INTO bestaat eigenlijk uit twee delen. Als eerste de gespecificeerde kolommen in de tabel en ten tweede de waarden die moeten worden toegevoegd in de kolomtabel. De tabel Gebruikers van het vorige hoofdstuk ziet er als volgt uit: VoorNaam AchterNaam GebDatum Stad John Smit 12/12/1969 Zwolle David Bakker 01/03/1954 Den Haag Susan Advocaat 03/03/1970 Hengelo Paul Janssen 09/17/1982 Zwolle Stephen Advocaat 03/03/1974 Hengelo Als er een nieuw record in de tabel Gebruikers wordt invoegt, kan het met het volgende SQL INSERT INTO statement: INSERT INTO Gebruikers (VoorNaam, AchterNaam, GebDatum, , Stad) VALUES (' Frank ', ' Drum ', ' 10/08/1955 ', ', ' Arnhem '); Alle gegevens van de tabel Gebruikers worden geselecteerd vanaf het SQL INSERT INTO hierboven is doorgevoerd. Dat levert het volgende resultaat: VoorNaam AchterNaam GebDatum Stad John Smit 12/12/1969 Zwolle David Bakker 01/03/1954 Den Haag Susan Advocaat 03/03/1970 Hengelo Paul Janssen 09/17/1982 Zwolle Stephen Advocaat 03/03/1974 Hengelo Frank Drum 10/08/1955 Arnhem Het SQL INSERT INTO kan ook een gedeelte van de kolommen, in plaats van alle kolommen in de tabel invoegen. Een voorbeeld om een nieuw record met waarden voor de eerste 4 kolommen en de vijfde niet invult: INSERT INTO Gebruikers (VoorNaam, AchterNaam, GebDatum, ) VALUES (' Frank ', ' Drum ', ' 10/08/1955 ', ' frank.drum@frankdrum.com '); 14

15 In het bovengenoemde voorbeeld wordt verondersteld dat de waarden in de laatste kolom leeg blijft (niet ingevuld). Het resultaat van het SQL INSERT zal hierboven zijn: VoorNaam AchterNaam GebDatum Stad John Smit 12/12/1969 Zwolle David Bakker 01/03/1954 Den Haag Susan Advocaat 03/03/1970 Hengelo Paul Janssen 09/17/1982 Zwolle Stephen Advocaat 03/03/1974 Hengelo Frank Drum 10/08/1955 NULL Als een nieuwe record wordt opgenomen met waarden voor alle kolommen, dan kunnen de volledige kolomtabellen in het statement worden weggelaten. De volgende twee SQL statementen van het INSERT gelijkwaardig: INSERT INTO Gebruikers VALUES (' Frank ', ' Drum ', ' 10/08/1955 ', ' ', ' Arnhem '); INSERT INTO Gebruikers (VoorNaam, AchterNaam, GebDatum, , Stad) VALUES (' Frank ', ' Drum ', ' 10/08/1955 ', ' ', ' Arnhem '); Als er een kolom wordt overgeslagen en geen waarde krijgt, maar de andere kolommen wel, dan levert dat een fout op van de SQL INSERT INTO uitvoering: INSERT INTO Gebruikers VALUES (' Frank ', ' Drum ', ' 10/08/1955 ', ' '); Het bovengenoemde SQL INSERT zal een fout veroorzaken, omdat er geen waarde voor de kolom Stad is gespecificeerd. De waarde moet bepaald worden om de fout op te lossen. 15

16 SQL DISTINCT Het SQL DISTINCT commando dat samen met het SELECT keywoord wordt gebruikt geeft slechts unieke waarden in de kolom die zijn gespecificeerd. VoorNaam AchterNaam GebDatum Stad John Smit 12/12/1969 Zwolle David Bakker 01/03/1954 Den Haag Susan Advocaat 03/03/1970 Hengelo Paul Janssen 09/17/1982 Zwolle Stephen Advocaat 03/03/1974 Hengelo De Gebruikers tabel heeft verscheidene gebruikers en het zou interessant zijn om een tabel met alle steden op te vragen waar onze gebruikers wonen. Het statement hieronder geeft een lijst met (eventueel) dubbele steden. Mensen kunnen in de zelfde stad wonen: SELECT Stad FROM Gebruikers; Een tabel maken met alle steden zonder die te herhalen in het resultaat wordt gemaakt met DISTINCT keywoord: SELECT DISTINCT Stad FROM Gebruikers; Het resultaat van de SQL DISTINCT uitdrukking van hierboven zal zijn: Stad Zwolle Den Haag Hengelo Eigenlijk verwijdert het DISTINCT keywoord de duplicaten uit de resultatenreeks die door uw SELECT SQL statement is terug gegeven. Het DISTINCT keywoord kan meer dan één kolom uitvoeren. SELECT DISTINCT AchterNaam, Stad FROM Gebruikers; Het bovengenoemde statement waarin een combinatie wordt gemaakt van de kolom AchterNaam en van Stad zal het onderstaande resultaat geven: AchterNaam Smit Bakker Advocaat Janssen Stad Zwolle Den Haag Hengelo Zwolle 16

17 In de originele tabel zijn er twee gebruikers met identieke namen (Advocaat), die om in de zelfde stad (Hengelo) wonen. Omdat de combinatie AchterNaam en waarden van de Stad voor beide gebruikers niet uniek zijn, komt slechts één record terug van de twee. Echter wanneer er één kolom ( ) bij wordt gevoegd: SELECT DISTINCT AchterNaam, , Stad FROM Gebruikers; Dan komen beide gebruikers met de gelijke achternaam wel weer terug. Eenvoudig omdat zij verschillende hebben en zo hun invoeringen wat betreft onze SQL statement uniek zijn geworden: AchterNaam Stad Smit Zwolle Bakker Den Haag Advocaat Hengelo Janssen Zwolle Advocaat Hengelo SQL UPDATE Het SQL commando UPDATE wordt gebruikt om gegevens te wijzigen die in databasetabellen zijn opgeslagen. Als een van één van de gebruikers in de tabel Gebruikers wordt bijgewerkt, dan kan dit met het SQL- statement hieronder: UPDATE Gebruikers SET = nieuw@mailadres.nl ' WHERE = ' advocaat@prof.net '; In de eerste rij wordt het keywoord UPDATE gevolgd door de tabelnaam die wordt bijwerkt. De tweede regel bepaalt de kolomnaam die wordt gewijzigd, gevolgd door een gelijkaan-teken met de nieuwe waarde voor deze kolom. Meer dan één taak kan na de nieuwe waarde worden ingevoerd, bijvoorbeeld zowel als de stad kunnen worden bijwerken in het zelfde SQL statement: UPDATE Gebruikers SET = ' nieuw@mailadres.nl', Stad = ' Den Haag ' WHERE = ' advocaat@prof.net '; De derde lijn is de WHERE conditie, die specificeert record(s) die worden geupdate. Hier wordt de kolom bijgewerkt. Wat gebeurt de WHERE de conditie wordt verwijdert zal de SQL query er als volgt uitzien: UPDATE Gebruikers SET = ' nieuw@mailadres.nl'; 17

18 Hierdoor zullen alle waarden in de kolom in de tabel Gebruikers veranderd worden in de waarde Dit zal meestal niet de bedoeling zijn, maar het zou kunnen wanneer er verscheidene records bijwerken moeten worden. Bijvoorbeeld wanneer één een kantoor van een bedrijf verhuisd van Den Haag naar Hengelo (er vanuit gaande dat alle werknemers ook verhuisd zijn) kunnen alle records in één keer worden bijgewerkt. Om dat te doen, gebruik de volgende SQL statement: UPDATE Gebruikers SET Stad = ' Hengelo ' WHERE Stad = ' Den Haag '; In beide voorbeelden zorgt de UPDATE WHERE conditie ervoor dat kolomwaarden een nieuwe waarde krijgen, mits ze dezelfde WHERE conditiecriteria hebben. Er kunnen ook meerdere WHERE criteria worden gebruikt, bijvoorbeeld: UPDATE Gebruikers SET = ' nieuw@mailadres.nl' WHERE VoorNaam = ' Stefan ' AND AchterNaam = ' Advocaat '; De WHERE criteria zorgen ervoor dat updates alleen in die rijen wordt toegepast, die genoemd zijn. Bij het voorbeeld zal VoorNaam = Stefan ervoor zorgen dat niet alle personen met de achternaam Advocaat worden bijgewerkt. SQL DELETE Om gegevens uit een tabel te verwijderen is er het SQL DELETE commando. Eén van de gebruikers in de tabel Gebruikers (Stefan Advocaat) heeft net het bedrijf verlaten, en zijn record moet worden en verwijderen. Dat gaat als volgt: DELETE FROM Gebruikers WHERE AchterNaam = ' Bakker '; De eerste lijn in het SQL DELETE statement hierboven specificeert de tabel waar record(s) moeten worden verwijdert. De tweede lijn (WHERE conditie) specificeert welke rijen precies worden verwijdert (alle rijen waar AchterNaam gelijk is aan Advocaat). Een probleem dat zich voor kan doen bij DELETE is, dat er teveel records worden verwijderd. Er zijn in ons voorbeeld meer dan één gebruiker met dezelfde achternaam. Alle gebruikers met deze achternaam zullen worden verwijderd. Het is van belang om records zeer goed te specificeren (uniek maken). Onze betere SQL vraag die slechts het record van Stefan Advocaat record verwijderd zal er bijvoorbeeld als volgt uitzien: DELETE FROM Gebruikers WHERE = ' advocaat@prof.net '; 18

19 Wat gebeurt er als de WHERE conditie in DELETE niet is gespecificeerd? DELETE FROM Gebruikers; Het antwoord is dat alle records in de tabel van Gebruikers worden verwijderd. SQL TRUNCATE statement hieronder zal het zelfde effect hebben als het DELETE statement: TRUNCATE TABLE Gebruikers; De TRUNCATE statement zal alle rijen in de tabel van Gebruikers, verwijderen zonder de tabel zelf te verwijderen. Wees zeer zorgvuldig met het gebruik van DELETE en TRUNCATE, omdat deze statements niet ongedaan gemaakt kunnen worden. Zodra de record(s) verwijdert zijn uit de tabel is het niet meer terug te draaien. SQL ORDER BY SQL ORDER BY conditie wordt gebruikt om de gegevensreeksen die van een SQL database worden ontvangen te ordenen. Een opdracht waar één of meerdere kolommen uit een tabel worden gehaald, komt vaak niet gestructureerd over. Dit wordt opgelost door gegevens in een van de kolomen te sorteren op (bijvoorbeeld) de VoorNaam. Zie de volgende ORDER BY SQL statement om dit toe te passen: SELECT * FROM Gebruikers ORDER BY VoorNaam; Het resultaat van de ORDER BY statement zal hierboven het volgende zijn: VoorNaam AchterNaam GebDatum Stad David Bakker 01/03/1954 david@sql.com Den Haag John Smit 12/12/1969 j.smith@john.com Zwolle Paul Janssen 09/17/1982 pj@paulsus.net Zwolle Stefan Advocaat 03/03/1974 advocaat@prof.net Hengelo Susan Advocaat 03/03/1970 advocaat@door_zee.com Hengelo De rijen in de kolom VoorNaam zijn nu alfabetisch gesorteerd. ORDER BY kan ook gebruikt worden om de gegevens door meer dan één kolom toe te passen. Bijvoorbeeld, als er zowel de AchterNaam als de kolom Stad toevoegen, zou de volgende ORDER BY statement moeten werken: SELECT * FROM Gebruikers ORDER BY AchterNaam, GebDatum; 19

20 Hier is het resultaat van deze ORDER BY statement: VoorNaam AchterNaam GebDatum Stad Susan Advocaat 03/03/1970 Hengelo Stefan Advocaat 03/03/1974 Hengelo David Bakker 01/03/1954 Den Haag Paul Janssen 09/17/1982 Zwolle John Smit 12/12/1969 Zwolle De kolommen kunnen ook worden omgekeerd in de ORDER BY statement, zoals hieronder: SELECT * FROM Gebruikers ORDER BY GebDatum, AchterNaam; Deze ORDER BY statement zal de zelfde resultaten terugkeren, maar de volgorde is anders. Hier is het resultaat: VoorNaam AchterNaam GebDatum Stad David Bakker 01/03/1954 david@sql.com Den Haag John Smit 12/12/1969 j.smith@john.com Zwolle Susan Advocaat 03/03/1970 advocaat@door_zee.com Hengelo Stefan Advocaat 03/03/1974 advocaat@prof.net Hengelo Paul Janssen 09/17/1982 pj@paulsus.net Zwolle In beide ORDER BY voorbeelden tot dusver, wordt voor karakterkolommen (VoorNaam, AchterNaam) op gesorteerd op alfabetische volgorde en van vroeger aan recentere data voor de kolom GebDatum. Om onze gegevens omgekeerd te sorteren wordt het keywoord DESC toegevoegd: SELECT * FROM Gebruikers ORDER BY VoorNaam DESC; Het resultaat is als volgt: VoorNaam AchterNaam GebDatum Stad Susan Advocaat 03/03/1970 advocaat@door_zee.com Hengelo Stefan Advocaat 03/03/1974 advocaat@prof.net Hengelo Paul Janssen 09/17/1982 pj@paulsus.net Zwolle John Smit 12/12/1969 j.smith@john.com Zwolle David Bakker 01/03/1954 david@sql.com Den Haag Het tegengestelde van het keywoord DESC is het ASC keywoord waarbij de gespecificeerde kolommen alfabetisch worden gesorteerd. Wanneer er geen ASC of DESC na een kolom in de ORDER BY wordt specificeert, dan zal de opdracht worden uitgevoerd met ASC (alfabetisch, van laag aan hoogte). 20

21 Het is belangrijk om te onthouden dat wanneer er door meer dan één kolom opdracht geeft tot ASC en/of DESC, elke kolom moet worden gespecificeerd. Bijvoorbeeld zal het statement hieronder door zowel AchterNaam als GebDatum opdracht geven tot maar slechts zal AchterNaam in dalende ORDER BY zijn: SELECT * FROM Gebruikers ORDER BY GebDatum, AchterNaam DESC; Wanneer beide kolommen aflopend moeten zijn, dan moet het ORDER BY statement in dit veranderen: SELECT * FROM Gebruikers ORDER BY GebDatum DESC, AchterNaam DESC; SQL Aggregate functies De SQL aggregate functies komt er één enkele waarde terug, waarbij waarden zijn gebruikt uit een kolom. Voor dit hoofdstuk wordt een nieuwe tabel gebruikt met de naam Verkoop, die de volgende kolommen en de gegevens zal hebben: ORDER Nr ORDER Datum ORDER Prijs ORDER Aantal KlantNaam 1 12/22/ Smit 2 08/10/ Johnson 3 07/13/ Baldwin 4 07/15/ Smit 5 12/22/ Hout 6 10/2/ Smit 7 11/03/ Baldwin De SQL functie van de COUNT geeft voor alle rijen in een tabel een waarde terug die aan de criteria voldoet aan de specificaties in de WHERE conditie. Als de hoeveel orders van een klant met de KlantNaam Smit moet worden bepaald, dan zal het volgende SQL uitdrukking van de COUNT worden gebruikt: SELECT COUNT (*) FROM Verkoop WHERE KlantNaam = ' Smit '; Het COUNT keywoord wordt gevolgd door het * karakter tussen haken. Het gaat om alle kolommen in de tabel. Het statement zal de zelfde resultaten geven als bij WHERE, mits de voorwaarden het zelfde zijn. Het resultaat van de bovengenoemde SQL statement zal aantal 3 zijn, omdat de klant met de naam Smit in totaal drie bestellingen heeft geplaatst. Als de specificaties in de WHERE conditie niet wordt gebruikt, zoals bij het statement hieronder. Er komen 7 records terug: SELECT COUNT(*) FROM Verkoop; 21

22 Het aantal unieke klanten bepalen die een bestelling hebben geplaatst kan door het DISTINCT keywoord toe te voegen aan een functie zoals COUNT: SELECT COUNT (DISTINCT KlantNaam) FROM Verkoop; De SQL functie SOM wordt gebruikt om de som van waarden in een numerieke kolom te bepalen. Bij de tabel Verkoop, kan de som van alle orders met de volgende SQL statement worden bepaald: SELECT SOM (OrderPrijs) FROM Verkoop; Het resultaat van de bovengenoemde SQL statement is aantal Als de hoeveel producten die in totaal verkocht zijn (de som van OrdersPrijs) bepaald moet worden: SELECT SOM (OrderPrijs) FROM Verkoop; De SQL AVG functie bepaald de gemiddelde waarde voor een numerieke kolom terug. Dit opvragen kan als volgt: SELECT AVG (OrdersPrijs) FROM Verkoop; Natuurlijk kan de functie AVG worden gebruikt in combinatie met de WHERE conditie, waarbij de gegevens worden beperkt met de conditie(s): SELECT AVG (OrderPrijs) FROM Verkoop WHERE ORDER Prijs > 200; De bovengenoemde SQL uitdrukking zal gemiddelde order Aantal voor alle orders met een orderprijs groter dan 200 terugkeren. De SQL MIN functie selecteert het kleinste getal van een numerieke kolom. Om te bepalen wat de minimumprijs van de OrdersPrijs in de Verkoop- tabel, de volgende SQL uitdrukking wordt gebruikt: SELECT MIN (OrdersPrijs) FROM Verkoop; De SQL MAXIMUM functie vraagt het maximum numerieke waarde van een numerieke kolom terug. De MAXIMUM SQL statement geeft de hoogste orderprijs van de tabel van de Verkoop terug: SELECT MAX(OrdersPrijs) FROM Verkoop; 22

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank v Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank 1 Introductie: data en informatie 1.0 Wat leer je in dit hoofdstuk? 1.1 Verschil tussen gegevens en

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

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

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

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

= > >= < <= 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

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

SQL & Datamodelleren

SQL & Datamodelleren SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...

Nadere informatie

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1 Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database

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

EXIN Databases en SQL Foundation

EXIN Databases en SQL Foundation EXIN Databases en SQL Foundation Preparation Guide Editie 201608 Copyright 2016 EXIN All rights reserved. No part of this publication may be published, reproduced, copied or stored in a data processing

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

Vragen hoofdstuk 1: Resultaat

Vragen hoofdstuk 1: Resultaat Vragen hoofdstuk 1: Resultaat Het ontwikkelen van informatiesystemen bevat volgende activiteiten: Analyse van het probleem. Toewijzen van resources. Ontwerp van de onderdelen van het systeem. Bouw van

Nadere informatie

In deze appendix wordt bekeken wat er moet gebeuren voordat

In deze appendix wordt bekeken wat er moet gebeuren voordat Normaliseren A In deze appendix wordt bekeken wat er moet gebeuren voordat een systeem kan worden gedefinieerd. Dit begint met een analyse van de gegevens die de basis vormen. Daarbij wordt gekeken naar

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

Datamodelleren en databases 2011

Datamodelleren en databases 2011 Datamodelleren en databases 21 Capita selecta 1 In dit college Modelleren Normaliseren Functionele afhankelijkheid 1-3N M:N-relaties, associatieve entiteittypes, ternaire relaties Weak entiteittypes Multivalued

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

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

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

9. Het wijzigen van gegevens

9. Het wijzigen van gegevens 9. Het wijzigen van gegevens Voor het wijzigen van gegevens wordt het DML-statement UPDATE gebruikt. Om dit statement correct te kunnen gebruiken moeten enkele zaken bekend zijn: In welke tabel moeten

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

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

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

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

Database Structuur via menus

Database Structuur via menus Data Dictionary Database Structuur via menus Na het normaliseren en maken van een data dictionary kunnen de tabellen worden ingevoerd in de database. In deze les wordt getoond hoe dit in Access gebeurt.

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

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

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

Zelftest SQL Workshop

Zelftest SQL Workshop Zelftest SQL Workshop Document: n0087test.fm 25/06/2014 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test

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

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

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

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto. Relationele databases SqlServer en Oracle zijn relationele client server databases. De verwerking van de opdrachten vindt plaats op de server. Access is een relationele pc database. De verwerking van de

Nadere informatie

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1 relationele databases 9.1 hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit Als voorbeeld nemen we een eenvoudige database, bestaande uit twee tabellen. De

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

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

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2 v Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2 1 Introductie: data en informatie 3 1.0 Wat leer je in dit hoofdstuk? 3 1.1 Verschil tussen

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

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

Thinking of development

Thinking of development Thinking of development Databases Arjan Scherpenisse HKU / Miraclethings Agenda voor vandaag Opdracht tussenstand State diagram / Observer pattern Bret Victor Databases 2/42 Opdracht tussenstand Slides

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

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

DATABASEBEHEER IN EXCEL

DATABASEBEHEER IN EXCEL DATABASEBEHEER IN EXCEL 1. LIJSTEN Een lijst is een reeks van rijen met gelijksoortige gegevens waarvan de eerste rij de labels (veldnamen) bevat. Een voorbeeld: Je kunt een lijst beschouwen als een eenvoudige

Nadere informatie

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010 6. Query s, macro s en rapporten In dit hoofdstuk zetten we de puntjes op de i. Alle processen zullen in de aangemaakte formulieren met de gebruikersmenu s van de secretaris, penningmeester en wedstrijdsecretaris,

Nadere informatie

Zelftest SQL Workshop

Zelftest SQL Workshop Zelftest SQL Workshop Document: n0087test.fm 04/01/2018 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test

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

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

Zelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Zelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium Zelftest SQL Document: n0453test.fm 19/04/2012 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING BIJ DE ZELFTEST SQL Korte handleiding Deze test heeft als bedoeling

Nadere informatie

oefeningen eredivisie antwoorden

oefeningen eredivisie antwoorden oefeningen eredivisie antwoorden vragen niveau 1 Niveau 1 beslaat de volgende onderwerpen: SELECT,, WHERE, DISTINCT, ORDER BY, eenvoudige vergelijkingen, LIKE, wildcards en eenvoudige logische operatoren.

Nadere informatie

Ontwerp een datamodel

Ontwerp een datamodel SQL IAM-TDI-V2-SQL, handleiding datamodel Ontwerp een datamodel Fons van Kesteren, okt 2008, HvA IAM IAM-V2-TDI-SQL 1 Doelstelling... 3 Het ontwerpproces... 4 Afbakening van het informatiedomein... 5 Entiteiten,

Nadere informatie

OFFICE A LA CARTE - ACCESS 2013

OFFICE A LA CARTE - ACCESS 2013 OFFICE A LA CARTE - ACCESS 2013 Inhoud HOOFDSTUK ACC-1.1: TERMINOLOGIE - (0:20) Wat is een database? Onderdelen van een database Tabellen en relaties Schematisch overzicht van de structuur van een database

Nadere informatie

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen.

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen. Normaliseren Een van de voornaamste rollen in een informatie systeem is het bewaren van gegevens en liefst over een lange tijd. Meestal doen we dat door middel van een gegevensbank of databank. Deze gestructureerde,

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

Relationele database. Het relationele model

Relationele database. Het relationele model Module SQL 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

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

Les 15 : updaten van gegevens in de database (deel2).

Les 15 : updaten van gegevens in de database (deel2). Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken

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

ADVANCED DATABASES Syllabus versie 2.0

ADVANCED DATABASES Syllabus versie 2.0 ECDL-MODULE ADVANCED DATABASES Syllabus versie 2.0 Doel Dit document bevat de syllabus van de module Advanced Databases. In de syllabus worden aan de hand van leeruitkomsten de kennis en vaardigheden uiteengezet

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

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

INSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2

INSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2 SAMENVATTING HOOFDSTUK 2 Sorteren en filteren in een tabel Sorteren kun je met de knoppen (Oplopend) en (Aflopend). Hiermee zet je records in alfabetische of numerieke volgorde. Er wordt gesorteerd op

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

Les 10 : Aanmaken van een database (deel2).

Les 10 : Aanmaken van een database (deel2). Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van

Nadere informatie

Hoofdstuk 21: Gegevens samenvatten

Hoofdstuk 21: Gegevens samenvatten Hoofdstuk 21: Gegevens samenvatten 21.0 Inleiding In Excel kunnen grote (en zelfs ook niet zo grote) tabellen met getallen en tekst er nogal intimiderend uitzien. Echter, Excel komt helemaal tot haar recht

Nadere informatie

U kunt een waardebon toepassen op alle klanten, op een klantengroep of op een enkele klant; u kunt de vervaldatum bepalen.

U kunt een waardebon toepassen op alle klanten, op een klantengroep of op een enkele klant; u kunt de vervaldatum bepalen. Winkelwagenregels Winkelwagenregels De pagina "Winkelwagenregels" geeft u toegang tot een geavanceerde tool dat het waardebonnensysteem van PrestaShop 1.4 opvolgt. Doorgewinterde PrestaShop-gebruikers

Nadere informatie

Databases gebruiken. Databases gebruiken

Databases gebruiken. Databases gebruiken Databases gebruiken In deze module wordt van de kandidaat verwacht dat hij een goed begrip heeft van databases en aantoont competent te zijn in het gebruik van een database. Doel van de module De kandidaat:

Nadere informatie

Data Warehouse Script Generator Doel

Data Warehouse Script Generator Doel Data Warehouse Script Generator Doel Op basis van een aantal standaard sql scripts ( create table, create view ) een nieuwe sql script genereren welke alle objecten ( tables & views ) kan aanmaken in een

Nadere informatie

9 Werken met meer tabellen (zie ook query s)

9 Werken met meer tabellen (zie ook query s) 9 Werken met meer tabellen (zie ook query s) 9.1 Inleiding werkwijze je moet begrijpen waarom in de praktijk een databank meestal opgebouwd wordt met verschillende tabellen die aan elkaar gekoppeld worden.

Nadere informatie

Toelichting Validatieregels DBC GGZ RG12

Toelichting Validatieregels DBC GGZ RG12 Toelichting Validatieregels DBC GGZ RG12 Versie 20111201 Ingangsdatum: 1 januari 2012 Inhoudsopgave 1 Inleiding...3 2 Algemene gegevens van de tabel...4 3 Specificatie van de validatieregels...6 4 De validatieregels...8

Nadere informatie

Bijlage Inlezen nieuwe tarieven per verzekeraar

Bijlage Inlezen nieuwe tarieven per verzekeraar ! Bijlage inlezen nieuwe tarieven (vanaf 3.2) Bijlage Inlezen nieuwe tarieven per verzekeraar Scipio 3.303 biedt ondersteuning om gebruikers alle tarieven van de verschillende verzekeraars in één keer

Nadere informatie

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE The European Computer Driving Licence Foundation Ltd. Portview House Thorncastle Street Dublin 4 Ierland Tel: + 353 1 630

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

Inhoud Basiscursus. Access 2010 NL-NL

Inhoud Basiscursus. Access 2010 NL-NL Inhoud Basiscursus Access 2010 NL-NL 1 - Access starten... 6 Een bestaande database openen... 8 Menu-opdrachten gebruiken... 9 Werkbalken tonen en verbergen... 11 Menu- en werkbalkopties aanpassen... 12

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

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer.

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer. DataBase Management & Databasetechnologie We gaan nu aan de slag met het databasemanagementprogramma Access. Zo'n set programma's waarmee je databases kunt maken, beheren en bevragen noemt men ook wel

Nadere informatie

Aan de slag met AdminView

Aan de slag met AdminView Aan de slag met AdminView uitgebreide handleiding S for Software B.V. Gildeweg 6 3771 NB Barneveld tel 0342 820 996 fax 0342 820 997 e-mail info@sforsoftware.nl web www.sforsoftware.nl Inhoudsopgave 1.

Nadere informatie