download en installeer de gereedschappen
DESCRIPTION
Download en installeer de gereedschappen. 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 mySQL reference. SQL en database ontwerp. - PowerPoint PPT PresentationTRANSCRIPT
DOWNLOAD EN INSTALLEER DE GEREEDSCHAPPENXAMP
• 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 minutenmySQL reference
SQL EN DATABASE ONTWERP
Deel 1 ( week 2 – 5 )• SQL queries
Deel 2 ( week 6 – 9 )• datamodelleren
HOE ZIT DATA IN EEN DATABASE?TABEL
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
RIJ
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
KOLOM
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
VELD
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
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• XML
BLOB Binary large object
Bijv: beeldmateriaal, geluid, bestanden.
Operaties: geen
Vaak niet in een database maar als aparte bestanden, wel bestandsnaam in de database
Er bestaan speciale databases met speciale functies voor speciale bestanden
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’Subtype:- Date- Time
XML IN EEN DATABASE
XML als datatype:
XML data opgeslagen in een database-veld
Speciale XML functies
SQL/XML standaard wordt nog niet door alle RDBMS’s ondersteund
NB: geen stof voor tentamen, wel mogelijkheid tot bonuspunten
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• XML
VRAAG?
Welke data type is• Telefoonnummer?• Huisnummer?• Leeftijd?
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
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
Selecteren en wijzigen van opgeslagen gegevens
Aanbrengen/veranderen van de structuur van de database
SYNTAX VAN EEN EENVOUDIGE SELECTSELECT ID, naam, prijs
FROM product
SELECT {kolomnamen}FROM {tabelnaam}
SELECT RESULTAAT
Het resultaat van een SQL query is altijd een tabel.
SELECT ID, naam, prijs FROM product
ID naam prijs1 Koken voor … 20,107 appelsap 2,958 groentensoep 2,159 blik tonijn 3,10
SYNTAX VAN EEN EENVOUDIGE SELECTSELECT ID, naam, prijs
FROM productWHERE categorie = ‘voedsel’ORDER BY prijs
SELECT {kolomnamen}FROM {tabelnaam}WHERE {criteria}ORDER BY {kolomnaam}
SELECT RESULTAAT
SELECT ID, naam, prijs FROM productWHERE categorie =‘voedsel’ORDER BY prijs
ID naam prijs8 groentensoep 2,157 appelsap 2,959 blik tonijn 3,15
KORTE OPDRACHT (10 MIN )
Doe je eerste SQL querie op de ‘producten’-database
SELECT …FROM …WHERE …ORDER BY …
SYNTAX VAN EEN EENVOUDIGE SELECTVARIATIESSELECT naam, prijs
FROM productWHERE categorie = ‘boek’ORDER BY prijs
SELECT product.naam, product.prijsFROM productWHERE product.categorie = ‘boek’ORDER BY product.prijs
SELECT [product.naam], [product.prijs]FROM productWHERE [product.categorie] = ‘boek’ORDER BY [product.prijs]
SELECT WHERE
SELECT naam, prijs FROM productWHERE categorie = ‘eten’
AND prijs < 5ORDER BY producent , prijs DESC
Logische operaties: AND, OR, NOT
Vergelijkingen: =, >, < , <> , <=, >=, LIKE
BEREKENINGEN IN SELECT (NUMERIEK)Selecteer de naam, prijs en prijs_plus_btw
SELECT naam, prijs, prijs + prijs* btw_tarief/100 AS prijs_met_btwFROM product
Naam prijs prijs_met_btwfiets 100 120brood 1 1,05boek 30 36
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 5boek 3-2-2004 0
FUNCTIES EN OPERATOREN
Gebruik de (my)SQL reference :
AGGREGATIES/STATISTIEKEN
Dwz:
Informatie uit een tabel als geheel (ipv uit een rij)
Voorbeelden:
Gemiddelde
Aantal
Hoogste
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• Statistieken ( hst 9 )• Groeperen ( hst 10 )• Lijst van voorkomende waarden ( ? )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
STATISTIEKEN
SELECT COUNT(*) AS aantal, AVG(prijs) AS midPrijs,MAX(prijs) AS maxPrijs, MIN(prijs) AS minPrijs
FROM product
Aantal midPrijs maxPrijs minPrijs11 1188 8000 2.05
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
STATISTIEKEN PER GROEP
SELECT categorie, COUNT(*) AS aantal, AVG(prijs) AS midPrijs,MAX(prijs) AS maxPrijs, MIN(prijs) AS minPrijs
FROM productGROUP BY categorie
Categorieaantal gemPrijs maxPrijs minPrijsboek 5 30,38 50 20voedsel 3 2996 8000 300vervoer 3 2,75 3,15 2.05
GROUP BY VS ORDER BY
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
SPECIAAL GEVAL: SELECT DISTINCT
SELECT DISTINCT categorie, FROM product
categorievervoervoedselboek
Is hetzelfde als:
SELECT categorie FROM productGROUP BY categorie
OEFENEN
Doe de oefeningen uit de reader !
VOLGENDE WEEK
Meerdere tabellen in de database