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 punten (5x2 Deel III: 22 punten (11x2 Maximaal 46 punten: De cesuur (onvoldoende/voldoende ligt bij 28 punten Er wordt van de syntax van MYSQL versie 5.0 uitgegaan in deze toets. (Deel I en Deel 2. Gebruik maken van de syntax van andere implementatie (in deel III is toegestaan mits U dit kunt onderbouwen. [TOETS SQL INLEIDING] Toets deel I vak DATABASE applicatieontwikkelaar. SQL inleiding.
Deel I 1. Gegeven de volgende SQL-opdracht. SELECT COUNT(NAAM FROM persoon Het resultaat van deze opdracht is: a. Het aantal personen in de Tabel Persoon. b. Het aantal rijen in de tabel Persoon. c. Antwoord a en b zijn niet (of niet geheel juist 2. Om in een query aan te geven dat bepaalde rijen wel of niet moet worden meegenomen gebruiken we in de query: a. WHERE en/of HAVING b. WHERE c. HAVING d. ORDER BY 3. Het toevoegen van een kolom NAAM in een tabel ELFTALLEN doe je met de opdracht: a. INSERT INTO ELFTALLEN( NAAM b. INSERT INTO ELFTALLEN(NAAM VALUES ( JANSEN c. ALTER TABLE ELFTALLEN ADD COLUMN UNIQUE NAAM VARCHAR(50 d. MODIFY TABLE ELFTALLEN ALTER COLUMN UNIQUE NAAM VARCHAR(50 e. Je kunt geen kolommen toevoegen aan een bestaande tabel. 4. Welke WHERE zal alleen de Doe families vinden die in de Main Street wonen met Area code 919. a. Name = Doe and Address = Main Street or AreaCode = 919 b. Name = Doe and Address = Main Street and AreaCode = 919 c. Name = Doe or Address = Main Street and AreaCode= 919 d. Name = Doe or address = Main Street or AreaCode = 919 Pagina 1
5. Hoeveel kolommen worden er getoond nadat de volgende query is uitgevoerd? SELECT address1,address2,address2 adress FROM employee a. 1. b. 2. c. 3. d. 4. 6. Wat is een toegestane kolom naam? a. Column b. 1966_inkooporders c. Catch_#22 d. #InkoopOrders e. Geen van de bovenstaande 7. Wat is het resultaat van de opdracht DELETE? a. Hiermee verwijder je een tabel. b. Hiermee verwijder je een record. c. Hiermee wis je de inhoud van een veld. d. Hiermee verwijder je dubbele records uit een selectie. Pagina 2
Deel II Gegeven zijn de volgende tabellen (eerste regel bevat steeds de namen van de attributen van de tabel met hun gegevenstype: Tabel: Schilderij S_Id: char(3 Naam: varchar(50 A_ID: char(3 Periode: integer S01 Vissershuis Null 1882 S02 De balletles A01 1872 S03 Mona Lisa A02 1499 Tabel: Artiest A_ID: char(3 Naam: varchar(50 Voornaam: varchar(20 Geboren: integer Gestorven: integer A01 Degas Edgar 1834 1917 A02 Da Vinci Leonardo 1452 1519 A04 Monet Claude 1840 1926 Geef nu de resultaten (op de werkbladen van de volgende SQL opdrachten: 1. SELECT * FROM Artiest WHERE Geboren<1800 2. SELECT A_ID Nummer, Naam, Gestorven Geboren FROM Artiest 3. SELECT * FROM Artiest, Schilderij 4. SELECT * FROM Artiest a, Schilderij s WHERE not (s.a_id =a.a_id De volgende SQL opdracht is in MYSQL syntax geschreven. Eronder staat hij zoals hij in het dictaat gebruikt zou worden. (Het resultaat is bij beiden gelijk!! MYSQL syntax: 5. SELECT * FROM Artiest LEFT JOIN Schilderij ON Artiest.A_ID=Schilderij.A_ID Diktaat syntax: 5. SELECT * FROM Artiest, Schilderij WHERE Artiest.A_ID = Schilderij.A_ID(+ Pagina 3
Deel III Maak de SQL opdrachten die antwoord geeft op de volgende vragen als de tabellen de volgende definitie hebben: Schilderij( S_id char(3 primary key, Naam varchar(50, A_ID char(3, Periode integer, Waarde integer, E_ID char(3 not null Artiest( A_ID char(3 primary key, Naam varchar(50 not null, Voornaam varchar(20, Geboren integer, Gestorven integer Eigenaar( E_ID char(3 primary key, Naam varchar(50 not null, Land varchar(20 not null 1. Geef de naam van alle schilderijen, geordend volgens afnemende waarde 2. Geef de Perioden waarin de schilderijen geschilderd zijn; elke periode mag ten hoogste eenmaal voorkomen in het resultaat. 3. Geef de naam van de schilderijen van voor 1800 die meer dan 15 miljoen kosten 4. Geef voor elk schilderij waarvan de schilder bekend is, de naam van het schilderij en de naam en voornaam van de schilder. 5. Hoeveel schilderijen kosten minder dan een miljoen? 6. Van hoeveel verschillende schilders bestaan er schilderijen in de database? 7. Geef de grootste, de kleinste en de gemiddelde waarde van de schilderijen 8. Geef een overzicht met per eigenaar de totaalwaarde van alle schilderijen die in het bezit zijn van deze eigenaar. Alleen die eigenaars die in totaal minder dan 25 miljoen aan schilderijen uit de database bezitten moeten in het overzicht worden opgenomen. 9. Geef de naam van alle schilderijen met een Nederlandse eigenaar. 10. Geef de verschillende namen van alle schilders waarvan een schilderij bestaat dat meer dan 5 miljoen waard is. 11. Geef de totale waarde per eigenaar van al die schilderijen waar geen schilder van bekend is. Pagina 4