giovedì 7 settembre 2017

Limitare risultati tabella MySql

Se utilizzi il database mysql e vuoi fare delle query limitandone però in numero i risultati estratti, devi utilizzare una specifica sintassi sql.
In questo breve articolo ti spiegherò come limitare i risultati di una tabella su mysql, in modo tale da poter filtrare in numero i record da estrarre.

Questo genere di operazioni può essere molto utile per non impastare il database con richieste sql troppo pesanti, o anche per poter creare script che gestiscono la paginazione dei risultati.

Vediamo subito come fare (cit.).


Come limitare i risultati di una tabella su MySql


Ecco la sintassi sql da utilizzare per estrarre solo un numero limitato di record da una tabella di un database mysql:

SELECT campo FROM tabella LIMIT numero

Grazie alla funzione LIMIT infatti, è possibile dire al mysql di estrarre solo tot risultati.
Se si passa un solo numero a questa funzione, verranno estratti tutti i primi n record.

Se invece si passano due numeri alla limit, verranno estratti i record successivi dalla posizione indicata dal primo numero, alla posizione indicata dal secondo numero.

Se ad esempio si vuole pescare tutti i record dalla posizione 11 alla posizione 13, bisogna usare la seguente sintassi:

SELECT campo FROM tabella LIMIT 10,3

Mettendo infatti limit 10,3, si va a dire di pescare i dati dalla posizione 11, per tre posizioni consecutive, quindi fino alla 13.

Limitare risultati tabella MySql

Bene, ora conosci che conosci i limit di mysql, non ti resta che superarli :p

mercoledì 6 settembre 2017

Leggi il post

Barzelletta sui cani: lite al parco

Barzelletta sui cani:

Nei giardini pubblici due persone si incontrano, ciascuna col proprio cane, il primo con un barboncino mentre il secondo con un alano. 
Mentre i due padroni parlano tra di loro, accade una tragedia: l'alano mangia il barboncino in un solo boccone. 
Il padrone del barboncino disperato:
- Mamma mia, maledetto cagnaccio... che cosa hai fatto!!!
Il padrone dell'alano cerca di tranquillizzarlo, ma lui:
- Quel barboncino mi è costato tre milioni!!!
E l'altro con tutta calma:
- Se è per questo il mio alano costa venti milioni!
Passa un po' di tempo e la scena si ripete, stavolta il primo dei due si presenta con un pechinese, ma l'alano di nuovo ne fa un solo boccone. 

Disperato, il padrone:
- Di nuovo! Ma allora ce l'ha con me! Questo cane pechinese mi è costato dieci milioni!
E l'altro tranquillo gli risponde nuovamente:
- Se è per questo il mio alano costa venti milioni!
Passa circa un mese e di nuovo i due si ritrovano ai giardinetti, questa volta il primo ha un bassotto. 

L'alano si avvicina al bassotto, ed approfittando di un momento di distrazione dei due padroni, si avventa sul bassotto, ma quest'ultimo si gira e sbrana l'alano. 
Il padrone dell'alano:
- Mamma mia! Il mio alano, non è possibile! Mi era costato venti milioni!
E l'altro gli risponde:
- Se è per questo io ne ho spesi cinquanta per far fare la plastica al coccodrillo!

martedì 5 settembre 2017

American Gangster (film)

American Gangster è un film poliziesco/drammatico del 2007 diretto da Ridley Scott, con Denzel Washington, Russell Crowe, Chiwetel Ejiofor, Josh Brolin, Cuba Gooding Jr., John Ortiz, Common, Ruby Dee, John Hawkes.

American Gangster (film)
Trama

Frank Lucas è l'autista di un noto boss della mafia criminale di New York.
Alla morte del suo capo, inaspettatamente Frank prende il potere.
Dalla sua ha tanti anni d'esperienza, grazie al fatto che seguendo sempre il suo capo ha imparato come funziona l'ambiente della malavita.
Per farsi strada comunque, Lucas adotterà un'idea innovativa, ovvero quella di andare a prendere la droga alla fonte, in Thailandia.
Facendo arrivare l'eroina direttamente dal produttore senza tagliarla, Frank creerà il marchio "Blue magic", un prodotto ricercatissimo da tutti i tossicodipendenti.
Ma il successo di Lucas gli porterà anche molti nemici, e lo farà anche entrare nel radar del Detective Richie Roberts.

Recensione

American Gangster è un film drammatico del genere mafia del 2007, diretto da Ridley Scott.
Questo film parla della vera storia del gangster Frank Lucas, della sua ascesa e di tutta la sua carriera criminale.
Film consigliatissimo a tutti gli appassionati dei film di mafia.
Anche se ovviamente non può competere con il padrino, "American Gangster" è comunque un buon film sulla malavita organizzata.

Link alla scheda del film su wikipedia

lunedì 4 settembre 2017

Leggi il post

Come creare un file csv con mysql

Lo sapevi che tramite mysql è anche possibile creare dei file fisici?
Esatto, ad esempio puoi estrarre i risultati di una tabella e salvarli in un file csv, o anche in un altro formato volendo.

Nello specifico dunque, vediamo un esempio di come creare file csv da mysql, tramite uno script sql che salva il risultato di una query in un file fisico presente una specifica cartella del server.
Ecco come fare.


Come creare un file csv da mysql


Per poter generare e salvare un file di tipo csv da mysql, basta utilizzare la seguente sintassi:

SELECT campi INTO OUTFILE 'C:/cartella/nome-file.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM nome-tabella


Questa query infatti, si occupa di pescare i dati da una determinata tabella mysql, e di salvarli dentro un percorso specifico.
Da notare che volendo si può anche specificare tramite sql il delimitatore da usare (in questo esempio la virgola), il carattere per chiudere i risultati (in questo caso le virgolette), ed il delimitatore di riga (\n).

Attenzione però, tutto questo potrebbe non funzionare, e potreste ricevere l'errore:
"The MySQL server is running with the --secure-file-priv option so it cannot execute this statement".
In questo caso per risolvere potete agire in due modi: o salvate il file dentro il percorso indicato nella variabile secure_file_priv del my.ini, oppure la disattivate (sempre da my.ini, il file di configurazione di mysql) e poi riavviate.

Un'ultima considerazione va fatta su un altro possibile errore, il "File nome-file already exists".
Questo errore significa semplicemente che il file che state provando a salvare con la funzione OUTFILE MYSQL esiste già.
Purtroppo questo limite non sembra essere superabile, se non agendo d'astuzia.
In mysql infatti non si possono sovrascrivere i file già esistenti (ma come pro c'è il fatto che è possibile creare nuovi file senza bisogno che questi esistano già), quindi l'unica soluzione è, o creare uno script che prima cancella il file e poi lo ricrea, oppure salvare il file con nomi diversi, magari mettendoci data ed ora nel nome.

domenica 3 settembre 2017

Leggi il post

Due semplici barzellette della domenica

Due freddure / barzellette da domenica:

Un inglese ed un italiano si ritrovano nella giungla inseguiti da un gigantesco leone. 
Ad un certo punto l'italiano si ferma ed estrae dalla borsa un paio di scarpe da ginnastica.
L'inglese, un po' confuso, gli chiede:
- Ma cosa fai? Speri di correre più veloce del leone?
E l'italiano gli risponde:
- Più veloce del leone no, ma di te si!


 Una tartaruga si dirige verso il tronco di un grande albero e comincia a scalarlo piano piano, fino a che, dopo un'ora, raggiunge un ramo abbastanza alto dal quale decide di buttarsi a pancia in giù. 
Per sua fortuna, la tartaruga atterra su un ammasso di foglie secche e non si fa niente, ma non contenta si dirige nuovamente verso il tronco dell'albero e ricomincia a salire, finché, raggiunto il ramo di prima, si butta e atterra nuovamente sul gruppo di foglie secche.
Poi, ancora non contenta, ripete l'operazione un'altra volta ed un'altra volta ancora. 

Da in cima all'albero, due usignoli stanno osservando la scena. 
Ad un certo punto, impietosito, uno dice all'altro:
- Caro, non ti sembra arrivato il momento di dirgli che è stata adottata?

sabato 2 settembre 2017

Leggi il post

Tre brevi battute / barzellette / freddure

Ecco 3 semplici e brevi battute per ridere un po':

- Lo sai perché la mucca fa il latte?
- Perché se facesse il caffè sarebbe una moka!


Un senza tetto ruba un pollo per sfamarsi e va sulle rive del fiume a mangiarlo. 
Accende un fuoco, tira il collo al pollo e comincia a spennarlo. 
All'improvviso arriva un vigile, il senza tetto butta subito il pollo nell'acqua, ma nota il gesto e gli dice:
- Cosa ha buttato nell'acqua?
- Nell'acqua? Io? Niente niente, perché?
- E allora cosa sono tutte quelle penne?
- Niente, niente. C'era un pollo che si voleva fare il bagno e mi ha detto se gli davo un'occhiata ai vestiti!


Un canguro dice all'altro:
- Sabato sera andiamo a fare quattro salti in discoteca?

venerdì 1 settembre 2017

Leggi il post

Come unire due campi in mysql

Quando estrai i risultati di una query su mysql, a volte può capitare la necessità di voler avere due campi uniti in uno, o anche tre o di più.
Volendo puoi compiere questa operazione da codice, da una pagina web in php magari, però è indubbio che se lo fai tramite sql è decisamente più rapido ed efficace.

Vediamo dunque come concatenare più campi sql, in modo tale da creare un nuovo campo unico risultato, un campo con un nuovo nome.


Come unire due o più campi in mysql


Per poter unire colonne su mysql ti basta utilizzare una sintassi del genere:

SELECT CONCAT(campo1,' ',campo2) AS campo3 FROM tabella

Avrai così creato un nuovo campo risultato, che è l'unione di due campi, separati da spazio.

Ovviamente con questa sintassi sql è possibile unire anche un numero superiore di campi.
Inoltre, volendo potresti voler concatenare una colonna di una tabella con una stringa predefinita, oppure con il risultato di una funzione.

Ecco un altro esempio pratico:

SELECT nome,CONCAT(nome,' | data: ',now()) AS nomecondata FROM `test`

In questo caso abbiamo unito al campo nome della tabella test, la scritta data seguita dalla data ed ora del momento esatto in cui la query viene eseguita.
Tutto molto semplice no?

Sapere come concatenare colonne mysql può sempre tornare utile, soprattutto quando si generano dei risultati che magari poi vanno esportati in formato csv... per esempio :)
Buone query!

