? Oracle är en kommersiell relationsdatabas management system . Som med andra storskaliga RDBMS s , använder den Structured Query Language for underhåll av databasen , administration och programmering . SQL-språket kan du skapa avancerade databasfrågor för rapportering , lägga till och ändra information i databasen . Dessa frågor kan omfatta korrelerade sub - frågor , där data från sub - query beror på huvudfrågan . SQL-frågor
En SQL-fråga är ett uttalande som undersöker data i databasen och använder den för att producera en rapport eller uppdatera databasen . Ett av de enklaste frågorna är en lista över poster i en databastabell . Det ser ut som följande SQL-uttryck :
SELECT * FROM kunder ,
Denna fråga skapar en osorterad lista med alla uppgifter i " kunder " bord , rekord efter rekord . Genom att använda den kraftfulla WHERE kan du skapa selektiva frågor som utvärderar uppgifterna och lista endast de poster som matchar klausulen kriterier :
SELECT * FROM kunder WHERE state = ' CA ' ,
query visar bara kunder från Kalifornien . Instruktionen WHERE rymmer mycket komplexa förhållanden , inklusive resultaten av korrelerade sub- frågor , för att bara välja de data du vill .
Sub - Frågor
En sub - query är en fråga i vilken WHERE själv har sin egen fråga . Detta är ett bekvämt sätt att kombinera information från olika databastabeller för att producera mer sofistikerade resultat . Följande fråga ger en lista över endast dessa kunder som har gjort beställningar under 2011 :
SELECT * FROM kunder WHERE customer_code IN ( SELECT customer_code FRÅN beställningar där ORDER_DATE MELLAN '1 /1/2011 ' OCH '12 /31 /2011 ');
Observera att detta är en fråga i en en fråga. SELECT-uttrycket inom parentes genererar en lista över kundernas koder från " order " bord . Den yttre frågan använder kundens koder för att producera en lista med kundens namn, adresser och annan information . Detta är en sub - query men inte ett samordnat sub - query , . Om den yttre frågan beror på det innersta , en samordnad sub - query också har en inre fråga som beror på den yttre
korrelerad sub - frågor
en korrelerad sub - query , beror varje fråga på den andra . Följande Oracle SQL-sats skapar en lista med kundens koder , namn och summor köpa för de kunder vars köp belopp understiger genomsnittet för samtliga kunder i en stat . Du har då två ömsesidigt beroende frågor , en som listar kunder men behöver den genomsnittliga försäljningssiffran mot att jämföra , och den andra , som beräknar medelvärdet men behöver staten . Observera användningen av Tabellalias " C1 " och " C2 . " The alias " C1 " refererar till kunden tabellen i yttre frågan , och " C2 " är kunden tabellen i den inre frågan .
VÄLJ customer_code , namn , total_purchases , stat från kunder c1 WHERE total_ inköp < ( SELECT AVG ( total_ inköp) från kunder c2 WHERE c1.state = c2.state ) , Addera Använd
Korrelerad sub- frågor utgör en användbar metod för att välja ut information från tabeller där du behöver villkorade sub- frågor med hjälp av WHERE , och kriteriet för den inre frågan kommer från den yttre. Som med exemplet sub - query , fungerar metoden bra när den inre frågan genererar ett sammanlagt belopp , som ett genomsnitt , totalt , minimum eller maximum , mot vilken din yttre frågan jämförs . Du kan använda korrelation för förenade uppsättningar av tabeller samt enstaka tabeller .