> Cerca
 

> Search Blog
 

> Search Google
Google

Web
www.delymyth.net
wiki.delymyth.net
community.delymyth.net

> Amazon Search


> Cerca Libri/DVD



> MyBlogLog

> Empty


 
Links Consigliati

 
 

Entry Query

entry Da DElyMyth Wiki  | 

Una Query e' un'istruzione passata ad un Database in linguaggio SQL, ed e' lo strumento utilizzato per eseguire virtualmente qualunque tipo di operazione sul Database stesso.

E' possibile effettuare diverse operazioni con le Query SQL, le piu' diffuse sono quelle che riguardano la ricerca di informazioni in un Database (Select), seguite poi dalle Query che servono per inserire (Insert) o modificare (Update) i dati presenti sul Database.
Di seguito verranno proposti esempi per questi tipi di Query.
Le Query di Select hanno piu' opzioni rispetto alle altre, per permettere estrazioni di dati piu' mirate.

Table of contents

Comandi

Seguono i comandi piu' utilizzati nella scrittura di Query, indicandone esempi di utilizzo.

From

Il comando From, utilizzato all'interno di Query di Select o di Delete, permette di indicare al Database su quali tabelle si desidera eseguire la Query stessa.

Where

Utilizzata sia in Query di Insert che in Query di Update, la Clausola Where e' cio' di cui si deve tenere maggior conto quando si scrive una Query.
Questa infatti permette di affinare la ricerca e restringere il campo.
Una Clausola Where ben progettata permette di effettuare Query molto efficaci e di costruire Viste molto utili.

Order By

L'istruzione Order By, in una Query di Select, indica al Database di ordinare l'Output in un certo modo, ad esempio l'istruzione Order by <colonna> desc, indica al Database che vogliamo l'Output ordinato in base alla Colonna <colonna> e ordinato in modo discendente, ovvero dal piu' "alto" al piu' "basso".

Group By

Analogamente all'istruzione Order By, anche Group By puo' essere utilizzata solo in Query di Select.
Permette di effettuare un raggruppamento dei Record restituiti in base ad una o piu' Colonne, separate da virgole.

Query di Select

Utilizzate per eseguire ricerche e selezioni su Tabelle e Viste, le Query di Select sono le piu' usate e quelle che e' necessario conoscere meglio.
In queste Query vengono utilizzati tutti i comandi sopra riportati, per poter affinare la ricerca e visualizzare i Record in maniera piu' utilizzabile anche da parte di eventuali altri utenti (ad esempio nello sviluppo di Applicazioni basate su Database).

Una Query di Select ha questa sintassi:
SELECT <colonna1>, <colonna2> as <alt2>, <colonna3>,... FROM <tabella1> <tab1>, <tabella2> WHERE <colonna1> [LIKE|=|...] <valore1> AND <alt2> [LIKE|=|...] <colonna3> ORDER BY <colonna1>, <alt2> GROUP BY <colonna1>, <alt2> ASC

Una Query di questo genere, come si puo' notare, contiene tutti i comandi e le istruzioni possibili.
E' possibile che una Query di Select, a causa delle Clausole Where inserite, diventi molto lunga, in questo caso e' sufficiente andare a capo prima di ogni "AND" in modo da ottenere una Query piu' leggibile.

Query di Insert

Una Query di Insert serve per inserire dati in una Tabella, ed ha questa forma:

INSERT INTO <tabella> (<arg1>, <arg2>,... <argn>) VALUES (<val1>, <val2>,... <valn>)

Il linguaggio SQL e' Case Insensitive per cio' che riguarda la Sintassi (in maiuscolo nell'esempio sopra), i nomi delle Tabelle e i nomi dei Campi, mentre e' Case Sensitive per quanto riguarda i valori inseriti all'interno delle diverse Celle.

Query di Update

Una Query di Update serve per modificare Record gia' presenti all'interno delle Tabelle.
La Sintassi SQL e' la seguente:

UPDATE <tabella> SET <arg1>=<val1> WHERE <condizione>

In questo caso vediamo comparire una Where, che indica la Condizione che deve verificarsi affinche' la Query venga eseguita e la Tabella aggiornata.

Subquery

Ogni tanto, all'interno di Clausole Where, e' necessario effettuare confronti piu' complessi che non i classici confronti tra una Colonna e un valore.
Potrebbe essere necessario, ad esempio, verificare che i valori in una determinata Colonna siano come i valori di un'altra Colonna che soddisfi certi particolari criteri.
In questo caso si avra' la necessita' di confrontare i valori di una Colonna con i risultati di un'altra Query.

E' possibile eseguire questa operazione in questo semplice modo:
SELECT <colonna1>, <colonna2>, ... FROM <tabella>
WHERE <colonna1> IN (SELECT...

E' importante notare che:

  • Il numero di Colonne restituite dalla Subquery deve essere uno. In alternativa il confronto deve essere effettuato tra Colonne inserite tra parentesi nella Query principale.
  • La Subquery deve essere tra parentesi.

Utilizzo di Funzioni

All'interno di una Query di Select e nelle clausole Where, e' possibile, e anzi consigliato in caso di Query complesse, utilizzare Funzioni Stringa (per l'elaborazione e la manipolazione delle Stringhe), Funzioni Numeriche (Per l'elaborazione di numeri e calcoli) e Funzioni Data (per l'elaborazione e la manipolazione di Date.
Le Funzioni possono essere combinate tra loro a piacimento, rispettando ovviamente le Regole di Precedenza Matematiche, per ottenere un Output piu' completo e leggibile.

L'Opzione DISTINCT

Utilizzabile con tutte le Funzioni di Gruppo, l'opzione DISTINCT permette di tenere conto solo di valori unici all'interno del gruppo selezionato.
Ammettendo di utilizzare una Tabella che contenga informazioni su vari Libri, un esempio e' dato da questa Query:

  • SELECT COUNT (DISTINCT Autore) FROM LIBRI
    • Restituira' il numero di differenti Autori presenti nella nostra tabella.
  • SELECT COUNT (Autore) FROM LIBRI
    • Restituira' il numero di Record dove la Colonna Autore sara' stata valorizzata (non NULL).

Se viene omessa l'opzione DISTINCT, sara' come se venisse inserita l'opzione ALL, che e' la sua opposta e rappresenta il comportamento predefinito.

Bibliografia Oracle

Ultima modifica il 14:27, Mar 6, 2006.
Questo articolo è stato letto 2452 volte.

 
Ultima modifica il 14:27, Mar 6, 2006.
Questo articolo è stato letto 2452 volte.

  A proposito di DElyMyth Wiki Disclaimers