Dizionario mysql con relative istruzioni php

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  WHEREON; 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 Scuola Elettrica - generico


Scuola Elettrica



 

Altre applicazioni


Mappa per tipo di scuola

 

Indice di tutte le pagine del sito


Guida per navigare


Richiesta informazioni


Scuola Elettrica