Structured Query Language Kræsj-kurs

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Internett for nybegynnere
Hvordan etablere nettbutikk med GoOnline Commerce
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
Veiledning i gevinstrealisering ved innføring av elektronisk handel
Oppdatere innstillinger for profil og personvern Trykk deretter F5, eller klikk Lysbildefremvisning > Fra begynnelsen for å starte kurset. Klikk Aktiver.
Velkommen som spiller i aksjespillet.
Mange til mange sammenhengen
Kap 02 Relasjonsdatabaser
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Kontrollstrukturer (Kapittel 3)
Webprogrammering Arrays.
Avansert SQL og problemløsning
1 Objektorienterte databaser - 6 Arne Maus. 2 Problemstillinger, hvorfor OO- databaser ?  dagens relasjonsdatabaser (RDB) passer ikke for alle anvendelser.
Ran Det er mye enklere å huske personer fra/under et ran om du kan benytte en av de følgende ansiktformer. Tren og test deg selv ved å forsøke å tegne.
Test av skjermer på fergene Horten - Moss
Databaser Verktøybok om Access med innslag av Frontpage: Snarveien til Access.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Databaseteori.
Tolkning av resultatene fra logistisk regresjon
Markedsleie for hybler og leiligheter i Oslo andre kvartal 2006.
Databasehåndtering med MySQL
Eksempel AOA (Activity On Arc)
1 Øvingsforelesning 7 Kai Olav Ellefsen. 2 I dag… Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010.
Kvalitetssikring av analyser til forskningsbruk
Relasjonsmodellen og relasjonsalgebra
Relasjonsmodellen, del II
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
1 Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt Ansatte Pasienter Utstyr Økonomi Avdelinger RøntgenOnkologisk.
SQLHiA Transaksjoner. SQLHiA TransaksjonDefinisjon En transaksjon er en serie av en eller flere SQL-statement som til sammen danner en logisk enhet. Med.
1 Arrayer og form(ularer) (Kapittel 4). 2 Mål  Forstå assosiative og superglobale arrays  Kunne behandle webformularer (forms)  Kjenne forskjellen.
Instead-of-trigger Faglig forum. Instead-of-trigger Problem: En har et VIEW som består av mange JOINs. Komplekst å oppdatere alle tabellene som inngår.
Sponsor og Annonser.
Skjema/Forms HTML II IT og læring 2/20 november 2001.
ER-modellen, notasjon ENTITETS- Attributter TYPE Relasjon
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
Dynamiske nettsider PHP Del 4 – Eksterne datakilder.
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
Kort om XML Språket om språket. XML: Eksempel Hans Tømmerholt.
Andre funksjoner. Her kommer en beskrivelse av søkefunksjoner, knapper og annen funksjonalitet. 2.
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
Vi viser litt fra CD’en Norges Eiendommer. Hvordan en rapport defineres og skrives ut.
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
Diskrete stokastiske variable
INF 4130 Eksamen 2008 Gjennomgang.
SINTEF-undersøkelsen om salting og trafikksikkerhet
INF3100 – – Ellen Munthe-Kaas Indeksering UNIVERSITETET I OSLO © Institutt for Informatikk Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10,
Eksempel: Sletting ved tynn indeks Slett post med a = 60 –Ingen endring nødvendig i indeksen. Slett post med a = 40 –Den første posten i blokken er blitt.
Opptelling av karakterer Mål: Vi skal sammenligne karakterer studentene får i to kurs.
De 222 mest brukte ordene i det norske språket..
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Upload av bildefiler Utdrag fra ImageIn Ved Kirsten Klæbo Tirsdag 25/11-03.
Bompasseringer Mål: Slå sammen data om bompasseringer fra mange bomselskap. Sende ut en samlefaktura til hver bileier.
HUMIT1731 Hypermedier Introduksjon til XSL Transformation (XSLT)
SPSS-kurs. Program Dagen vil bli delt inn i fire bolker: Bolk 1 - 9:30-10:30 – Åpne/lagre datasett, datatyper, definere variable. Bolk 2 – 10:45-11:30.
Stian Grønning Master i samfunnsøkonomi Daglig leder i Recogni.
SPSS-kurs.
Statistikk Forkurs Hva er statistikk? undersøke registrere lage oversikt→ Presentasjon av informasjon formidle Arbeidet med statistikk kan vi dele.
Oversikt Access Hva en bør beherske så langt. Tabeller Felt Typer (heltall, desimaltall, tekst, Boolean) Primary Key.
Eksempel: Sletting ved tynn indeks
Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10, 26, 28, 30, 33, 35
INF1300 Introduksjon til databaser
Utskrift av presentasjonen:

Structured Query Language Kræsj-kurs SQL Structured Query Language Kræsj-kurs

SQL: Et deklarativt språk som i grovt trekk består av 3 deler: DDL DML DQL, som vi skal fokusere på idag

SQL: Flere standarder, mest brukt sql:1999. Flere dialekter mySQL har en egen, likner på standarden

DDL Brukes til å definere datastrukturen vår Sette skranker Triggere, etc Litt om dette, men i oblig 2 får vi ferdiglagede DS, eller forhåndsdefinerte DDL

DML Manipulerer dataen i strukturen vår IINSERT, UPDATE, DELETE

DQL Spør etter dataen vi vil ha fra DM SELECT FROM WHERE

mySQL Et relasjons-DBMS I utgangspunktet en ”boks” med tabeller Evolusjonen har gjort denne meget god

