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



Vergelijkbare documenten
SQL. Datamodellering 2008

Datamodelleren en databases 2011

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

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

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

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

Les 11 : Basis SQL (deel2).

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

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

Databases - Inleiding

Introductie (relationele) databases

[TOETS SQL INLEIDING]

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

Databases en SQL Foundation (DBSQLF.NL)

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

EXIN Databases en SQL Foundation

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

Structured Query Language

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

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

Query SQL Boekje. Fredrik Hamer

Data Definition Language

Data Manipulation Language

SQL.

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

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

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

SQL & Relationele datamodellen in interactieve media

Informatie & Databases

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

ISO Query By Example

Computerclub Volwassenen, Jeugd en Informatica vzw

Sparse columns in SQL server 2008

Les S-02: Meer geavanceerde SQL-instructies

oefeningen TOP2000 antwoorden

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

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

Structured Query Language (SQL)

Hoofdstuk: 1 Principes van databases

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

11. Het selecteren van gegevens deel II

SQL & Datamodelleren

SQL datadefinitietaal

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

Les 2 Eenvoudige queries

Zelftest SQL Workshop

oefeningen eredivisie antwoorden

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

Relationele databases

Data Warehouse Script Generator Doel

Versieperikelen. Bijlage C

Relationele Databases 2002/2003

Relationele Databases 2002/2003

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

6. Het maken van een database

Zelftest DB2 for z/os basiscursus

ISO SQL: Structured Query Language

Zelftest SQL Workshop

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

EXIN Databases en SQL Foundation

8. De invoer van gegevens

COMPUTERWOORDEN.NL SQL - basis

Data Manipulatie. Query Talen. / Informatica

Bibliotheek in ProcessMaker

Integriteitsbewaking bij een relationele database

Les S-01: De basisbeginselen van SQL

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

Databank - Gevorderden 1

Miniles gegevensbanken bevragen met SQL

Puzzelen met SQL 38. De Muzieklijst, deel 2 PUZZELEN MET SQL

Secure Application Roles

Vragen hoofdstuk 1: Resultaat

FileMaker 13. Naslaggegevens voor SQL

Databases SQL - meerdere tabellen

Data Handling Ron van Lammeren - Wageningen UR

Thinking of development

Zorg ervoor dat je een database hebt aangevraagd op Open daarna het volgende adres in je browser:

Digitaal Staatsexamen VWO 2010

Elementary Data Structures 3

NHibernate als ORM oplossing

9 H. Flits Zwanenveld 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

Editions Based Redefinition: Tijdens de verbouwing gaat de verkoop door. Lucas Jellema, Alex Nuijten - AMIS Services BV

Een introductie tot gegevensbanken

Guido Geurts Mark Bernaerts

FileMaker 15. Naslaggegevens voor SQL

de praktijk: tabellen

Inhoud Basiscursus. Access 2010 NL-NL

Advanced Databases Topic 2: query processing aspects query optimisation. Query optimisation. Van SQL naar XRA. Algebraïsche herschrijving

Beheer van databanken

Puzzelen met SQL: Fileleed

Relationele database. Het relationele model

Groepswerk Technieken voor Datamodellering

9. Het wijzigen van gegevens

Redundancy Normaalvormen

Workshop SQL. Woensdag 16 mei 2018

Object Oriented Programming

SQL opgaven. Relationele model: Opgaven:

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Transcriptie:

SQL Datamodellering 2008 1 Wat is SQL? is een standaard interactieve bevragings- en definitietaal voor relationele DBMSen is een set-based, declaratieve query-taal (dus niet procedureel!) DB-leveranciers proprietary extensions 2/26 Geschiedenis SQL Jaren 70: IBM Donald D. Chamberlin & Raymond F. Boyce SEQUEL (voor Sytem R) 1986: SQL-86: ANSI-standaard 1989: SQL-89: kleinere uitbreidingen 1992: SQL-2: belangrijke herziening 1990: SQL-3: triggers, recursieve queries 2003: SQL2003: windows, XML-features 2006: SQL2006: integratie met XML, XQuery 3/26 DMO 2008 1

