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