Come cambiare la codifica caratteri in Sql
Le tabelle SQL sono associate a una particolare codifica dei caratteri o charset ( es. UTF8, latin1, latin2, ISO-8859, ecc. ). E' decisa al momento della creazione.
E' comunque possibile modificare il set di caratteri di una tabella esistente o anche di una singola colonna della tabella tramite il comando ALTER TABLE.
Come modificare il charset della tabella Sql
Per modificare il set di caratteri di una tabella SQL già esistente nel database, utilizzo il comando ALTER TABLE con la clausola CHARACTER SET.
ALTER TABLE nometabella CHARACTER SET set_di_caratteri;
Nel parametro nometabella specifico il nome della tabella sql da modificare.
Nel parametro set_di_caratteri indico il codice dei caratteri ( es. latin1, utf8, ecc. ) che voglio associare nella tabella.
Esempio
Voglio impostare il charset UTF8 in una tabella sql
Quindi digito il seguente comando:
ALTER TABLE anagrafica CHARACTER SET utf8;
La variazione è immediata
Attenzione
Il comando ALTER TABLE modifica soltanto la codifica di default della tabella.
Quindi, se nei singoli campi (colonne) della tabella sono specificati dei charset, questi non sono modificati dal comando precendente e vanno cambiati a mano.
Come modificare il charset di una colonna della tabella Sql
Per cambiare il charset di una singola colonna della tabella SQL, utilizzo il comando ALTER TABLE con la clausola MODIFY:
ALTER TABLE nome_tabella MODIFY nome_colonna VARCHAR(255) CHARACTER SET set_di_caratteri;
Nel parametro MODIFY specifico il nome della colonna da modificare, il tipo e la lunghezza.
Nel parametro CHARACTER SET, invece, gli associo il charset che voglio usare.
Esempio
Voglio impostare la codifica dei caratteri latin1 soltanto al campo "nome" della tabella "anagrafica".
Per farlo digito il seguente comando:
ALTER TABLE anagrafica MODIFY nome VARCHAR(255) CHARACTER SET latin1;
La modifica è immediata.