giovedì 31 agosto 2017

Venezia in due giorni

A Venezia sono stato diverse volte (come ad esempio scritto qui), ma mai mi ero fermato due giorni di fila.
Di solito facevo una bella quanto stancante gita in giornata, magari con i treni regionali per risparmiare, ammiravo tutto quello che c'era da ammirare, e poi tornavo a casa.
Questa volta invece, ho deciso di apprezzare meglio la capitale mondiale dei canali, così mi sono fermato anche a dormire per ben due notti.

Venezia in due giorni

Cosa vedere a Venezia in due giorni


Venezia è detta la città dell'amore, non solo perchè pullula di coppie di innamorati, ma perchè proprio ce ne si innamora.
Venezia è infatti una città incantevole, da ammirare sia seguendo un itinerario preciso per non perdersi le principali attrazioni, sia girando in maniera del tutto casuale.

Volendo, le cose principali da vedere non sono neanche tante.
Citerò ad esempio: Piazza San Marco, Il Palazzo Ducale, La Torre dell’Orologio, il ponte di rialto, il ponte dei sospiri, Il Campanile di San Marco, La Basilica di San Marco, Il Canal Grande...
Ma come dicevo poco sopra, Venezia va vissuta scoprendola con passeggiate casuali nei suoi mille vicoli e canali, scoprendo sempre nuovi scorci e vie pittoresche da fotografare.

Gondola
Case nell'acqua
Scheletri dopo una festa
Panorama Venezia
Venezia Classica
Canal grande
Uno dei tanti ponti
Piazza San Marco
Canali e case
Bellissimo panorama
Telefoni pubblici
Venezia al tramonto
Gufo di Venezia
Mercato sull'acqua

Poi ovviamente, vale sicuramente la pena di fare una gita a Murano, la città dei vetri... e perchè no, anche un bagno al lido di Venezia.

L'atmosfera che si respira passeggiando per Venezia è qualcosa di indescrivibile.
Sembra una città in cui il tempo si sia fermato, dove non girano macchine ma barche.
Se poi avete giocato ad Assassin Creed, l'unica differenza che vi sembrerà di scorgere rispetto al gioco, saranno gli abiti delle persone.

L'unica nota negativa di Venezia sono i prezzi.
I prezzi degli hotel sono davvero alti, magari per 3 stelle che in realtà in altri posti sarebbero 2 stelle tirate (almeno quello dove ho soggiornato io, con una camera minuscola).
Ma anche le famosissime quanto romantiche Gondole... 80 euro per mezz'ora di giro sono un filino tanti a mio avviso.
E poi vogliamo parlare della Tassa di soggiorno?
Io l'abolirei in tutto il mondo la tassa di soggiorno, perchè sembra una gara a chi fa pagare di più il turista.
A Venezia se non ricordo male sono ben 3.50 euro a notte! Assurdo...
Vi piacerebbe che il mondo fosse tutto a pagamento? Dover pagare in ogni città che si va?
Spero che prima o poi questa cosa venga abolita come il roaming... anche se lì, ho saputo che certi gestori furboni si sono rifatti aumentando le fariffe... no comment...

Cos'altro dire di Venezia?
Niente, lascio spazio alla slideshow fotografica di una Venezia classica... anche come musica :p

>> Guarda le foto di Venezia 2017 <<

mercoledì 30 agosto 2017

Come ordinare risultati tabella MySql