Wat kun je doen met SQL? Data definition definiëren van datastructuur en relaties Data retrieval. bevragen van de database Data manipulation. toevoegen, verwijderen en wijzigen van gegevens Access control authorisatie van gebruikers Data sharing coordineren van gelijktijdig gebruik van data door verschillende gebruikers Data integrity regels definiëren om de data integriteit van de database te bewaken 4/26 SQL als verbindende schakel 5/26 Onderdelen SQL Data Manipulation Language (DML) SELECT - extracts data from a database UPDATE - updates data in a database DELETE - deletes data from a database INSERT INTO - inserts new data Data Definition Language (DDL) CREATE DATABASE - creates a new database ALTER DATABASE - modifies a database CREATE TABLE - creates a new table ALTER TABLE - modifies a table DROP TABLE - deletes a table CREATE INDEX - creates an index (search key) DROP INDEX - deletes an index 6/26 DMO 2008 2

Voorbeeld DDL CREATE TABLE Employee ( Employee_id INT, Name VARCHAR (50), Byear INT NOT NULL, PRIMARY KEY (Employee_id) ); 7/26 SQL in DMO In DMO maar een beperkt deel van SQL (DML): alleen de queries (SELECT) Basisbewerkingen op relationele model: selectie projectie join union Deze leveren altijd weer een tabel op! Let goed op, hoe deze bewerkingen in SQL worden vertaald 8/26 Projectie Projection operatie op een relationele tabel waarbij kolommen worden geselecteerd, en die samen worden opgeleverd als een nieuwe tabel. SELECT Name, Byear FROM Employee N.B. projectie gaat meestal samen met selectie 9/26 DMO 2008 3

Selectie Selection operatie op een relationele tabel waarbij rijen (records) worden geselecteerd die aan een bepaald criterium voldoen, en die samen worden opgeleverd als een nieuwe tabel. SELECT * FROM Employee WHERE Byear > 1950 Syntax: SELECT kolom(men) FROM tabel WHERE conditie ORDER BY kolom(men) ASC DESC 10/26 Condities en operatoren Operator = <> > < >= <= BETWEEN LIKE IN Description Equal Not equal Greater than Less than Greater than or equal Less than or equal Between an inclusive range Search for a pattern Return a specific set 11/26 BETWEEN SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen Implementaties verschillen (wel of niet inclusief) P_Id LastName 1 Hansen 2 Svendson 3 Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Stavanger 12/26 DMO 2008 4

LIKE Alle personen in een stad waarvan de naam begint met Sa : SELECT * FROM Persons WHERE City LIKE Sa% % = wildcard (willekeurige letters) P_Id 1 2 3 LastName Hansen Svendson Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Stavanger 13/26 IN (set) Alleen Hansen en Pettersen SELECT * FROM Persons WHERE LastName IN ('Hansen', 'Pettersen') P_Id 1 2 LastName Hansen Svendson FirstName Ola Tove Address Timoteivn 10 Borgvn 23 City 3 Pettersen Kari Storgt 20 Stavanger 14/26 Duplicaten verwijderen SELECT DISTINCT City FROM Persons Resultaat: 1x en 1x Stavanger P_Id LastName 1 Hansen 2 Svendson 3 Pettersen FirstName Ola Tove Kari Address Timoteivn 10 Borgvn 23 Storgt 20 City Stavanger 15/26 DMO 2008 5

