Query semplici
Gli argomenti di questa pagina
|
Prima di iniziare
Innanzitutto verificare che esista il file che contiene i dati di connessione al DB.
In questo file verranno indicate le sole quattro variabili necessarie a stabilire la connessione al DB prima di compiere qualsiasi azione ed è questo file che includeremo in tutte le pagine che debbono lavorare col DB. Questi dati vengono forniti dall'host che abbiamo scelto per il nostro sito.
1
|
<?php
|
Questo che segue è un frammento di codice che sarà necesario per eseguire la connessione al DB ed alla esecuzione delle Query.
1
|
<?php
|
Se si apre una connessione a MySQL all'interno del file PHP è possibile chiuderla con la funzione mysql_close(). Anche se non tutti i programmatori usano chiudere esplicitamente la connessione perchè lo trovano inutile, in quanto le connessioni MySQL sono solitamente chiuse per default alla fine dello script, è buona norma fare in modo che tutte le risorse vengano liberate dopo l'utilizzo del DB, usando la funzione mysql_close(). Ciò assicurerà che la connessione venga chiusa nella linea esatta nello script in cui si dice di chiudere.
1
|
<?php
|
Definizione
L'istruzione SELECT, più di tutte le altre istruzioni, è senz'altro l'istruzione più potente e più usata in MYSQL. E' la più potente e complessa e per mezzo di essa è possibile richiamare e mostrare i dati dalle tabelle create nel DB. L'istruzione SELECT è la base di ogni domanda che si intende rivolgere al DB. Queste domande sono tecnicamente chiamate Query.
La potenza dell'istruzione SELECT è dovuta alla sua ricca sintassi e nella sua forma più completa rappresenta senz'altro l'istruzione più complessa del linguaggio MYSQL. Le numerose parti, quasi tutte opzionali, di cui l'istruzione SELECT può essere composta, sono contraddistinte da una Clausola che svolge una determinata funzione all'interno dell'intera istruzione.
L'esecuzione della istruzione SELECT restituisce un Recordset pronto per la lettura ed è da questo oggetto che andremo a leggere i dati selezionati.
Il Recordset è una sorta di tabella virtuale in cui sono temporaneamente memorizzati i dati richiamati, tramite Query SELECT, da una o più tabelle. Proprio come una vera tabella un Resultset può contenere zero o più righe, zero o più colonne.
La posizione ed il numero delle colonne all'interno del Recordset dipende dall'ordine e numero con cui sono stati dichiarati nella istruzione SELECT. La conformazione di questa tabella virtuale sarà quindi basata sui nomi e sul tipo di colonne dichiarate nell'istruzione SELECT.
Per ogni riga prelevata dalla o dalle tabelle di origine viene inserita una nuova riga nel Recordset.
Se nella Query sono presenti instruzioni limitative le righe indesiderate verranno quindi rimosse.
Cominciamo subito nel vedere delle semplici Query usando alcune delle sintassi di base.
Per eseguire e mostrare i risultati delle Query presentate in questa pagina, verranno usati gli script mostrati nella pagina Creazione Esecuzione Visualizzare Query . Io suggerirei di usare il secondo esempio in quanto, eseguita una Query è possibile ricavare il nome dei campi coinvolti in qualsiasi Query.
Sintassi base per una Query
Partendo da questa sintassi possiamo provare come salire sù sù per query più complesse.
Questi sono i campi della tabella sql_citta e su cui eseguiremo delle prove:
In una istruzione SELECT è possibile richiamare una o più colonne da una o più tabelle. Iniziamo con una semplicissima Query.
Codice per eseguire le Query SELECT
Normalmente una Query SELECT restituisce un resultset che è una tabella virtuale. I dati di questa tabella normalmente vanno intabellati e per intabellarli lo script mostrato ad apertura della pagina va completato a partire dalla istruzione
$result = mysql_query($Query);
come mostrato qui in basso.
Prima di passare al cuore dello script che inizia col ciclo while facciamo alcune operazioni:
contiamo i record recuperati con la funzione mysql_num_fields
recuperiamo i nomi dei campi coinvolti nella Query con la funzione mysql_field_name
Quindi iniziamo a creare la tabella che ospiterà i dati visualizzando i campi letti nella intestazione della tabella.
Fatto questo possiamo passare al ciclo while per leggere e visualizzare in maniera ordinata i dati.
1
|
<?php
|
Recuperare tutti i record ed un unica Colonna
In questa Query chiederemo al DB di mostrarci le città di tutti i record registrati nella tabella
esempio 1
|
38 record trovati 15 record visualizzati
|
Recuperare tutti i record e solo alcuni campi
Una volta imparato a scrivere una istruzione SELECT, diventa facile ed intuitivo indicare più nomi di campi nel numero desiderato e nell'ordine desiderato. E' sufficiente indicare i nomi dei campi che desideriamo dopo la clausola SELECT separandoli da una virgola. In questo esempio ne indichiamo solo due.
esempio 2
|
38 record trovati 15 record visualizzati
|
Nell'esempio 3 vengono indicati tre campi.
esempio 3
|
38 record trovati 15 record visualizzati
|
Recuperare tutti i record e tutti i campi
E' possibile estrarre tutti i campi con la stessa facilità con cui se ne richiama uno solo o più. Tutti i nomi dei campi vengono indicati dopo l'istruzione SELECT avendo l'accortezza di separare gli uni dagli altri con una virgola.
L'ordine dei campi da scrivere nella clausola è ininfluente. Nell'esempio qui sotto vengono richiamati tutti i campi della tabella
sql_citta e vengono scritti nell'ordine in cui i campi sono registrati nella tabella MYSQL, ma in realtà possono essere scritti seguendo un ordine arbitrario.
esempio 4
|
38 record trovati 15 record visualizzati
|
Per richiamare tutti i campi di una tabella è possibile usare una scorciatoia che consiste nell'indicare un asterisco ( * ) dopo la clausola SELECT senza doverle per questo elencarli dopo la clausola SELECT. In questo caso le colonne verranno necessariamente restituite con l'ordine che occupano nella tabella
esempio 5
|
38 record trovati 15 record visualizzati
|
Qualificare i nomi delle colonne (o campi)
Oltre ai modi appena visti qui sopra è possibile qualificare i nomi di colonna, cioè indicare prima del nome del campo la tabella a cui essi appartengono separandolo da un punto.
Questo metodo è indicato, anzi, necessario quando con la Query si intende estrarre i record da due o più tabelle. Tuttavia non è vietato, anche se inutile, quando si lavora con una sola tabella.
esempio 6
|
38 record trovati 15 record visualizzati
|
Assegnare un ALIAS ad una colonna
Questa è un'altra possibilità che ci offre il MYSQL: dare un ALIAS, cioè un nome che più ci piace ad una o più colonne, ma in seguito vedremo che possiamo o, in certe circostanze persino obbligatorio, farlo anche con le tabelle. La visualizzazione del campo che ha avuto un alias verrà visualizzato con quel nome.
In questo esempio non sarebbe stato necessario ma è stato fatto solo per un motivo dimostrativo. Più avanti, quando si parlerà di campi calcolati, vedremo come questa pratica sia utile per la comprensione di quel che stiamo mostrando.
esempio 7
|
38 record trovati 15 record visualizzati
|