? Oracle er en kommerciel relationel database management system. Som med andre store RDBMS s , bruger det Structured Query Language for database vedligeholdelse, administration og programmering. Den SQL-sproget kan du oprette avancerede database forespørgsler for rapportering , tilføje og ændre oplysninger i databasen . Disse forespørgsler kan indeholde korreleret sub - forespørgsler, hvor data fra sub -query afhænger af de vigtigste forespørgslen . SQL Forespørgsler
En SQL-forespørgsel er en erklæring , der undersøger dataene i databasen, og bruger den til at udarbejde en rapport eller opdatere databasen. En af de enkleste spørgsmål er en liste over poster i en database tabel . Det ser ud som følgende SQL-sætning : Hej
SELECT * FROM kunder
Denne forespørgsel frembringer en usorteret liste over alle de oplysninger i " kunder "-tabellen , rekord ved rekord. Ved at bruge den magtfulde WHERE , kan du oprette selektive forespørgsler som evaluerer dataene og listen kun de poster, der matcher bestemmelsens kriterier : Hej
SELECT * FROM kunder WHERE state = ' CA «
forespørgsel viser kun kunder fra Californien. WHERE rumme meget komplekse forhold, herunder resultaterne af korreleret sub- forespørgsler, for kun at vælge de data, du ønsker.
Sub- Forespørgsler
En sub -query er en forespørgsel , hvor WHERE selv har sin egen forespørgsel . Dette er en bekvem måde at kombinere information fra forskellige database tabeller til at producere mere sofistikerede resultater. Følgende forespørgsel i en liste over kun de kunder, der har indgivet ordrer i 2011 : Hej
SELECT * FROM kunder WHERE customer_code IN ( SELECT customer_code FROM ordrer WHERE order_date MELLEM '1 /1/2011 "OG '12 /31 /2011 );
Bemærk at dette er en forespørgsel i en forespørgsel . SELECT-sætningen i parentes genererer en liste over kundernes koder fra " ordrer "-tabellen . Den ydre forespørgsel bruger kundernes koder til at producere en liste over kundernes navne, adresser og andre oplysninger. Dette er en sub- query , men ikke en koordineret sub- query , . Selvom ydre forespørgsel afhænger den inderste , en koordineret sub- query har også en indre forespørgsel, der afhænger af den ydre
Korreleret sub- Forespørgsler
en korreleret sub- forespørgsel, hver forespørgsel afhænger på den anden. Følgende Oracle SQL-sætning i en liste over kundernes koder , navne og køb totaler for de kunder , hvis køb beløbene falder under gennemsnittet for alle kunder i en stat. Du har derefter to indbyrdes afhængige forespørgsler , en som opregner de kunder, men har brug for den gennemsnitlige salg tallet mod at sammenligne , og det andet , der beregner gennemsnittet , men har brug for staten. Bemærk brugen af bordet aliaser "C1 " og " c2 . " The alias "C1 " henviser til kunden tabellen i den ydre forespørgsel , og " c2 " er kunden tabellen i den indre forespørgslen .
SELECT customer_code , navn, total_purchases , stat FROM kunder c1 WHERE total_ køb <(Vælg avg ( total_ indkøb) fra kunder c2 WHERE c1.state = c2.state ),
Brug
< br >
Korreleret sub- forespørgsler udgør en nyttig metode til at udvælge information fra borde, hvor du kræver betingede sub- forespørgsler ved hjælp af WHERE klausul, og kriteriet for den indre forespørgslen kommer fra den ydre én. Som med eksemplet sub- forespørgsel, fungerer metoden godt, når den indre forespørgslen genererer et samlet beløb , som et gennemsnit , total , minimum eller maksimum , mod hvilken din ydre forespørgsel sammenligner. Du kan bruge korrelation for tiltrådte sæt tabeller samt enkelte borde.