sabato 7 ottobre 2017

Ottenere i nomi colonne delle tabelle mysql

Prendiamo ad esempio che vogliate creare delle tabelle dinamicamente con il vostro prode mysql, magari partendo da una tabella con una struttura da utilizzare come base, come potreste mai fare?
Quello che vi serve di sicuro conoscere per questo esercizio, sono i nomi delle colonne di tabella, in modo da sapere come si chiamano i vari campi, e che attributi hanno.

In questo breve articolo vi spiegherò dunque quale sintassi sql utilizzare per poter ottenere la struttura di una tabella mysql, in modo tale da poterne fare quello che vi pare.


Come ottenere i nomi delle colonne delle tabelle Mysql


La sintassi mysql da utilizzare per ricavare la struttura di una tabella, è la seguente:

SHOW COLUMNS FROM tabella

Lanciando questa semplice query infatti, si otterranno a video le seguenti colonne:
  • Field: il nome del campo
  • Type: il tipo del campo (es. varchar)
  • Null: se il dato accetta i valori nulli
  • Key: il tipo di chiave utilizzata
  • Default: il valore di default
  • Extra: es l'attributo auto_increment

A questa sintassi è ovviamente possibile passare dei parametri, tramite il comando WHERE, in modo tale da ottenere ad esempio solo i campi (field) che si chiamano in un certo modo, o di un certo tipo (type).

Tornando all'esempio citato ad inizio post, se volessimo creare dinamicamente una tabella mysql, magari facendo scegliere all'utente solo determinati campi dalla lista, potremmo anche giocarcela inserendo un valore nei commenti dei campi.
Se ad esempio decidiamo di inserire nei campi da non mostrare, il commento nonmostrare, potremmo mostrare solo i nomi dei campi di una tabella mysql che non hanno quel commento.

Ad un osservatore attento a questo punto non sarà sfuggita una cosa: con la sintassi spiegata poco sopra la query non riporta i commenti (comments) ed altri parametri della struttura della tabella.
Per mostrare tutte le colonne di una tabella mysql, anche quelle nascoste, occorre aggiungere il comando FULL.
Ecco come verrebbe la query che mostra anche i commenti presenti nelle colonne della tabella mysql:

SHOW FULL COLUMNS FROM tabella

Ottenere i nomi colonne delle tabelle mysql

Bene, ora sapete come ottenere i nomi di tutte le colonne presenti in una tabella mysql, anche quelli normalmente nascosti.
Ciclando queste informazioni vi sarà possibile farci un po' quello che vi pare, anche ricreare una tabella mysql partendo da un'altra che fa da stampo, il tutto senza conoscerne a priori i nomi ed i tipi di campi utilizzati.

Oppure, un'altra possibile applicazione che mi viene in mente che è possibile fare con questa "show columus", è quella di esportare dinamicamente il contenuto di una tabella in formato csv.
Se infatti la desiderata è quella di creare un csv che abbia in testata il nome di colonna di ogni campo che poi verrà esportato, ecco che questa sintassi fa proprio al caso nostro.

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon