FROM product WHERE - Hogeschool van Amsterdam

Download Report

Transcript FROM product WHERE - Hogeschool van Amsterdam

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
Deel 1 ( week 2 – 5 )
• SQL queries
Deel 2 ( week 6 – 9 )
• datamodelleren
HOE ZIT DATA IN EEN DATABASE?
TABEL
RIJ
KOLOM
VELD
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 SELECT
SELECT 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
1
7
8
9
naam
Koken voor …
appelsap
groentensoep
blik tonijn
prijs
20,10
2,95
2,15
3,10
SYNTAX VAN EEN EENVOUDIGE SELECT
SELECT ID, naam, prijs
FROM product
WHERE categorie = ‘voedsel’
ORDER BY prijs
SELECT {kolomnamen}
FROM {tabelnaam}
WHERE {criteria}
ORDER BY {kolomnaam}
SELECT RESULTAAT
SELECT ID, naam, prijs
FROM product
WHERE categorie =‘voedsel’
ORDER BY prijs
ID
8
7
9
naam
groentensoep
appelsap
blik tonijn
prijs
2,15
2,95
3,15
KORTE OPDRACHT (10 MIN )
Doe je eerste SQL querie
op de ‘producten’-database
SELECT …
FROM …
WHERE …
ORDER BY …
SYNTAX VAN EEN EENVOUDIGE SELECT
VARIATIES
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]
SELECT WHERE
SELECT naam, prijs
FROM product
WHERE
categorie = ‘eten’
AND prijs < 5
ORDER 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_btw
FROM product
Naam
fiets
brood
boek
prijs
100
1
30
prijs_met_btw
120
1,05
36
BEREKENINGEN IN SELECT (DATUM)
Selecteer de naam en de ‘leeftijd’ van een product
SELECT naam, beschikbaar_vanaf,
DATEDIFF(
'yyyy' ,
beschikbaar_vanaf ,
DATE() )
AS leeftijd
FROM product;
WHERE beschikbaar_vanaf <= DATE()
Naam beschikbaar_vanaf
fiets 1-1-2003
brood 1-2-1999
boek
3-2-2004
leeftijd
1
5
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
11
midPrijs maxPrijs minPrijs
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 product
GROUP BY categorie
Categorie aantal gemPrijs
boek
5 30,38
voedsel
3 2996
vervoer
3 2,75
maxPrijs minPrijs
50
20
8000
300
3,15
2.05
GROUP BY VS ORDER BY
:
Alleen in combinatie met een statistische functie
gemiddelde prijs per categorie
ORDER BY
Sortering van rijen
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
categorie
vervoer
voedsel
boek
Is hetzelfde als:
SELECT categorie FROM product
GROUP BY categorie
OEFENEN
Doe de oefeningen uit de reader !
VOLGENDE WEEK
Meerdere tabellen in de database