Sei sulla pagina 1di 4

Implementazioni SQL: MySQL

MySQL RDBMS, composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux sia per Windows. Si tratta di un prodotto software free ed pertanto scaricabile gratuitamente dal sito http://www.mysql.it/. Il sito http://dev.mysql.com/ dedicato agli sviluppatori e contiene istruzioni per linstallazione sulle diverse piattaforme supportate (Windows, Linux, Mac OS X, ...), tutorial, la documentazione MySQL e ulteriori risorse. Linstallazione su piattaforma Windows resa pi semplice grazie ad un installer scaricabile allurl http://dev.mysql.com/downloads/installer/.

Strumenti di amministrazione
MySQL non fornisce uninterfaccia grafica ma possibile utilizzare un MySQL Manager, ossia uno strumento che fornisce uninterfaccia grafica per svolgere operazioni di amministrazione dei database, gestire le tabelle e i dati, effettuare interrogazioni. Il MySQL Manager pi usato probabilmente phpMyAdmin, multipiattaforma, scritto in PHP e distribuito con licenza GPL (http://www.phpmyadmin.net/home_page/index.php). Il software phpMyAdmin necessita, per funzionare, che siano installati anche il server web Apache (http://www.apache.org/) e linterprete PHP (http://www.php.net/), oltre naturalmente MySQL. Dopo linstallazione necessario configurare i vari applicativi affinch siano in grado di cooperare. Se non si esperti o se si vuole velocizzare linstallazione, si possono usare pacchetti preconfezionati, che installano e configurano automaticamente tutto il software necessario. Ne esistono diversi e di seguito ne propongo alcuni: XAMPP (http://www.apachefriends.org/it/xampp.html) Distribuzione Apache contenente MySQL, PHP e Perl. Utilizzabile per Linux, Windows, Mac OS X, Solaris.

WampServer (http://www.wampserver.com/en/) Installa un ambiente WAMP costituito da Apache, PHP e MySQL. Utilizzabile solo per Windows.

EasyPHP (http://www.easyphp.org/) Come WampServer.

MAMP (http://www.mamp.info/en/mamp/index.html) Installa un ambiente MAMP costituito da Apache, PHP e MySQL. Utilizzabile solo per Mac OS X.

Particolarmente interessante MySQL Workbench, uno strumento visuale di progettazione per database, che integra sviluppo SQL, gestione, modellazione dati, creazione e manutenzione di database MySQL all'interno di un unico ambiente. Lo strumento gratuito e scaricabile allurl http://www.mysql.com/downloads/workbench/.

Bocchi Cinzia Ultimo aggiornamento: 14/09/2012

Tipi di dato in MySQL


La tabella seguente mostra la corrispondenza tra alcuni tipi MySQL e i tipi standard SQL.

Numerici Descrizione Una sequenza di bit di lunghezza x. Intero a 16 bit. Intero a 32 bit. Intero a 64 bit. Floating point a 32 bit. Floating point a 64 bit di precisione p e scala s. Fixed point di precisione p e scala s, con p < 66 e s <31. Floating point a 32 bit di precisione p e scala s. SQL bit(x) smallint integer real double precision decimal(p,s) float(p)

MySQL bit(x) smallint(p) int(p) o integer(p) bigint(p) double(p,s) decimal(p,s) float(p,s)

Altri tipi numerici SQL sono: tinyint(p) Intero a 8 bit e precisione p. Se p vale 1 equivale al tipo boolean, con 0 pari a false e 1 a true. mediumint(p) Intero a 24 bit e precisione p. bigint(p) Intero a 64 bit e precisione p.

Alfanumerici Descrizione Stringa di lunghezza n. Se la stringa ha lunghezza inferiore a n vengono aggiunti spazi alla sua destra, fino ad arrivare alla lunghezza desiderata. Stringa di lunghezza massima n. Se la stringa ha lunghezza inferiore a n non vengono aggiunti spazi alla sua destra. SQL char(n) varchar(n)

MySQL char(n) varchar(n)

Altri tipi alfanumerici SQL sono: blob Stringa di lunghezza massima 65 535 byte. tinyblob Stringa di lunghezza massima 255 byte. mediumblob Stringa di lunghezza massima 16 777 215 byte. longblob Stringa di lunghezza massima 4 294 967 295 byte. text Stringa di lunghezza massima 65 535 caratteri. tinytext Stringa di lunghezza massima 255 caratteri. mediumtext
Bocchi Cinzia Ultimo aggiornamento: 14/09/2012

Stringa di lunghezza massima 16 777 215 caratteri. longtext Stringa di lunghezza massima 4 294 967 295 caratteri. enum(valore1,valore2,...) Stringa che pu assumere uno solo dei valori specificati. set(valore1,valore2,...) Stringa che pu assumere zero o pi valori fra quelli specificati.

Data e ora Descrizione Data espressa nel formato aaa-mm-gg. Ora espressa nel formato hh:mm:ss. Numero di secondi trascorsi dalle ore 00:00:00 del 1970-01-01. SQL date time timestamp

MySQL date time timestamp

Altri tipi data e ora SQL sono: datetime Combina data e ora. year(d) specifica lanno in un formato dipendente da d, che pu valere 2 o 4 (il default 4).

Funzioni e operatori
Allurl http://dev.mysql.com/doc/refman/5.5/en/func-op-summary-ref.html sono reperibili le funzioni e gli operatori utilizzabili in MySQL. La tabella seguente riporta alcuni funzioni utilizzabili con i tipi data e ora. Operatore/funzione Sintassi
CURDATE CURTIME DATE_ADD CURDATE() CURTIME() DATE_ADD(data,INTERVAL exp unit)

Descrizione
Restituisce la data corrente. Restituisce lora corrente. Aggiunge a data lintervallo specificato. I valori possibili di exp e unit sono rappresentati nella figura 1. - Esempio: DATE_ADD('2012-07-19',INTERVAL 5 DAY) restituisce 2012-07-24 - Esempio: DATE_ADD('2012-07-19',INTERVAL -5 DAY) restituisce 2012-07-14 Sottrae a data lintervallo specificato. I valori possibili di exp e unit sono rappresentati nella figura 1. Restituisce il numero di giorni che intercorrono tra data1 e data2 (data1-data2). - Esempio: DATEDIFF('2012-12-31','2012-12-30') restituisce 1 - Esempio: DATEDIFF('2012-11-30','2012-12-31') restituisce -31 Estrae da data la unit specificata (vedere figura 1). - Esempio: EXTRACT(YEAR FROM,'2012-12-31') restituisce 2012 3

DATE_SUB DATEDIFF

DATE_SUB(data,INTERVAL exp unit) DATEDIFF(data1,data2)

EXTRACT

EXTRACT(unit FROM data)

Bocchi Cinzia Ultimo aggiornamento: 14/09/2012

Figura 1 - Valori di exp e unit

Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 4

Bocchi Cinzia Ultimo aggiornamento: 14/09/2012