Join Join is een zijdelingse verbinding van tabellen, waarbij eveneens een nieuwe tabel ontstaat Combineren van data uit verschillende tabellen onderling verbonden door PK-FK dezelfde tabel: self-referencing self-join Speciale joins als bij een 1:N-relatie aan de N-kant records ontbreken inner / outer join 1:N 16/26 Inner join Alleen matching records worden opgeleverd in de nieuwe tabel Als =-operator wordt gebruikt: equi-join SELECT T1.*, T2.Product FROM T1, T2 WHERE T1.ID = T2.Cid of vanaf SQL92: SELECT T1.*, T2.Product FROM T1 JOIN T2 On T1.ID = T2.Cid (mag ook nog een where-clause hebben) 17/26 Outer join Alle records (van de linker en/of rechter tabel) worden opgeleverd in de nieuwe tabel NULL-waarden waar matching niet mogelijk is left outer join right outer join full outer join SELECT T1.*, T2.Product FROM T1 LEFT JOIN T2 ON T1.ID = T2.Cid 18/26 DMO 2008 6

Union - 1 Union is een kop-staart verbinding van tabellen, waarbij eveneens een nieuwe tabel ontstaat Union combineert de resultaten van twee select-queries, waarbij duplicaat-records automatisch worden verwijderd (tenzij union all wordt gebruikt) Tabellen moeten wel overeenkomen in datastructuur! 19/26 Union - 2 union union all Gegeven tabel T1 en tabel T2 Gevraagd de totale verzameling T1 plus T2 SELECT * FROM T1 UNION SELECT * FROM T2 ORDER BY Name SELECT * FROM T1 UNION all SELECT * FROM T2 ORDER BY Name 20/26 Aggregatie Functies geaggregeerde waarde (telling, som, etc.) Function AVG(column) COUNT(column) COUNT(*) MAX(column) MIN(column) SUM(column) Er zijn er meer! Description Returns the average value of a column Returns the number of rows (without a NULL value) of a column Returns the number of selected rows Returns the highest value of a column Returns the lowest value of a column Returns the total sum of a column 21/26 DMO 2008 7

GROUP BY Aggregatie per groep SELECT Company, SUM(Amount) FROM Sales GROUP BY Company Resultaat: W3Schools 12600 IBM 4500 Company W3Schools IBM W3Schools Amount 5500 4500 7100 22/26 HAVING HAVING: conditie bij aggregatie SELECT Company, SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount)>10000 Resultaat: W3Schools 12600 Company W3Schools IBM W3Schools Amount 5500 4500 7100 23/26 Views VIEW is een virtuele tabel gebaseerd op het resultaat van een SELECT statement Syntax: CREATE VIEW view_naam AS SELECT kolom(men) FROM tabel(len) WHERE condition Gebruik: als hulptabel, b.v. in nieuwe query 24/26 DMO 2008 8

Oefening 1 Queries: 1) Iedereen met voornaam, achternaam die niet woont in Payson 2) Iedereen ouder dan 40 3) Iedereen met ay in de achternaam empinfo first John Mary Eric Mary Ginger John Gus Mary Erica Leroy Elroy last Jones Jones Edwards Edwards Howell Smith Gray May Williams Brown Cleaver id 99980 99982 88232 88233 98002 92001 22322 32326 32327 32380 32382 age 45 25 32 32 42 23 35 52 60 22 22 city Payson Payson San Diego Phoenix Cottonwood Gila Bend Bagdad Tucson Show Low Pinetop Globe state California 25/26 Oefening 2 Query: Alle klanten (voor-, achternaam, plaats) in:, Washington, Colorado en Hawaii customers customer 10101 10298 10299 10315 10325 10329 10330 10338 10339 10408 10410 10413 firstname John Leroy Elroy Lisa Ginger Kelly Shawn Michael Anthony Elroy Mary Ann Donald lastname Gray Brown Keller Jones Schultz Mendoza Dalton Howell Sanchez Cleaver Howell Davids city Lynden Pinetop Snoqualmie Oshkosh Pocatello Kailua Cannon Beach Tillamook Winslow Globe Charleston Gila Bend state Washington Washington Wisconsin Idaho Hawaii Oregon Oregon Colorada 26/26 DMO 2008 9