1 / 34

SQL deel 1: SQL queries

SQL deel 1: SQL queries. Database Architectuur. Een datamodel is het fundament van je toepassing:. Sql, php, html enzo. Front-End Client : Browser | Flash | Feedreader | …. URL. HTML + CSS (+ JavaScript ) | XML. WebServer ( + scripting) : PHP | ASP | JSP. SQL querie.

vernon
Download Presentation

SQL deel 1: SQL queries

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL deel 1:SQL queries Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  2. Database Architectuur • Een datamodel is het fundament van je toepassing: Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  3. Sql, php, html enzo Front-End Client : Browser | Flash | Feedreader | … URL HTML + CSS (+ JavaScript ) | XML WebServer ( + scripting) : PHP | ASP | JSP SQL querie Datatabel (recordset ) DataBase ( gegevens ) : mySQL| Oracle | MSSQL Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  4. Wat is een database • DB: Database • Een verzameling tabellen gevuld met data • DBMS: Database management systeem • Software om een database te creëren en te manipuleren • Oracle • mySQL • SQL-server • MS ACCESS • SQL: Structured Query Language • Taal om met een database te praten • Informatie selecteren • Informatie toevoegen, veranderen, wijzigen • Tabellen definiëren • Relaties tussen tabellen definiëren Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  5. Client-Server architectuur • Onderscheid • Database-server ( SQL-server, Oracle ) • Database-cliënt ( MS ACCESS, web-server ) • NB: MS ACCESS kan ook zonder server direct met een database werken Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  6. SQL 1 : SELECT Het selecteren van data uit een enkelvoudige tabel Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  7. Tabel: • rijen en kolommen • Datatype: • tekst, getal, datum, etc… • Selecties uit één tabel: SELECT query • Selectie criteria • Berekeningen • Statistieken • Groeperen Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  8. tabellen • Een database bestaat uit een verzameling tabellen Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  9. Hoe zit data in een database? • Tabellen, bijvoorbeeld : telefoonnummers Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  10. tabel Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  11. rij Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  12. kolom Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  13. veld Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  14. ‘Datatype’ • De informatie in de cellen van een kolom zijn allemaal van hetzelfde ‘type’ Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  15. datatype • Type informatie in een veld • Bepaalt het soort operaties dat je er op kan uitvoeren. • basis datatypen • Numeriek optellen, aftrekken, gemiddelde • Tekst aan_elkaar_plakken, substring, teveel_spaties_verwijderen, zoek_en_vervang • Boolean and, or, xor, not • Binair/BLOB geen operaties • *Datum/tijd * • *Lange tekst * Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  16. Speciale datatype: datum/tijd • Datum/tijd • Eigenlijk ‘numeriek’: • aantal milliseconden sinds het jaar nul ( of sinds 1900 ) • Echter : • Speciale onregelmatige rekeneenheden ( maanden, schrikkeljaar, etc ) • Speciale manier van weergeven ‘1-1-2004’ of ‘2004-01-01’ of ‘1 jan 2004’ Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  17. Speciaal datatype: lange tekst • Tekst kan worden onderverdeeld in • Korte tekst ( <255 karakters ) • Lange tekst ( >255 karakter ) • Slecht een puur technische onderscheidHeeft te maken met • Efficiënt gebruik van geheugenruimte. • Andere manier van zoeken Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  18. Onzinnige datatypen in ACCESS • Valuta • Hyperlink Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  19. Basis datatype • Type informatie in een veld • Bepaald het soort operaties dat je er op kan uitvoeren. • basis datatypen die in iedere database of programmeertaal op één of andere manier worden ondersteund: • Numeriek • Tekst • Boolean • Binair • Datum/tijd • Lange tekst Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  20. Vraag? Welke data type is • Telefoonnummer? • Huisnummer? • Leeftijd? Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  21. En dan nu... SQL Structured Query Language • Een taal om database te bevragen en te manipuleren. • Als sinds begin 70 relatief stabiel • Ondersteund door ieder DBMS Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  22. ‘SELECT’ query • Het selecteren van informatie uit een tabelbijvoorbeeld ‘product’ -tabel • selecteer productnamen en productprijzen uit de tabel ‘product’ • selecteer namen van producten uit de categorie 'boeken' • Selecteer alle producten die duurder zijn dan 5 euro • Selecteer een lijst met alle categorie-namen • Selecteer de gemiddelde prijs van de producten per categorie Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  23. Verschillende soorten selecties • Rijen • Selecteren van kolommen (hst 2) • Sorteren (hst 3) • Filteren van rijen (hst 4,5,6) • Het berekenen van kolommen (hst 7,8) • Aggregaties • Lijst van voorkomende waarden ( ? ) • Statistieken ( hst 9 ) • Groeperen ( hst 10 ) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  24. Syntax van een eenvoudige SELECT • SELECT ID,naam, prijs FROM product WHERE categorie = ‘boek’ ORDER BY prijs • SELECT {kolomnamen} FROM {tabelnaam} WHERE {criteria} ORDER BY {kolomnaam} Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  25. SELECT resultaat • Het resultaat van een SQL query is altijd een tabel. • ID naam prijs8 groentensoep 2,157 appelsap 2,959 blik tonijn 3,15 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  26. Syntax van een eenvoudige SELECTvariaties • SELECT naam, prijs FROM product WHERE categorie = ‘boek’ ORDER BY prijs • SELECT product.naam, product.prijs FROM product WHERE product.categorie = ‘boek’ ORDER BY product.prijs • SELECT [product.naam], [product.prijs] FROM product WHERE [product.categorie] = ‘boek’ ORDER BY [product.prijs] Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  27. SELECT WHERE • SELECT naam, prijs FROM product WHERE categorie = ‘eten’ AND prijs < 5 ORDER BY producent,prijs • Logische operaties: AND, OR, NOT • Vergelijkingen: =, >, < , <> , <=, <=, LIKE Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  28. Berekeningen in SELECT (numeriek) • Selecteer de naam, prijs en prijs_plus_btw • SELECT naam, prijs, prijs + prijs* btw_tarief/100 AS prijs_met_btw FROM product • Naam prijs prijs_met_btwfiets 100 120brood 1 1,05 boek 30 36 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  29. Berekeningen in SELECT (datum) • Selecteer de naam en de ‘leeftijd’ van een product • SELECT naam, beschikbaar_vanaf, DATEDIFF( 'yyyy' , beschikbaar_vanaf , DATE() ) AS leeftijdFROM product; WHERE beschikbaar_vanaf <= DATE() • Naam beschikbaar_vanaf leeftijdfiets 1-1-2003 1brood 1-2-1999 5 boek 3-2-2004 0 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  30. SELECT • Tot nu toe: • Selecteren van rijen uit een tabel • Kolommen • Rijen filteren • Berekende kolommen • Ook mogelijk: • Aggregatie functies • Gemiddelde prijs van de producten • Gemiddelde prijs per categorie • Lijst van alle categorieën • Lijst van producenten met meer dan één product Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  31. SELECT DISTINCT • SELECT DISTINCT categorie, producent FROM product • categorievervoervoedselboek Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  32. statistieken • SELECT COUNT(*) AS aantal, AVG(prijs) AS midPrijs, MAX(prijs) AS maxPrijs, MIN(prijs) AS minPrijsFROM product • Aantal midPrijs maxPrijs minPrijs11 1188 8000 2.05 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  33. Statistieken per groep • SELECT categorie, COUNT(*) AS aantal, AVG(prijs) AS midPrijs, MAX(prijs) AS maxPrijs, MIN(prijs) AS minPrijsFROM productGROUP BY categorie • Categorie aantal gemPrijs maxPrijs minPrijsboek 5 30,38 50 20voedsel 3 2996 8000 300vervoer 3 2,75 3,15 2.05 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  34. Herhaal: Verschillende soorten selecties • Rijen • Selecteren van kolommen (hst 2) • Sorteren (hst 3) • Filteren van rijen (hst 4,5,6) • Het berekenen van kolommen (hst 7,8) • Aggregaties • Lijst van voorkomende waarden ( ? ) • Statistieken ( hst 9 ) • Groeperen ( hst 10 ) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

More Related