ISO Query By Example

Vergelijkbare documenten
ISO SQL: Structured Query Language

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

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden)

Data Manipulatie. Query Talen. / Informatica

Structured Query Language (SQL)

Introductie (relationele) databases

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Proeftentamen ISO (2R290), query-gedeelte, Oktober 2006

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

SQL opgaven. Relationele model: Opgaven:

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Informatie Systeem Ontwikkeling ISO 2R290

Query SQL Boekje. Fredrik Hamer

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

11. Het selecteren van gegevens deel II

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

1. Inleiding Inleiding SQL Inleiding Database, databaseserver en databasetaal Het relationele model...

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

Structured Query Language

[TOETS SQL INLEIDING]

Gekoppelde tabellen: de JOIN

Les S-02: Meer geavanceerde SQL-instructies

Data Manipulation Language

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

Zelftest SQL Workshop

Zelftest SQL Workshop

Les S-01: De basisbeginselen van SQL

Relationele Databases 2002/2003

Relationele Databases 2002/2003

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

Een introductie tot gegevensbanken

Les 2 Eenvoudige queries

EXIN Databases en SQL Foundation

Tentamen Databases voor ica

Databases en SQL Foundation (DBSQLF.NL)

Relationele databases

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

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

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

Informatie & Databases

Les S-01: De basisbeginselen van SQL

OFFICE A LA CARTE - ACCESS 2013

SQL: oefenen queries

SQL & Datamodelleren

Databases - Inleiding

Data Warehouse Script Generator Doel

Les 11 : Basis SQL (deel2).

Abstraheren van modellen

Relationele Databases 2002/2003

oefeningen eredivisie antwoorden

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

Van CaseTalk naar een database in SQLite studio

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

Databases (INFODB) 20 april 2010

Gebruikers Handleiding

SQL & Relationele datamodellen in interactieve media

oefeningen TOP2000 antwoorden

Tentamen Databases voor iku

Databases (INFODB) 24 januari 2007

Puzzelen met SQL: Fileleed

7. Het selecteren van gegevens

Datamodelleren en databases 2011

TU Delft TENTAMEN DATABASES. Opgaven IN2105/IN oktober uur. Er zijn 6 opgaven. maximale score 100 punten

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

Databases SQL - meerdere tabellen

PROGRAMMA Vak: informatica..

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

Hoofdstuk: 1 Principes van databases

SQL / Systeemanalyse

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

SQL. Datamodellering 2008

SQL. Wat is SQL? Geschiedenis SQL SQL DMO Datamodellering 2008

Tentamen Informatica 6, 2IJ60,

9. Het wijzigen van gegevens

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

Programmeren in Access met VBA

Trainingsomschrijving ACCESS 97 / 2000 / 2003NL

Programmeren in Access 2016 met VBA

1. Databanken. Wat is een databank? Verschillende opslagmethodes

Data Definition Language

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

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

Microsoft SQL. opdracht. Regio College Zaanstreek Waterland Afdeling ICT Opleidingen

Lekker snel XML met SQL (.nl)

Het Gegevensmodel en draaitabellen in Excel 2013 (tip 193)

Data Handling Ron van Lammeren - Wageningen UR

8. De invoer van gegevens

ExpertHandboek Business Intelligence met Power BI in Excel Wim de Groot

Spoedcursus SQL met MS-Access

Koppeling met een database

NHibernate als ORM oplossing

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Miniles gegevensbanken bevragen met SQL

Tentamen Databases voor ica

Transcriptie:

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, maar ook een (mogelijk) recept om de query te berekenen in QBE geven we alleen een specificatie van het resultaat, en geen recept voor de berekening QBE is grafisch : je tekent hoe het resultaat van de query er moet uit zien en wat met wat moet overeenkomen je geeft als het ware een voorbeeld van het resultaat 5.3

QBE skelet voor de bank database: tabelnaam attribuutnamen 5.4 Queries over 1 tabel geef alle nummers van leningen die geopend zijn bij het filiaal Perryridge. _x is een variabele (is in bovenstaande query nog niet nodig) P. betekent print (toon op scherm) het resultaat is een verzameling: mogelijke dubbele rijen worden automatisch verwijderd om de dubbels te behouden: gebruik P.ALL 5.5

Queries op 1 tabel (cont.) toon de loan tabel (met alle attributen): Methode 1: P._x P._y P._z Methode 2: kortschrift (vergelijk met * in SQL) 5.6 Queries op 1 tabel (cont.) geef de nummers van alle leningen met een bedrag hoger dan 700 geef de namen van alle filialen die niet in Brooklyn gevestigd zijn 5.7

