utentionline
searchengine
quicklinks
WebDesigner
Tutorials ASP
Tutorials XHTML
Tutorials Javascript
Tutorials HTML-CSS
Tutorials SQL
Tutorials PHP & MySQL
AJAX applicazioni web
Web Development
Template & Layout
Non solo Web :: Blog
Portfolio Lavori
Who is Yappy?
Benvenuto nella Newsletter
libririviste
Calendario motoGP 2007
newscorsi
FAQ & Domande
newscorsi
Web Designer gratuitoCorso Web Designer Gratuito per creare siti internet trucchi, consigli, esempi pratici e template per diventare un vero web designer.
Seo Extreme 2007
Al corso nazionale "Seo Extreme 2007" troverai le ultime tecniche e strategie di Posizionamento nei motori di ricerca. Parteciperai ad un corso di alto livello dedicato a chi vuole fare posizionamento...
libririviste
Web Design Facile"Web Design Facile" di Davide Vasta è una guida pratica che conduce il lettore, passo per passo attraverso la realizzazione di un sito Internet: dalla creazione di un prototipo da mostrare al cliente fino al suo sviluppo definitivo.
WebDesigner 22
Web Designer Magazine n.22. Flash in prima linea, conoscere l'ultima versione del programma Macromedia. Inserire video Flash nelle vostre pagine. In primo piano "diventare Designer di successo".
Web Marketing
Trucchi headlines efficaci 8Trucchi headlines efficaci 7
tagclouds
Sessioni & Protezione ModRewrite PHP Templates & Layout news n.11 - 07 gennaio 2007 Motomondiale 2006 Controllo di un FORM in ASP il Bignami del Web Menu & Usabilità New YappyWeb Acmeformazione.it Benefici e Lavori creativity day 2006 Trucchi headlines efficaci Tutorials PHP & MySQLsyndicate
RSS 2.0Atom feed
CreativeCommons
SQL Filtri sui dati
[19 Giu 2004]Inizia con questa lezione una panoramica sui comandi SQL - Structured Query Language disponibili per aggiornare e consultare i database relazionali. La caratteristica di base è ovviamente quella di poter essere utilizzato con MS Access sia c
Inizia con questa lezione una panoramica sui comandi SQL disponibili per aggiornare e consultare i database relazionali. La caratteristica di base è ovviamente quella di poter essere utilizzato con MS Access sia con MySQL...
Partiremo dai comandi più semplici fino a raggiungere quelli più complessi, durante i prossimi articoli, che permettono di estrarre dati da più tabelle o addirittura di creare tabelle ed interi database.
L'SQL (Structured Query Language) è il linguaggio utilizzato per estrarre, modificare, inserire e cancellare dati all'interno di database che lo supportano.
Selezione e ordinamento (SELECT, WHERE, ORDER BY)
Il comando SQL più frequente, è l'estrazione di tutti i dati/records contenuti all'interno di una tabella. "SELECT * FROM clienti" Nella stringa SQL appena descritta, carattere '*' difatti rappresenta un simbolo chiave per "tutti i campi".
In SQL è possibile estrarre solo alcuni dei campi utilizzando invece la sintassi SELECT campo1, campo2, campo3 FROM tabella SELECT Nome, Cognome, eta FROM clienti Dal comando appena descritto è possibile quindi estrarre solo i campi effettivamente necessari velocizzando la consultazione del database specialmente per tabelle piuttosto complesse.
à? possibile cambiare l'intestazione delle colonne con la parola chiave AS. SELECT cognome AS rag_sociale FROM clienti Dopo il codice appena descritto è possibile utilizzare il codice per veder stampare nella pagina il contenuto del campo cognome della tabella "clienti".
à? possibile migliorare la ricerca filtrando i dati da estrarre con la parola riservata WHERE secondo la sintassi SELECT * FROM tabella WHERE condizione. L'espressione che definisce la condizione filtra i record che la verificano trascurando gli altri. SELECT * FROM clienti WHERE eta > 30 Se i dati da ottenere devono verificare più condizioni utilizziamo le parole chiave AND oppure OR. SELECT * FROM clienti WHERE era>50 OR citta='Firenze' Nel caso dell'ultimo comando SQL è possibile sostituirlo con l'equivalente
SELECT * FROM clienti WHERE eta > 30 AND eta <= 50SELECT * FROM clienti WHERE eta BETWEEN 31 AND 50 La parola chiave BETWEEN difatti permette di definire un intervallo fra due valori da far rispettare ai dati in uscita dal database.
Oltre a cercare tutti i record registrati con una determinata città? è possibile definire un pattern di ricerca con la parola riservata LIKE. La sintassi è SELECT colonna FROM Tabella WHERE Colonna LIKE Pattern. SELECT * FROM clienti WHERE citta LIKE 'Fir%' La stringa SQL cerca tutti i clienti in cui il nome della città? inizia con "Fir" il segno di percentuale % è un carattere jolly. SELECT * FROM clienti WHERE citta LIKE '%ire%' La stringa appena descritta estrae tutti i records in cui il campo citta contiente la sequenza delle lettere "ire" in qualunque posizione.
Prima di continuare con la nostra panoramica è bene analizzare un paio di aspetti circa l'utilizzo degli apici all'interno della stringa SQL o i comandi logici necessari a filtrare i dati.
| Operatore | Valore logico |
| = | Uguale (confronto positivo) |
| <> | Diverso da (confronto negativo) |
| > | Maggiore |
| &glt; | Minore |
| >= | Maggiore o uguale |
| <= | Minore o uguale |
| BETWEEN | Tra (all'interndi un certo intervallo) |
| LIKE | Pattern di ricerca |
All'interno della serie di comandi per estrarre i contenuti di un database in alcune stringhe abbiamo fatto uso degli apici mentre altre meno. La differenza è interamente contenuta nel database e di come sono stati definiti i campi.
Se il filtraggio avviene secondo campi numerici (inclusi i contatori) non dobbiamo utilizzare gli apici.
Al contrario se i campi sono di tipo testo (testo, memo o date) gli apici sono obbligatori.
Se non si rispettano queste due condizioni la richiesta al database si conclude con l'errore:
Microsoft OLE DB Provider for ODBC Drivers errore "80040e07'
[Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio. Spesso è necessario concatenare la stringa SQL al contenuto di una variabile, anche in questo caso il criterio appena visto deve essere rispettato.nome_citta=request("citta")
[...]
stringa_SQL="SELECT * FROM clienti WHERE citta ='" & nome_citta & "'" Se nella variabile nome_citta è contenuta la stringa Firenze il contenuto della variabile stringa_SQL risulta infatti SELECT * FROM clienti WHERE citta ='Firenze'.Se invece il campo è di tipo numerico
anni=request("anni")
[...]
stringa_SQL="SELECT * FROM clienti WHERE eta=" & anni Difatti se nella variabile anni è contenuto il numero 34 il contenuto finale della stringa_SQL risulta SELECT * FROM clienti WHERE eta=34Nel primo caso occorre concatenare anche gli apici al fine di rispettare la condizione appena descritta.
COUNT :: Conteggio record
La stringa_SQL SELECT COUNT(*) AS numero FROM clienti ci permette con un successivo comando restituisce il numero totale di record inseriti nella tabella "clienti".La stringa_SQL SELECT COUNT(cap) AS numero FROM clienti un successivo comando restituisce il numero totale di record inseriti nella tabella "clienti" che hanno il campo cap non vuoto.
La stringa_SQL SELECT COUNT(*) AS numero FROM clienti WHERE citta='Firenze' il comando restituisce il numero totale di record che verificano la condizione che la città? di appartenenza è 'Firenze'.
DISTINCT :: Evitare ripetizioni
Per evitare le ripetizioni di records o campi identici la stringa_SQL SELECT * DISTINCT citta FROM clienti permette di estrarre un solo record per ogni città?.
Funzioni :: calcoli veloci
A livello SQL sono disponibili alcune semplici funzioni per effettuare calcolisui dati contenuti in un database. La sintassi generale per l'uso di queste funzioni è SELECT funzione(campo) FROM tabella| Funzione | Descrizione |
| AVG | Calcola il valor medio tra quelli presenti in una colonna inclusi i campi vuoti. |
| MAX | Restituisce il valore massimo |
| MIN | Restituisce il valore minimo |
| SUM | Somma i valori di una colonna |
Ad esempio la stringa SELECT MAX(eta) AS max_eta FROM clienti il comando restituisce l'età? maggiore dei clienti memorizzati nel database.
Al contrario la stringa SELECT MIN(eta) AS min_eta FROM clienti il comando restituisce l'età? minore dei clienti memorizzati nel database.
Analogamente le stringhe SELECT AVG(eta) AS medio_eta FROM clienti e SELECT SUM(eta) AS somma_eta FROM clienti restituiscono rispettivamente il valore medio e la somma delle età? dei clienti.