Dopo aver appreso come fare le prime query sql utilizzando il database mysql, una delle altre nozioni base che è necessario apprendere è come fare per ordinare i risultati ottenuti dalle query.
La sintassi da usare per compiere questa importantissima operazione è molto semplice, dato che è una parola inglese molto simile all'italiano.

Vediamo dunque come ordinare i risurlati di una query sql su mysql, in modo da poter ottenere a video degli elenchi perfettamente ordinati, da poter utilizzare nelle nostre pagine web o app.


Come ordinare i risultati di una tabella MySql


Il comando sql da utilizzare per ordinare i dati ottenuti dalle query in un database mysql, è il seguente:

SELECT * FROM tabella ORDER BY campo

Il comando di cui sto parlando è ovviamente ORDER BY, il quale consente di poter ordinare i risultati in ordine crescente o decresente, su uno o più campi.

La parola da utilizzare per ordinare in maniera decrescente è DESC, mentre per ordinare in ordine crescente si utilizza ASC.

Come ordinare risultati tabella MySql

Di default comunque, se si dice di ordinare per un determinato campo, ma non si specifica alcun verso d'ordinamento, quello di default è il crescente, quindi non serve quasi mai in teoria specificare l'ordinamento sql ASC.

Il separatore da usare per ordinare su più campi sql è la virgola, ed ovviamente, ogni verso di ordinamento su ogni specifico campo va indicato subito dopo uno spazio vuoto accanto al campo da ordinare.

Come si può ben vedere anche dallo screenshot allegato, questa sintassi mysql per ordinare risultati sql è semplice ed intuitiva, oltre che di rapida esecuzione.
Ovviamente però, se ci si trova davanti a tabelle con milioni di record, ordinare su più campi potrebbe anche significare alzare notevolmente i tempi di elaborazione... il tutto poi dipende anche da quanto bene è stato progettato il db sql ;)

martedì 29 agosto 2017

Leggi il post

Come creare job eventi in mysql

Come per sql server, anche su mysql è possibile creare degli eventi.
Un evento o un job mysql è un'azione programmabile sul proprio database, in modo tale che giri in automatico in un determinato momento, una volta sola o in maniera ricorrente.

Vediamo subito come creare jobs mysql, in modo da poter schedulare delle operazioni automatiche su tabelle e dati.


Come creare job eventi in mysql


Per poter utilizzare i jobs mysql, occorre prima attivarli a livello globale.
Ecco la sintassi sql da utilizzare per attivare gli eventi mysql:

SET GLOBAL event_scheduler="ON"

Una volta attivata questa opzione globale di sistema (che ovviamente si disattiva mettendo OFF), gli eventi sono disponibili e pronti all'uso, occorre solo crearli.

La sintassi sql da utilizzare per creare un evento schedulato su mysql è la seguente:

CREATE DEFINER=`user-che-fa-girare-evento`@`server` EVENT `nome-evento` ON SCHEDULE AT data-e-ora-evento' ON COMPLETION NOT PRESERVE ENABLE DO sintassi-sql-da-eseguire

Questa sintassi praticamente crea un evento con un determinato nome, che gira in una determinata ora un determinato giorno, con un determinato utente su un determinato server.
Al completamento dell'evento, il job viene cancellato (not preserve), mentre con enable si indica invece che l'evento è attivo e pronto a girare (mettere disable per disattivare).
Infine dopo DO, vanno tutte le istruzioni sql da eseguire.

Se invece si vuole creare una ricorrenza mysql, ovvero un evento che gira ogni ora, ogni giorno, ogni settimana, ogni mese, ecc... ecco la sintassi da utilizzare:

CREATE EVENT `ogni 5 minuti` ON SCHEDULE EVERY 5 MINUTE STARTS '2017-07-31 14:00:00.000000' ENDS '2017-08-01 00:00:00.000000' ON COMPLETION NOT PRESERVE ENABLE DO sql-da-eseguire

In questo esempio infatti, faccio girare ogni 5 minuti il job, che compie qualche operazione sql e poi termina.
Le parole chiave da memorizzare per creare script mysql automatici sono ON SCHEDULE EVERY, e poi STARTS (per dire quando il job deve partire) ed ENDS (facoltativo, indica la data-ora termine del job).
Ovviamente poi, è possibile cambiare la frequenza tramite sintassi sql, sostituendo il comando MINUTE con HOUR, DAY, YEAR, ecc...

Bene, è tutto.
Adesso siete in grado di far compiere a mysql ogni sorta di operazione automatica tramite script sql schedulati.
Ad esempio quanto spiegato in questo tutorial potrebbe anche essere utilizzato per pianificare un backup automatico database mysql... niente male, vero?