Il database relazionale Oracle utilizza Structured Query Language o SQL , per costruire e mantenere strutture di database , modificare i dati e generare report dai dati . Come con altri database che utilizzano SQL , la clausola JOIN dell'istruzione SELECT è di fondamentale importanza per Oracle , come si collega temporaneamente tabelle separate per formare strutture di dati più completi . Oracle versione 8i utilizzato un simbolo e per indicare una variazione chiamato l'outer join . Selezionare e registrazione
database relazionali Oracle utilizzano istruzione SELECT di SQL per display elenchi di dati , tra cui i campi di tabelle e risultati calcolati . SELECT ha clausole opzionali per estrarre condizionale informazioni , ordinare e creare intestazioni di gruppo e totali . Con la clausola JOIN , si crea una tabella virtuale unendo due o più tabelle separate sui campi di dati comuni . Ad esempio , una tabella degli ordini ha un numero d'ordine , il codice dell'articolo e la quantità acquistata , ma nessuna descrizione dell'oggetto. La descrizione dell'oggetto risiede nella tabella degli elementi . Per stampare un elenco di ordini con descrizioni , si uniscono gli ordini e gli articoli tabelle sul codice articolo . Unendo le due tabelle , si ha accesso ai campi in entrambi .
Inner Join
La clausola JOIN in SQL Oracle 8i ha due varianti di base , interiore e esterno . Un inner join unisce i record da una coppia di tabelle , ma se una tabella non ha record che soddisfano l'altrui , il tavolo virtuale risultante non contiene record per entrambi . Un join interno dispone di voci solo quando entrambe le tabelle sono i record corrispondenti. Ad esempio , una tabella di commenti fine ha il numero d'ordine e campi di commenti . Non tutti gli ordini sono commenti , tuttavia , se si collega la tabella ordini con la tabella di commenti ordine utilizzando un inner join , la tabella virtuale contiene solo gli ordini con commenti
esplicita outer join < br . >
un outer join include sempre i record da una delle due tabelle collegate , indipendentemente se l' altro ha le voci corrispondenti oppure no . Se il join è un join esterno sinistro , SQL include la tabella di sinistra , un join esterno destro include i record della tabella a destra . Quando l'istruzione SQL SELECT include le parole , " join esterno sinistro " o " RIGHT OUTER JOIN , " è chiamato un esplicito aderire. La seguente istruzione SELECT include tutti i record di ordini , inclusi quelli con i commenti :
SELEZIONA ORDINI.NUMERO_ORDINE , customer_code , commenti da ordini di join esterno sinistro order_comments ON ORDINI.NUMERO_ORDINE = order_comments.order_number ;
Oracle ha iniziato ad usare il formato di outer join esplicito con la versione 9i del loro software .
implicita outer join
Oltre a un outer join esplicito , Oracle 8i ha una sintassi opzionale che permette di inserire il join nella clausola WHERE . In questo caso, specificare un left outer join mettendo un simbolo più a sinistra del segno di uguale ; un join esterno destro ha il simbolo più a destra. L' istruzione SELECT fa un left outer join tra gli ordini e l'ordine di commenti tavole di prima, ma utilizza la sintassi implicita :
SELEZIONA ORDINI.NUMERO_ORDINE , customer_code , commenti da ordini , order_comments DOVE ORDINI.NUMERO_ORDINE + = order_comments . order_number ;
Anche se l'outer join implicito è più compatto e più facile da scrivere , gli esperti preferiscono il metodo esplicito quanto più aderente alla sintassi SQL standard ed evita ambiguità nel processo di join
.