? Oracle er en kommersiell relasjonsdatabase styringssystem. Som med andre store RDBMS sin , bruker den Structured Query Language for vedlikehold av databasen , og programmering. SQL språket lar deg lage avanserte søk i databasen for rapportering, legge til og endre informasjon i databasen . Disse spørsmål kan omfatte korrelert sub-spørringer , hvor dataene fra den sub- spørring avhenger hovedspørringen . SQL spørringer
En SQL-spørring er en uttalelse som undersøker dataene i databasen, og bruker den til å produsere en rapport eller oppdatere databasen . En av de enkleste spørsmål er en liste over poster i en database tabell . Det ser ut som følgende SQL-setning : en
SELECT * FROM kunder;
Dette søket gir en usortert liste over all informasjonen i " kunder " tabellen , rekord etter rekord . Ved hjelp av kraftige WHERE klausulen, kan du opprette selektive spørsmål som evaluerer dataene og listen bare de postene som samsvarer med klausul kriterier : en
SELECT * FROM kunder WHERE state = ' CA' ;
spørring viser bare kunder fra California. WHERE-leddet plass til svært komplekse forhold, blant annet resultatene av korrelert sub-spørringer , for å velge bare de dataene du ønsker.
Gå spørringer
En sub - spørring er en spørring som WHERE-leddet i seg selv har en egen spørring . Dette er en praktisk måte å kombinere informasjon fra ulike databasetabeller å produsere mer sofistikerte resultater . Følgende spørsmål produserer en liste med bare de kundene som har plassert ordre i 2011 : en
SELECT * FROM kunder WHERE customer_code IN ( SELECT customer_code fra bestillinger WHERE ORDER_DATE MELLOM '1 /1/2011 'AND '12 /31 /2011 ');
Legg merke til at dette er en spørring inne i en spørring . SELECT-setningen i parentes genererer en liste over kundekoder fra " ordre " tabellen . Den ytre spørringen bruker kundekoder å produsere en liste over kundenavn, adresser og annen informasjon. Dette er en sub- spørring men ikke en koordinert sub- spørring, . Skjønt den ytre spørring avhenger av en indre , en koordinert sub- spørring også har en indre spørring som er avhengig av den ytre
Korrelatert Gå spørringer
i en korrelert sub - spørring, avhenger hver spørring på den andre. Følgende Oracle SQL-setning produserer en liste over kundekoder , navn og kjøpesummene for de kundene som kjøper mengder falle under gjennomsnittet for alle kunder i en stat. Du har da to gjensidig avhengige spørringer, en som viser kundene, men trenger den gjennomsnittlige salgssummen mot som å sammenligne, og den andre som beregner gjennomsnittet , men trenger staten. Legg merke til bruken av bordet alias " C1 " og " C2 ". Alias- " C1 " refererer til tabellen kunden i den ytre spørringen, og "C2 " er tabellen kunden i den indre spørringen.
SELECT customer_code , navn , total_purchases , oppgi fra kunder c1 HVOR total_ innkjøp <( SELECT aVG ( total_ kjøp) FROM kunder c2 WHERE c1.state = c2.state ) ,
bruk
Korrelerte sub-spørringer presentere en nyttig metode for å velge ut informasjon fra tabeller hvor du kreve betinget sub-spørringer ved hjelp av WHERE-leddet , og kriteriet for den indre spørringen kommer fra den ytre. Som med eksempelet sub - spørring , metoden fungerer godt når den indre spørringen genererer et samlet beløp , for eksempel en gjennomsnittlig, total minimum eller maksimum, mot der den ytre spørringen sammenligner . Du kan bruke korrelasjon for sluttet sett med bord , så vel som enkle tabeller .