Download en installeer de gereedschappen

Post on 22-Jan-2016

71 views 0 download

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 Presentation

Transcript of Download en installeer de gereedschappen

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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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

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

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

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 - j.meuwese@interactievemedia.hva.nl - 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 - j.meuwese@interactievemedia.hva.nl - 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 - j.meuwese@interactievemedia.hva.nl - 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 - j.meuwese@interactievemedia.hva.nl - 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