Queries op 1 tabel (cont.) geef de nummers van de leningen die Smith en Jones samen hebben aangegaan geef alle klanten die in dezelfde stad wonen als Jones 5.8 Queries meer dan 1 tabel geef de namen van alle klanten die een lening hebben bij het filiaal Perryridge 5.9

Queries op meer dan 1 tabel (cont.) geef de namen van de klanten die een rekening en een lening hebben 5.10 De not exists in QBE geef de namen van alle klanten die een rekening hebben maar geen lening betekent dus er bestaat geen 5.11

verschillend van in SQL geef alle klanten met twee of meer rekeningen betekent hier verschillend van 5.12 De Condition Box soms wil je een conditie (zoals in de where in SQL) die niet (makkelijk) kan uitgedrukt worden binnen een tabel-skelet complexe condities kunnen in een condition box worden geplaatst (er mogen verschillende condition boxes worden gebruikt) voorbeeld: geef het nummer van de leningen van Smith, Jones of beide samen 5.13

Condition Box (cont.) QBE laat een vereenvoudigde syntax toe voor het uitdrukken van logische expressies 5.14 Condition Box (cont.) geef de nummers van alle rekeningen met een saldo van minstens 1300 en hoogstens 1500 geef de nummers van alle rekeningen met een saldo van minstend 1300 en hoogstens 2000 maar niet exact 1500 5.15

Condition Box (cont.) bij de volgende vraag is de condition box echt nodig: geef alle filialen die grotere assets hebben dan tenminste 1 filiaal uit Brooklyn 5.16 de resultaat (result) tabel Soms is het antwoord op een query niet een deel van een van de bestaande tabellen, maar samengesteld uit verschillende tabellen: geef de customer_name, account_number, en balance voor alle rekeningen bij het filiaal Perryridge wat moeten we doen: de depositor en account tabel verbinden ( join ) projecteren op customer_name, account_number en balance. dit kan alleen maar door: een tabel-skelet te maken met de structuur van het resultaat: met attributen customer_name, account_number, en balance. de query op te schrijven in de bestaande tabelskeletten en het nieuwe skelet. 5.17

de resultaat (result) tabel (cont.) de query wordt dan: 5.18 aggregatie functies (zoals bij SQL) de aggregatie functies zijn AVG, MAX, MIN, SUM, en CNT omdat QBE standaard altijd dubbels uit resultaten verwijdert moeten de operatoren de toevoeging ALL krijgen om dit te voorkomen, dus SUM.ALL._x of AVG.ALL._x, etc. voorbeeld: geef de som van alle saldi van de rekeningen bij het filiaal Perryridge 5.19

aggregatie functies (cont.) UNQ geeft expliciet aan dat dubbels worden verwijderd (dit is standaard maar het is duidelijker om het toch te vermelden) geef het totaal aantal klanten met een rekening: 5.20 aggregatie en group-by maak een lijst van alle filialen met per filiaal het gemiddelde saldo op de rekeningen bij dat filiaal de G in P.G betekent dat gegroepeerd wordt per filiaal (branch_name) de ALL in P.AVG.ALL verzekert dat dubbels niet worden verwijderd om alleen filialen te krijgen waar het gemiddelde saldo hoger is dan 1200 kan je een condition box toevoegen 5.21

Microsoft Access QBE Microsoft Access biedt een variant (slap aftreksel) van QBE aan: Graphical Query By Example (GQBE) GQBE verschilt van echte QBE onder andere op volgende punten: in de design view geven de skeletten de lijst van attributen verticaal weer in plaats van horizontaal lijnen in de view worden gebruikt om aan te duiden dat waarden (voor bepaalde attributen) gelijk moeten zijn een aantal lijnen worden automatisch gegenereerd, voor gelijknamige attributen (je moet ze weer weghalen als ze ongewenst zijn) andere verbanden (ongelijk, groter, kleiner) kunnen niet met lijnen worden uitgedrukt, maar moeten in een design grid (een soort uitgebreide condition box) de design grid is niets meer of minder dan een plek om SQL where, group by en having condities in te vullen, en met een vinkje de attributen voor de select aan te duiden 5.22 Access QBE voorbeeld geef de customer_name, account_number en balance voor alle rekeningen bij het filiaal Perryridge 5.23

een Aggregatie Query in Access QBE geef de name, street en city van alle klanten die meer dan 1 rekening hebben bij de bank 5.24