Chi Partecipa Oracle 8i

September 17

Chi Partecipa Oracle 8i


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 ha utilizzato un segno più per indicare una variazione chiamata outer join.

Selezionare e Join

database relazionali Oracle utilizzano SELECT di SQL per visualizza elenchi di dati, tra cui i campi in 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 di ordini ha un numero d'ordine, codice articolo e quantità acquistate, ma nessuna descrizione. La descrizione dell'oggetto risiede nella tabella degli elementi. Per stampare un elenco di ordini con descrizioni, si uniscono gli ordini e articoli tavoli sul codice dell'articolo. Unendo le due tabelle, si ha accesso ai campi in entrambi.

INNER JOIN

La clausola JOIN in Oracle 8i SQL ha due varianti di base, interni ed esterni. Un join interno combina record da un paio di tavoli, ma se una tabella non ha nessun record che soddisfano gli altri di, il tavolo virtuale risultante contiene nessun record per entrambi. Un join interno ha solo le voci in cui entrambe le tabelle hanno record corrispondenti. Ad esempio, un tavolo commenti ordine è il numero d'ordine e campi commenti. Non tutti gli ordini hanno commenti, tuttavia; se si collega la tabella degli ordini con la tabella di commenti dell'ordine utilizzando un inner join, la tabella virtuale contiene solo gli ordini con commenti.

Esplicita Outer Join

Un outer join include sempre i record di una delle due tabelle collegate indipendentemente dal fatto che l'altro ha voci corrispondenti o meno. Se il join è un join esterno sinistro, SQL include la tabella di sinistra; un diritto join esterno include i record della tabella a destra. Quando l'istruzione SQL SELECT include le parole "LEFT OUTER JOIN" o "RIGHT OUTER JOIN," si parla di un esplicito join. La seguente istruzione SELECT include tutti i record d'ordine, compresi quelli con i commenti:

SELEZIONE ORDINI.NUMERO_ORDINE, customer_code, Commenti degli ordini SINISTRA outer join order_comments SU ORDINI.NUMERO_ORDINE = order_comments.order_number;

Oracle ha iniziato ad usare l'esterno esplicito join formato con la versione 9i del loro software.

Implicita Outer Join

Oltre a una esterna esplicito join, Oracle 8i ha una sintassi opzionale che permette di inserire il join nella clausola WHERE. In questo caso, si specifica un join esterno sinistro mettendo un segno più a sinistra di un segno di uguale; un diritto outer join ha il simbolo più a destra. Questa istruzione SELECT fa un join esterno sinistro tra gli ordini e l'ordine commenta tabelle come prima, ma usa la sintassi implicita:

SELEZIONE ORDINI.NUMERO_ORDINE, customer_code, Commenti degli ordini, order_comments DOVE ORDINI.NUMERO_ORDINE + = order_comments.order_number;

Anche se l'esterno implicita join è più compatto e più facile da scrivere, gli esperti preferiscono il metodo esplicito quanto attiene più strettamente alla sintassi standard SQL ed evita ambiguità del processo di unirsi.