16. Il linguaggio SQL Vers. 11.0 – Gennaio 2026
N. B. Se volessimo conoscere il CHARACTER SET di una certa tabella possiamo utilizzare l’ istruzione:
SHOW [ FULL ] COLUMNS FROM nome _ tabella [ FROM nome _ db ]
[ LIKE ' pattern ' | WHERE espr ]
SHOW COLUMNS è un’ istruzione in grado di mostrare le informazioni sulle colonne di una data tabella e funziona anche con le viste. La clausola LIKE, se presente, restringe l ' output alle colonne i cui nomi corrispondono al pattern. La clausola WHERE può essere usata per specificare condizioni più generiche, come spiegato in http:// dev. mysql. com / doc / refman / 5.1 / en / extended-show. html.
Immaginiamo di volere effettuare delle QUERY case-sensitive in MySql su tabelle appositamente create a tale scopo ottenute con COLLATE case-sensitive
Esempio: Per quanto detto prima prendiamo in considerazione un database case sensitive costruito con la seguente istruzione eseguita dalla shell di MySQL:
CREATE DATABASE db _ cs CHARCTER SET latin1 COLLATE latin1 _ general _ cs;
contenente l ' unica tabella Cliente creata con la seguente istruzione eseguita anch ' essa dalla shell di MySQL:
CREATE TABLE Cliente( CodC VARCHAR( 10) NOT NULL, Cognome VARCHAR( 30) NOT NULL, Nome VARCHAR( 30) NOT NULL, PRIMARY KEY( CodC)) Engine InnoDB CHARCTER SET latin1 COLLATE latin1 _ general _ cs;
Ipotizziamo che in questa tabella siano presenti due clienti, uno con cognome " Rossi " e l ' altro con tutte le lettere minuscole " rossi ".
Il cognome è lo stesso ma il dato è differente. Se eseguiamo la seguente query:
SELECT * FROM Cliente WHERE Cognome = " Rossi ";
quest ' ultima visualizzerà soltanto i dati del cliente con cognome uguale a " Rossi " escludendo l ' altro.
Per consentire la visualizzazione dei dati di entrambi i record( " Rossi " e " rossi ") si devono operare delle accortezze all ' interno della SELECT utilizzando le funzioni SQL LOWER e UPPER.
Le funzioni LOWER e UPPER trasformano rispettivamente il dato in lettere minuscole o maiuscole. Quindi entrambe le query:
SELECT * FROM Cliente WHERE LOWER( Cognome) = " rossi "; oppure
SELECT * FROM Cliente WHERE UPPER( Cognome) = " ROSSI ";
permetteranno la visualizzazione dei dati di entrambi i clienti con cognome uguale a " Rossi " oppure a " rossi " senza l’ esclusione di nessuno dei due.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 37