Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Mer om SQL-spørringer og funksjoner In 135 Datamodellering og Databaser.

Liknende presentasjoner


Presentasjon om: "Mer om SQL-spørringer og funksjoner In 135 Datamodellering og Databaser."— Utskrift av presentasjonen:

1 Mer om SQL-spørringer og funksjoner In 135 Datamodellering og Databaser

2 Logisk utføring av spørringer 1. Produktet av alle tabeller i FROM dannes 2. WHERE blir utført for å eliminere rader som ikke fyller vilkåret 3. Radene grupperes ved hjelp av kolonnene i GROUP BY 4. Grupper som ikke tilfredsstiller having blir eliminert 5. Uttrykkene i SELECT beregnes 6. Dersom vi har SELECT DISTINCT blir duplikatrader eliminert 7. UNION gjøres etter at hver sub-select er beregnet 8. Radene sorteres i følge ORDER by (I virkeligheten optimaliseres det ved at en annen rekkefølge (2 før 1) blir brukt, men virkningen skal være den samme)

3 Formatering av tall  to_char omdanner tall til streng. Du kontrollerer formatet med en formatstring to_char(1234) gir '1234' to_char(0.1415,'9.00') gir '.14' to_char(0.1415,'00.00) gir '00.14') to_char(3120)

4 Å legge inn dato i et date-felt  Du kan enten bruke en dato-litteral  UPDATE EXAMPLE SET BDAY=DATE ' '  Eller du kan bruke to_date funksjonen  to_date tolker datoen som angitt i en format-string, se til høyre  UPDATE EXAMPLE SET BDAY= TO_DATE(12.1,'DD.MM');  SELECT BDAY FROM EXAMPLE; BDAY Dato- format Betydning MMMånednr MONJAN Dukedagnr DDmåneddagnr DDDårdagnr DYTUE YYSiste to siffer i år YYYYÅr med fire siffer HH24Time på dagen 0-23 MIMinutt SSSekunder Når bare dag og måned er oppgitt, brukes årets år

5 Å få ut dato med ønsket format  SELECT TO_CHAR(BDAY,'DD/MM/YY') FROM EXAMPLE;  24/04/05  SELECT TO_CHAR (BDAY,'MON DD. YYYY') FROM EXAMPLE;  APR Hvordan får du vist datoen som år med fire siffer, ukenummer og ukedag? 17/SØNDAG Bruk fantasien! Dato- format Betydning MMMånednr MONJAN Dukedagnr DDmåneddagnr DDDårdagnr DYTUE YYSiste to siffer i år YYYYÅr med fire siffer HH24Time på dagen 0-23 MIMinutt SSSekunder SELECT TO_CHAR(BDAY,'WW/DAY') FROM EXAMPLE;

6 Numeriske funksjoner +-*/ abs(x)absoluttverdi ceil(x)avrunding oppover floor(x)avrunding nedover mod(x,y)rest ved divisjon av x med y power(x,y)xyxy sqrt(x)kvadratrota av x

7 Aggregat- og listefunksjoner min(tallkollonne) max(tallkollonne) sum(tallkollonne) avg(tallkollonne) least(x,y,z,..)minste av verdiene i lista greatest(x,y,z,..)største av...

8 Datofunksjoner + -Legge til (trekke fra) dager til dato eller d2-d1=dager mellom d1 og d2 sysdateNåværende klokkeslett og dato. next_day(d,day)Gir dato til første tirsdag etter dato next_day(dato, 'tirsdag') add_months(d,antall ) Gir dato antall måneder seinere last_day(d)Siste dato i måneden for d months_between(d2, d1) Antall måneder mellom datoene d1 og d2 trunc(d)Runder ned til midnatt least(d1,d2,d3,..)Første av datoene

9 Eksempler  Å finne første dato i en kollonne  SELECT MIN( ) FROM ;  Å finne dager mellom to datoer  SELECT dato2-dato1 AS varighet FROM...  Å finne en dato 15 dager etter en dato  SELECT fakturadato+15 AS betalingsfrist...  Å finne antall dager siden en hendelse  SELECT TRUNC(sysdate)-FDATO AS dager

10 Strengfunksjoner x||ySetter sammen to strenger xy (Konkatenering som & i VB) substr(’Per’,1,2)Henter ut en substring som starter i bokstav 1 og har en lengde på to tegn ’Pe’ lower(’Per’)Gjør om strengen til små bokstaver. ’per’ Motsatt upper() instr(name, ' '),Finner forekomst av en streng x i en annen streng y. Returnerer posisjon for hvor x begynner i y round(x,2)Runder av x til to desimaler coalesce(x,’ikke registrert’) Hva sier vi hvis x er null? Hvis x er null vises ’ikke registrert’ ellers vises x CASE WHEN poeng>8.5 THEN ‘Supert' ELSE ‘Brukbart' Viser ’Supert’ hvis poeng er større enn 8.5. Ellers vises ’Brukbart’

11 Underspørringer (subquery)  Tre typer underspørringer:  Verdispørring  gir én verdi som resultat  SELECT MAX(PRIS) FROM..  brukes i stedet for en verdi i WHERE-delen  Kolonnespørring  Gir én kolonne av verdier som resultat  SELECT AKSJEKODE FROM AKSJE WHERE...  Kan brukes i stedet for en liste i WHERE-delen  Tabellspørring  Gir én tabell som resultat  Kan brukes i stedet for en tabell i FROM-delen  SELECT AKSJEKODE, AKSJENAVN FROM AKSJE WHERE PE>12  Bruk av underspørringer  Spørringer som slår sammen resultater UNION:  Tabellspørring UNION Tabellspørring krever at tabellene har samme kolonner og viser radene fra de to spørringene i én tabell.  Underspørring er et trinn på veien  SELECT X,Y, Z FROM WHERE...  SELECT X,Y,Z FROM WHERE X in  SELECT X,Y,Z FROM WHERE X=

12 Underspørringer (Subquery)  Underspørringer gjør det mulig å dele opp kompliserte spørringer i flere enkle spørringer (Splitt og behersk)  Arbeidet blir lettere med underspørringer  Med underspørringer, kan man arbeide trinnvis  Det er forskjell mellom databasemotorer når det gjelder mulighet for underspørring  Har du ikke underspørringer blir det vanskeligere å formulere kompliserte spørringer  View er et alternativ til underspørringer  Temporære tabeller er et annet alternativ til underspørring


Laste ned ppt "Mer om SQL-spørringer og funksjoner In 135 Datamodellering og Databaser."

Liknende presentasjoner


Annonser fra Google