Sante Caserio
pubblicato più di 2 anni fa

L'help di MySQL

L’articolo descrive l’utilizzo del comando Help, lo strumento di aiuto che MySQL mette a disposizione

MySQL ha un comodissmo comando HELP che consente di reperire rapidamente spiegazioni su un aspetto del linguaggio SQL senza dover ricorrere alla documentazione o ad altri manuali.

Vediamo come utilizzarlo.

Riempire le tabelle di help

Spesso i contenuti dell’help non sono installati di default, perciò occorre caricarli manualmente. Essi possono essere scaricati dalla pagina della documentazione sul sito ufficiale di MySQL. Quello che andiamo a scaricare è un pacchetto compresso contenente un file di testo, che contiene a sua volta le query SQL che andranno a popolare di contenuti alcune tabelle di sistema. Una volta scaricato lo scompatteremo in una posizione a noi comoda, gli assegneremo un nome breve (come help.sql) e lanceremo il seguente comando dal Terminale:

1mysql -user=myuser -password=mypassword mysql < help.sql

Naturalmente occorre sostituire myuser e mypassword con uno username e una password realmente esistenti. Se sono corretti, MySQL dovrebbe inserire rapidamente i contenuti dell’help nelle tabelle di sistema.

La sintassi

La sintassi del comando HELP è la seguente:

1HELP _argomento_

Si può utilizzare anche da riga di comando:

1help _argomento_

In antrambi i casi argomento è una stringa (quindi in SQL bisogna racchiuderlo tra apici!) e l’uso di caratteri maiuscoli o minuscoli è indifferente.

Argomento può essere un qualsiasi aspetto del linguaggio SQL sul quale abbiamo bisogno di informazioni. Ad esempio, se vogliamo informazioni proprio su HELP, scriviamo in SQL:

1HELP 'help'

Se la ricerca restituisce più argomenti

Spesso otterremo subito ciò che cerchiamo. In alcuni casi però, come nel caso appunto di HELP, la ricerca produrrà due o più risultati.

Se ciò avviene, il comando restituirà un recordset di due campi:

  • name: è il nome dell’argomento trovato;
  • is_it_category: vale ‘Y’ se si tratta di una categoria di argomenti, ‘N’ se è un singolo argomento;
  • source_category_name: questo campo non è sempre presente, se c’è indica la categoria nella quale si trova l’argomento (o la sottocategoria) in questione.

In questo caso avremo ‘HELP COMMAND’ e ‘HELP STATEMENT’, che sono argomenti e non categorie. Potremo visionarli con:

1HELP 'help command'

oppure:

1HELP 'help statement'

Il primo si riferisce a help come comando da inserire nella riga di comando, il secondo a HELP come istruzione SQL.

Navigare tra le categorie

Se cerchiamo il nome di una categoria, possiamo esplorarne il contenuto. Vedremo così gli argomenti che contiene (se ce ne sono), la categoria padre (se esiste) e le categorie figlie (se esistono).

1HELP 'functions'

Siccome tra i risultati avremo ‘String Functions’, possiamo decidere di esplorarne il contenuto:

1HELP 'String Functions'

La categoria-radice, che contiene tutte le altre, è ‘Contents’.

Visualizzare un argomento

Proviamo:

1HELP 'ascii'
2HELP 'mediumint'
3HELP 'like'

Otterremo un record di tre campi:

  • name: il nome dell’argomento;
  • description: la sintassi e altre spiegazioni;
  • example: un esempio, se è disponibile.

Le tabelle di sistema

Le tabelle di sistema utilizzate da HELP sono quattro e sono contenute nel database di sistema ‘mysql’. La loro struttura è abbastanza semplice, esaminiamola.

Le categorie sono contenute nella tabella help_category, che ha i seguenti campi:

  • help_category_id: chiave primaria;
  • name: nome della categoria, su questo campo c’è un indice UNIQUE;
  • parent_category_id: è l’id della categoria padre, 0 se non c’è una categoria padre;
  • url: questo campo è sempre vuoto, probabilmente dovrebbe contenere l’url corrispondente alla categoria nella documentazione ufficiale sul sito di MySQL.

Gli argomenti sono contenuti nella tabella help_topic, che ha i seguenti campi:

  • help_topic_id: chiave primaria;
  • name: nome dell’argomento, su questo campo c’è un indice UNIQUE;
  • help_category_id: l’id della categoria a cui appartiene l’argomento;
  • description: la spiegazione dell’argomento;
  • example: un esempio;
  • url: l’url della pagina della documentazione ufficiale che corrisponde all’argomento.

Siccome l’istruzione HELP non restituisce mai il campo url, se si necessita di un approfondimento, per conoscere rapidamente l’url da consultare, si può utilizzare la seguente query:

1SELECT url FROM help_topic WHERE name='argomento'

Le ultime due tabelle probabilmente non ci interessano, ma le analizziamo ugualmente per completezza.

Alcune parole chiave sono associate agli argomenti (non alle categorie). Vengono utilizzate internamente per le ricerche, in modo del tutto trasparente, e sono contenute nella tabella help_keyword, che ha i seguenti campi:

  • help_keyword_id: chiave primaria;
  • name: la parola chiave, su questo campo c’è un indice UNIQUE.

La relazione tra le parole chiave e gli argomenti, essendo una relazione molti a molti, è rappresentata nella tabella help_relation, che ha i seguenti campi:

  • help_keyword_id: l’id di una parola chiave;
  • help_topic_id: l’id di un argomento.

Entrambi i campi, insieme, costituiscono la chiave primaria.

Condividi su:

Esprimi un voto:

  • Current rating: 0.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve, dopo tante storie ho studiato il php e mysql .. . che in questo forum parlavo php e campo mysql timestamp di gigi Vai al topic

ciao a tutti ho creato un forum su aruba ma non so come farlo visualizzare nel mio aruba di albertodiprima Vai al topic

Salve a tutti gente, questo è il mio primo post su questo forum e questo a causa Problema Gravissimo con AutoIncrement di stefanoadsl Vai al topic

Salve! Mi presento, mi chiamo Adriano e sono uno studente di ingegneria informatica Problema Trigger di Xanakro Vai al topic

Ciao a tutti!
Volevo chiedere una informazione.
Ho una query che lanciata la prima Query Eseguita più volte di OltreLeStelle Vai al topic