DQL:Relasjoner Vi samler dataene våre i relasjoner Vi kaller hver rad et tuppel Navnene ”øverst” kalles attributter Ingen tupler kan være identiske En relasjon bør inneholde en primærnøkkel Id# Navn Adresse Alder 1 Kari Bremnes Bremneslia 54 2 Viggo Hansen Nrk.no 67 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

DQL Hvordan skaffe til veie data;spørre etter den? Antar relasjonen heter personer Vil bruke SQL for å hente alle personene som står oppført Id# Navn Adresse Alder 1 Kari Bremnes Bremneslia 54 2 Viggo Hansen Nrk.no 67 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

SQL:SELECT Henter data ut fra relasjonen vår Kan hente all data eller bare en kolonne Skal vi hente ut et utvalg, må vi fortelle hvilke kolonner som skal hentes ut. Husker at kolonnene har navn etter attributter

SQL SELECT * FROM personer; * Betyr alle kolonner Id# navn Adresse Alder 2 Viggo Hansen Nrk.no 67 1 Kari Bremnes Bremneslia 54 4 Hanne Hansen Oslo 26 3 Trine Jensen Mo i Rana 22 * Betyr alle kolonner Id# Navn Adresse Alder 1 Kari Bremnes Bremneslia 54 2 Viggo Hansen Nrk.no 67 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

SQL:SELECT SELECT navn, Alder FROM personer; FROM personer Viggo Hansen 67 Kari Bremnes 54 Hanne Hansen 26 Trine Jensen 22 FROM personer WHERE Id = 3; Id# Navn Adresse Alder 1 Kari Bremnes Bremneslia 54 2 Viggo Hansen Nrk.no 67 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

SQL:SELECT SELECT a,b,c: FROM a [,b,c,d] WHERE (betingelse) Velger attributter fra relasjonen vår Kan også aggregere (mer om dette senere) FROM a [,b,c,d] Hvilken relasjon? (kan ha flere) WHERE (betingelse) ”Filtrerer” tuplene a < b, f = i g LIKE ’string’ (a< b) AND (f = i) (også or, not)

QUIZ: Hvordan velge alle som er under 30 år? SELECT * FROM personer WHERE Alder < 30 Hvordan gjøre om på denne relasjonen slik at vi kan velge f. eks alle kvinner? Id# Navn Adresse Alder 1 Kari Bremnes Bremneslia 54 2 Viggo Hansen Nrk.no 67 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26 Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

SQL Velge bare kvinner SELECT * FROM personer_m WHERE Kjønn = ’k’; WHERE Kjønn <> ’m’; Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

Aggregering Brukes i SELECT-clause sum, avg, min, max, cunt sum: summen av alle verdier i en kolonne avg: gjennomsnittet min: den minste verdien max: count: teller antall forekomster

SELECT sum() Vil finne sammenlagt alder Summen av kvinnenes alder? SELECT sum( Alder ) FROM personer_m; Summen av kvinnenes alder? SELECT sum( Alder ) FROM personer_m WHERE Kjønn = ’k’; Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

SELECT avg() Gjennomsnittet av alderen til samtlige SELECT avg( Alder ) FROM personer_m; Snittet til alderen av alle under 50 SELECT avg( Alder ) FROM personer_m WHERE Alder < 50; Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

SELECT min(), SELECT max() Alderen til yngste kvinnen SELECT min( Alder ) FROM personer_m WHERE kjønn = ’k’; Alderen til eldste mann SELECT max( Alder ) FROM personer_m WHERE kjønn = ’m’; Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

Hvor mange tupler? Hvor mange kvinner? Hvor mange under 30? SELECT count( * ) FROM personer_m; Hvor mange kvinner? SELECT count( * ) FROM personer_m WHERE Kjønn = ’k’; Hvor mange under 30? SELECT count( * ) FROM personer_m WHERE Alder < 30; Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26

Join Hva om Trine Jensen kjøper en leilighet til? Anakronistiske Trine gifter seg ..får enda et sted å bo Må da oppdatere alle oppføringer dersom relasjonen skal forbli konsistent Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26 Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Jensen Mo i Rana 22 4 Hanne Hansen Oslo 26 5 Bergen Id# Navn Adresse Alder Kjønn 1 Kari Bremnes Bremneslia 54 k 2 Viggo Hansen Nrk.no 67 m 3 Trine Hansen Mo i Rana 22 4 Hanne Hansen Oslo 26 5 Bergen 6

Join Deler opp tabellen (normaliserer) Id# Navn Alder Kjønn 1 Kari Bremnes 54 k 2 Viggo Hansen 67 m 3 Trine Jensen 22 4 Hanne Hansen 26 Deler opp tabellen (normaliserer) Et attributt fra adresser er relatert til personer_m Skal noen bytte navn, trenger vi kun å forandre tabell personer_m Skal noen ha nytt bosted, legger vi til et tuppel i Adresser Id# Adresse F_key 1 Bremneslia 2 Mo i Rana 3 Nrk.no 4 Oslo 5 Bergen 6

Hvordan ”joine” Vi trenger å vite om alias: SELECT p.id, p.Navn, a.Adresse FROM personer p, Adresse a Vi ser at id forekommer i begge tabeller, vi trenger å spesifisere hvilken id vi mener Vi vil ”joine” sammen kolonnen med id fra personer og f_key fra Adresse. Skriver vi p.id der p er alias for personer og a.id der a er alias for Adresse er det ingen tvil om hvilke felter vi mener. p.id = a.f_key: Der hvor disse er identiske

Join Resultatet blir som om begge tabellene var en, dvs. den som ble normalisert Men vi får ingen oppdateringsanomalier, eller: vi slipper dem.