Costruzione di Siti Web con PHP e MySQL

Costruzione di Sit Web con PHP e MySQL
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Esercitazione
In questa lezione si farà insieme una seconda esercitazione che riguarda la
creazione di un form e l'elaborazione dei dati lato server mediante PHP
In particolare creeremo:
Una maschera HTML di raccolta dati con validazione dei dati con Javascript e
con PHP;
● Una pagina di uscita che proviene dalla maschera che visualizza correttamente
formattati i dati (operazione con le stringhe, operazioni con le date);
●
I campi che deve contenere la maschera sono: Nome, Cognome, Ragione Sociale,
Indirizzo, CAP, Citta, Numero di telefono, Email, Note, ContattoValido (SI/NO),
Elenco riviste (campi checkbox).
Il campo città è di tipo HTML Select, ContattoValido è di tipo RadioButton, Elenco
Riviste è di tipo Checkbox.
Pagina 1
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Introduzione a MySQL
MySQL è un server di database OpenSource creato inizialmente dalla società
tedesca MySQL AB, successivamente acquisita dalla Sun Microsystem e
successivamente acquisita da Oracle.
Da sempre le peculiarità di MySQL che lo hanno reso famoso sono:
●
la sua velocità di esecuzione delle query
●
La sua stabilità
● Diversi motori di archiviazione specifici per tabella
● Esistenza di connettori per tantissimi linguaggi di programmazione
● Il la sua perfetta integrazione in infrastrutture di rete per creare database
distribuiti
Nel caso di PHP è l'ideale compagno per la creazione di applicazioni web, la
memorizzazione di dati e la possibilità di effettuare complesse query di ricerca
ed ottenere risposte in tempi molto buoni per applicazioni web.
Ad oggi MySQL è fortemente utilizzato in ambito enterprise e nella pubblica
amministrazione.
Pagina 2
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Introduzione a MySQL
Al suo avvio MySQL si carica in memoria, e dato che è un server, rimane in attesa
delle richieste che provengono da parte dei client.
MySQL è un server multiutente e multidatabase: all'interno nel nostro server
possiamo creare e avere a disposizione diversi database dove ad ogni database a
loro volta hanno diversi utenti collegati, con specifici permessi di accesso, che
efettuano operazioni sui rispettivi DB.
Schematizzando abbiamo la seguente situazione:
Server MySQL
DB2
DB1
L'utente accede
al server
DB3
Pagina 3
L'utente collegato al server
Sceglie un DB su cui lavorare
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Introduzione a MySQL
Ogni database contiene diversi oggetti tra cui TABELLE, VISTE, TRIGGER, STORED
PROCEDURE:
●
le STORED PROCEDURE sono dei programmi che risiedono nel database e che
fanno operazioni spedifiche, come interrogazioni parametriche, bonifica dei dati,
etc..
●
I TRIGGER sono dei comandi che vengono richiamati al verificarsi di un
determinato evento;
● Le VISTE sono delle tabelle in sola lettura, risultato di una query e possono
raggruppare risultati provenienti da più tabelle o da STORED PROCEDURE
DB1
Tabelle
Viste
Trigger
Pagina 4
Stored Procedure
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Introduzione a MySQL
L'utente per avere accesso al server di MySQL deve essere un utente riconosciuto
mediante le sue credenziali di accesso: Username e Password; una volta ottenuto
l'accesso al server, esso avrà accesso a determinati database e per ogni database
avrà accesso a determinate tabelle dove potra fare determinate operazioni.
Questo meccanismo consente di proteggere i dati in modo da evitare intrusioni o
perdite volontarie o accidentali dei dati.
L'utente per gestire i dati ha a disposizione dei comandi specifici che vengono
racchiusi nelle query: una query è un'insieme di istruzioni che consentono ad un
utente di intervenire sui dati.
In una situazione reale quindi vi sono più macchine che accedono al server ed
effettuano, con diversi strumenti messi a disposizione, query sui dati.
Il tutto può essere schematizzato come segue:
Pagina 5
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Introduzione a MySQL
Pagina 6
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Collegarsi a MySQL
Il primo strumento per accedere al server è la shell, il terminale, che ci consente
di effettuare operazioni a “riga di comando” ;per connettersi al server è
necessario fornire login e password
shell> mysql -h host -u user -p
Enter password: ********
host and user rappresentano:
- l’hostname dove risiede MySQL;
- lo username di un utente che possiede un account sul server;
- p specifica al server la richiesta della password all’utente
Una volta effettuato l'accesso abbiamo a disposizione il prompt di comando dove
possiamo eseguire le operazioni consentite all'utente per i database contenuti nel
server.
Pagina 7
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Collegarsi a MySQL
macbook-di-casgin:~ casgin$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.37 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
mysql>
Sempre in una situazione REALE per poter accedere da riga di comando, ci occorre
appunto avere un terminale a disposizione e le credenziali di accesso al terminale
Stesso.
L'accesso da terminale viene spesso relegato all'amministratore di sistema per
effettuare attività di manutenzione sul server, come il backup, come controllare
l'integrità del server, etc. etc.
Pagina 8
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Utilizzo di phpMyAdmin
PhpMyAdmin è uno strumento per gestire MySQL via web, ed effettuare tutte le
operazioni di gestione sia che riguardano i dati, sia l'amminsitrazione del server
stesso.
Si presenta con la seguente schermata:
Pagina 9
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Utilizzo di phpMyAdmin
Nella zona in alto a sinistra troviamo l'elenco dei database disponibili per
quell'utente sul server, con il numero delle tabelle contenute in ogni DB.
Cliccando sul nome di un database otteniamo la schermata con l'elenco delle
tabelle in esso contenuto:
Pagina 10
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Utilizzo di phpMyAdmin
Per creare un nuovo database basta cliccare sul segno “home” e scrivere nella
relativa sezione il nome del database:
Fatto questo ci viene chiesto di creare le tabelle del nostro DB, con la seguente
schermata:
Inserendo nome della tabella e numero di campi ci viene presentata la schermata
apposita per creare tutti i campi della nostra tabella.
Pagina 11
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Utilizzo di phpMyAdmin
In questa schermata andiamo ad inserire tutti i campi della nostra tabella, il loro
tipo, definiamo gli attributi spedifici per tipo di campo, il valore predefinito e un
commento significativo di quello che rappresenta il campo:
Pagina 12
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Utilizzo di phpMyAdmin
In questa schermata andiamo ad inserire tutti i campi della nostra tabella, il loro
tipo, definiamo gli attributi spedifici per tipo di campo, il valore predefinito e un
commento significativo di quello che rappresenta il campo:
Pagina 13
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Cos'è una tabella e quali tipi di campo vi sono a disposizione
Una tabella è una rappresentazione di un modello, dove vengono raccolti dati tra
loro omogenei; una tabella ben congegnata consente di collegarla facilmente con
altre tabelle in modo da rappresentare i dati del nostro modello.
Ad esempio una tabella che rispecchia un'anagrafica di una rubrica telefonica può
essere composta dai seguenti campi:
-
Nome
Cognome
Numero di telefono
Email
Nome
Cognome
Numero
Email
Gianfranco
Castro
143280
[email protected]
Roberto
Nurini
78979
[email protected]
...
...
...
...
Chiameremo RECORD una riga della nostra tabella.
Ogni tabella ha i suoi campi chiave, che servono ad identificare UNIVOCAMENTE
un record. Tipicamente, tutte le tabelle hanno un campo chiave “ID” che è di
tipo intero “auto-incrementante”, quindi la tabella di esempio diventa:
Pagina 14
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Cos'è una tabella e quali tipi di campo vi sono a disposizione
ID
Nome
1
Cognome
Numero
Email
Gianfranco Castro
7877897
[email protected]
2
Roberto
Nurini
56565
[email protected]
...
...
...
..
..
Le chiavi possono essere più di una, e servono per avere accesso rapidamente ad
un record, in quanto vengono indicizzate dal DB.
Se io pongo ID e Nome come chiavi primarie, non posso avere un altro record che
contiene ID=1 e Nome=Gianfranco, in quanto può solo esistere un record che
abbia questi due valori nelle chiavi.
Nel caso di relazioni tra più tabelle e quindi tra le chiavi di queste tabelle, è
possibile definire delle chiavi esterne (foreign key) in modo da dare accesso alle
tabelle esterne ed attingere ai dati.
Pagina 15
Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Le query di MySQL
Le query, quindi sono dei comandi testuali che vengono dati per gestire i dati del
nostro DB. Fondamentalmente su una tabella possiamo esprimere le seguenti
query:
●
●
●
●
Inserimento
insert into {tabella} (elenco campi) values (elenco valori)
Modifica/Aggiornamento
update {tabella} set (elenco campi) = (elenco valori)
Cancellazione
delete from {tabella}
Selezione
select (elenco campi) from {tabella}
Pagina 16