16 . Il linguaggio SQL Vers . 10.4 – Febbraio 2025
Eseguire QUERY CASE SENSITIVE in SQL ( tabella case sensitive ) PREMESSA
I CHARACTER SET ( insiemi di caratteri ) sono i diversi sistemi attraverso i quali i caratteri alfanumerici , i segni di punteggiatura e tutti i simboli visualizzabili su un computer vengono memorizzati in un valore binario .
Ogni database relazionale come MySQL o MariaDB utilizza i CHARACTER SET per gestire come i caratteri vengono codificati e salvati nei campi delle tabelle .
In ogni CHARACTER SET , ad un valore binario corrisponde un carattere ben preciso .
Di conseguenza , quando una stringa viene memorizzata utilizzando un certo insieme di caratteri , dovrà essere visualizzata attraverso quello stesso insieme , altrimenti alcuni caratteri potrebbero apparire diversi da come ce li aspettiamo .
L ' esempio classico di questo inconveniente si verifica in genere con le lettere accentate e , a volte , con il simbolo dell ' Euro , che ogni tanto capita di vedere non rappresentati correttamente , ad esempio su una pagina web : segno che non stiamo visualizzando quella pagina con il giusto insieme di caratteri .
MySQL , a partire dalla versione 4.1 , ha introdotto un supporto molto avanzato alla gestione di diversi CHARACTER SET .
Infatti ci consente di gestire i set di caratteri a livello di server , database , tabella e singola colonna , nonchè di client e di connessione .
Una COLLATION è un insieme di regole che determinano come confrontare e ordinare i caratteri in un database . Ogni CHARACTER SET ha una o più COLLATION associate , che specificano come i caratteri vengono confrontati per operazioni come ORDER BY , GROUP BY o per eseguire confronti di uguaglianza .
Quando in MySQL si crea un qualsiasi database , PER DEFAULT esso utilizzerà il CHARACTER SET latin1 ( quello maggiormente usato in Europa Occidentale ) e la COLLATION latin1 _ swedish _ ci per tutte le tabelle in esso contenute ( se non diversamente specificato )
Tale COLLATION è multilingue ( cioè non specifica per una lingua ) e " case insensitive " come dimostra il " ci " finale , cioè tiene conto della differenza fra maiuscole e minuscole nell ' ordinare o confrontare le stringhe .
In generale possiamo dire che il nome di ogni COLLATION segue un determinato standard : - inizia con il nome del CHARACTER SET a cui si riferisce , - comprende di solito una specifica relativa ad una lingua , - termina con cs ( case sensitive ) o ci ( case insensitive ) a seconda che tenga o meno in considerazione la differenza tra maiuscole e minuscole , oppure con bin quando il valore binario dei caratteri è utilizzato direttamente per i confronti .
Normalmente l ' esistenza di una collation dedicata ad una singola lingua si ha quando le regole generali del set di caratteri non soddisfano le esigenze di quella lingua . Le collation dedicate al tedesco , ad esempio , servono a trattare nel giusto modo le vocali con dieresi ( ad esempio Ü ) e la lettera " sharp " ( ß )
.
Le istruzioni SQL " SHOW CHARACTER SET ;" e " SHOW COLLATION ;" ci consentono di ottenere la lista , rispettivamente , dei CHARACTER SET e delle COLLATION disponibili sul server .
In mancanza di inizializzazione , come già detto , il CHARACTER SET di default e la relativa COLLATION dipenderanno dalle impostazioni del server ( in genere CHARACTER SET latin1 e COLLATION di default latin1 _ swedish _ ci ).
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 36