A
B
C
CREATE TABLE
Istruzione MySQL per creare una tabella in un archivio di dati.
CREATE TABLE nometabella (nomecolonna1 tipocolonna1, nomecolonna2 tipocolonna2, nomecolonna3 tipocolonna3, ..., ...., nomeultimacolonna tipoultimacolonna)
La nostra tabella da creare prevede un nome e noi la chiamiamo tabella1; nella creazione della tabella dobbiamo anche specificare il tipo di dati da memorizzare; possiamo usare come tipi di dati:
tipo | spiegazione |
INT(cifrenumerointero) | INT
indica che è un numero intero; tra parentesi mettiamo il numero di
cifre di questo numero;
esempio: INT(3) indica che il numero intero è di 3 cifre |
VARCHAR(numerocaratteri) | indica che si tratta di
valori alfanumerici cioè di parole e non di numeri; anche qui dobbiamo
specificare la lunghezza che può essere al massi di 255 caratteri.
esempio VARCHAR(50) indica che il dato che andremo a mettere sarà di tipo alfanumerico e avrà la lunghezza di 50 caratteri. |
TINYTEXT | Il contenuto è di tipo stringa con lunghezza massima di 255 caratteri; non va messo il numero tra parentesi |
TEXT | Il contenuto è di tipo stringa con lunghezza massima di 65.535 caratteri; non va messo il numero tra parentesi |
MEDIUMTEXT | Il contenuto è di tipo stringa con lunghezza massima di 16.777.215 caratteri; non va messo il numero tra parentesi |
LONGTEXT | Il contenuto è di tipo stringa con lunghezza massima di 4.294.967.295 caratteri; non va messo il numero tra parentesi |
Il nostro comando completo in MySQL sarà:
CREATE TABLE tabella1 (cognome VARCHAR(50), nome VARCHAR(50), comune VARCHAR(50), classe VARCHAR(50), scuola VARCHAR(50) )
cioè: crea una tabella di nome tabella1; la prima colonna si chiama cognome, è di tipo carattere e il dato da memorizzare sarà lungo massimo 50 caratteri; la seconda colonna si chiama nome, è di tipo carattere e il dato da memorizzare sarà lungo massimo 50 caratteri...
D
E
F
G
H
I
INSERT INTO
Istruzione MySQL per memorizzare un dato in una tabella già presente in un archivio di dati.
INSERT INTO nometabella (nomecolonna1, nomecolonna2, ..., ..., nomeultimacolonna) VALUES ('datocolonna1', 'datocolonna2',...,..., 'datoultimacolonna')
Volendo inserire i dati della prima riga della tabella seguente di nome tabella1:
cognome | nome | comune | classe | scuola |
Bianchi | Giovanni | Milano | terza | ITIS |
la nostra richiesta sarà:
$richiesta="INSERT INTO tabella1 (cognome, nome, comune, classe, scuola) values ('Bianchi', 'Giovanni', 'Milano', 'terza', 'ITIS')";
In questa richiesta:
INSERT INTO tabella1 Indica che i dati da inserire vanno messi nella tabella che si chiama tabella1; segue una struttura tra parentesi tonde;
(cognome, nome, comune, classe, scuola)
nelle prime parentesi mettiamo i nomi di ciascuna colonna; non siamo obbligati a metterli tutti ma solo quelli che noi vogliamo riempire con i dati contenuti nelle seconde parentesi tonde.
VALUES ('Bianchi', 'Giovanni', 'Milano', 'terza', 'ITIS')"
Indica i dati da memorizzare; ogni dato va messo nello stesso ordine previsto dalle prime parentesi tonde; il dato va messo tra apici, a meno che non si tratti di un numero. Il dato può essere anche una espressione matematica su dati inseriti nelle colonne precedenti; il dato può essere contenuto anche in una variabile php precedentemente assegnata.
Infatti avremmo anche potuto scrivere:
$cognome="Bianchi";
$nome="Giovanni";
$comune="Milano";
$classe="terza";
$scuola="ITIS";
$richiesta="INSERT INTO tabella1 (cognome, nome, comune, classe, scuola) VALUES ('$cognome', '$nome', '$comune', '$classe', '$scuola')";
J
JOIN
Istruzione MySQL per unire più tabelle in fase di ricerca dei dati; è unita a SELECT.
L
M
mysql_connect
Istruzione php che effettua una connessione ad un archivio di dati MySQL
mysql_connect ($nomehost, $utente, $password)
E' una istruzione che stabilisce una connessione al sistema di gestione dei database presenti su un certo server.
Esempio
$connessione = mysql_connect ($nomehost, $utente, $password);
mette nella variabile php $connessione il risultato di un comando che effettua la connessione al server che gestisce il database.
Se la connessione ha successo nella variabile $connessione vi sarà il valore "TRUE" altrimenti vi sarà il valore "FALSE".
Per quanto riguarda $connessione dobbiamo dire che per poter operare su un database occorre avere le necessarie autorizzazioni. Se non si possiedono le necessarie autorizzazioni non si può proseguire nella gestione del nostro archivio e non possiamo creare la nostra tabella. Le autorizzazioni sono contenute in una serie di parole da conoscere per poter accedere al nostro archivio elettronico con sicurezza e sono le seguenti:
1 - Nome del server su cui è ospitato il nostro archivio; tale nome va memorizzato in una variabile php.
Esempio
$nomehost = "nomemioserverdeldatabase";
cioè memorizzo nella variabile $nomehost il nome del server che contiene e gestisce il database.
2 - Nome dell'utente del singolo archivio; in pratica sullo stesso server esistono più archivi; ad ogni archivio è associato un utente che lo può utilizzare; questo utente deve avere un suo nome utente e una sua password; lo stesso utente può accedere a più database.
Esempio
$utente = "nomeutente";
cioè memorizzo nella variabile $utente il nome dell'utente che vuole accedere al database.
3 - Parola di accesso o password ; va unita al nome dell'utente per poetr accedere al dabase.
Esempio
$parola = "miapassword";
cioè memorizzo nella variabile $parola la password dell'utente che vuole accedere al database.
4 - Nome dell'archivio al quale si vuole accedere.
Esempio
$nome = "nomedeldatabase";
cioè memorizzo nella variabile $nome il nome dell'archivio che contiene i dati e che quindi deve contenere la nostra tabella.
Queste quattro variabili deve essere tutte note prima di aprire una connessione al nostro database. Una volta note queste quattro variabili possiamo aprire una connessione al database mediante l'istruzione php mysql_connect.
mysql_query
Istruzione php per inviare una richiesta ad un archivio di dati MySQL.
mysql_query (stringarichiesta, stringaconnessione)
E' una istruzione che invia una richiesta ad un archivio di dati.
Esempio
$risultato = mysql_query($richiesta, $connessione);
mette nella variabile php $risultato il risultato di un comando in MySQL contenuto nella variabile $richiesta.
$connessione è una variabile che fa riferimento alla connessione che si vuole attivare; se viene omessa essa fa riferimento ad una precedente connessione che deve essere comunque attiva in quel momento.
Questo modo di procedere vale sempre per qualunque richiesta; se la richiesta fatta viene eseguita nella variabile $risultato vi sarà il valore "TRUE" altrimenti vi sarà il valore "FALSE".
Volendo noi creare una tabella metteremo:
$richiesta="CREATE TABLE tabella1 (cognome VARCHAR(50), nome VARCHAR(50), comune VARCHAR(50), classe VARCHAR(50), scuola VARCHAR(50) ) ";
cioè la nostra richiesta sarà di creare una tabella come la vogliamo noi.
mysql_select_db
Istruzione php che sceglie l'archivio di dati da utilizzare.
mysql_select_db ($nomedeldatabase, $connessione)
E' una istruzione che sceglie il database da utilizzare; il nome della connessione è facoltativo, in quanto viene utilizzata l'ultima connessione attiva.
Esempio
$selezione = mysql_select_db ($nome, $connessione);
mette nella variabile php $selezione il risultato di un comando che effettua la scelta del database da usare.
Se la scelta ha successo nella variabile $elezione vi sarà il valore "TRUE" altrimenti vi sarà il valore "FALSE".
N
O
P
Q
R
S
SELECT
Il comando MySQL per leggere dei valori contenuti in una tabella è il seguente:
SELECT nomecolonna1, nomecolonna2, , ...,nomecolonnaultima FROM nometabella WHERE condizionedaverificare
Volendo cercare tutte le persone con cognome: Bianchi nella tabella1 la nostra richiesta sarà:
$richiesta="SELECT * FROM tabella1 WHERE cognome='Bianchi' ";
dove:
SELECT * FROM tabella1 indica che la ricerca va fatta in tabella1; l'asterisco * indica che desidero visualizzare tutte le colonne; volendo solo nome e cognome avrei messo:
SELECT cognome, nome FROM tabella1
Inoltre:
WHERE cognome='Bianchi' indica che la condizione da verificarsi è che il cognome sia uguale a Bianchi.
Volendo prendere i dati da più di una tabella si usa JOIN che ha la seguente struttura:
SELECT * FROM nometabella1 JOIN nometabella2 JOIN ... ... JOIN nometabellaultima ON condizionelogicasutabella1 AND condizionelogicasutabella2 AND ... AND ... AND condizionelogicasuultimatabella
Se non mettiamo le condizioni logiche dopo ON il risultato è un insieme di dati costituito da tutte le righe della prima tabella combinate ciascuna per tutte le righe della seconda tabella; combinate a loro volta con tutte le righe delle tabelle seguenti fino all'ultima tabella. Se indichiamo con n1, n2, n3, ... nultima il numero di righe della tabella oggetto della unione di tabelle, cioè della JOIN, sarebbe il prodotto di:
n1 x n2 x n3 x nultima
per cui le condizioni da mettere sono essenziali per il risultato da ottenere.
Vale la seguente regola:
1 - Il numero minimo di condizioni AND diverse deve essere uguale al numero delle tabelle messe dopo FROM;
2 - Ognuna delle condizioni AND precedenti deve riguardare una tabella diversa mettendo tutte le tabelle messe nella FROM, senza esclusione di nessuna.
3 - Possono essere richieste ulteriori AND aggiuntive oltre le minime di cui sopra in base alle richieste del problema da risolvere.
Esempio
Date le seguenti tre tabelle:
la tabella studenti:
codice | cognome | nome | datanascita | comunenascita | comuneresidenza | indirizzo | telefono | classe | sezione | corso |
01 | Bianchi | Gerardo | 14/12/87 | Milano | Milano | Via Bossi 25 | 02832547 | 5 | A | Informatica |
02 | Rossi | Antonio | 10/01/1988 | Roma | Milano | Via G. Mazzini 310 | 02573281 | 4 | C | Meccanico |
980 | Merlino | Giuseppe | 15/10/1991 | Venezia | Gallarate | Via Manzoni 120 | 02581475 | 1 | H | Informatica |
la tabella corsirecupero:
codicecorso | titolo | descrizione | datainizio | datafine | ore |
01 | italiano | Corso di recupero classi terze | 14/09/2006 | 30/09/2006 | 10 |
02 | matematica | corso di recupero classi quarte | 14/09/2006 | 29/09/2006 | 10 |
300 | matematica | Corso di recupero classi terze | 14/09/2006 | 29/09/2006 | 10 |
la tabella corsifrequentati :
codicefrequentati | codicecorso | codicestudente | esito |
01 | 01 | 05 | superato |
02 | 01 | 125 | non superato |
3000 | 300 | 124 | superato |
Volendo che:
1 - Dato uno studente fornire un elenco dei corsi di recupero frequentati e il loro esito.
posso inviare al gestore del database la seguente richiesta:
SELECT * FROM studenti JOIN corsirecupero JOIN corsifrequentati ON studenti.cognome='$cognome' AND studenti.nome='$nome' AND corsifrequentati.codicestudente=studenti.codice AND corsifrequentati.codicecorso=corsirecupero.codicecorso";Il
le prime due AND riguardano la prima tabella studenti:
WHERE studenti.cognome='$cognome' AND studenti.nome='$nome'
questo ci consente di escludere tutte le righe della prima tabella che non riguardano lo studente cercato; la terza AND:
AND corsifrequentati.codicestudente=studenti.codice
riguarda la tabella corsifrequentati e tende ad esludere tutte le righe diverse da quelle che riguardano lo studente interessato contenuto in studenti.codice
Infine l'ultima AND riguarda la tabella corsirecupero
corsifrequentati.codicecorso = corsirecupero.codicecorso";
e tende ad escludere tutte le righe della tabella corsirecupero che non riguardano lo studente interessato.
Le prime due regole sono soddisfatte e non occorrono AND aggiuntive per escludere righe non richieste.
Per le JOIN vi sono delle varianti:
1 - Al posto di ON posso mettere WHERE; esempio:
SELECT * FROM studenti JOIN corsirecupero JOIN corsifrequentati WHERE studenti.cognome='$cognome' AND studenti.nome='$nome' AND corsifrequentati.codicestudente=studenti.codice AND corsifrequentati.codicecorso=corsirecupero.codicecorso";
In realtà esiste una piccola differenza tra WHERE e ON; WHERE dovrebbe riguardare condizioni esterne alle tabelle messe nelle JOIN; mentre ON dovrebbe riguardare le condizioni riguardanti le colonne messe nelle tabelle delle JOIN, cioè ON dovrebbe essere interna alla JOIN e WHERE esterna alla JOIN.
2 - Al posto di JOIN si può usare una virgola; esempio:
$richiesta="SELECT * FROM studenti, corsirecupero, corsifrequentati WHERE studenti.cognome='$cognome' AND studenti.nome='$nome' AND corsifrequentati.codicestudente=studenti.codice AND corsifrequentati.codicecorso=corsirecupero.codicecorso";della
La virgola dopo il nome delle tabelle equivale ad una JOIN.
T
U
V
W
Z
Indice di tutte le pagine del sito