Esempi MySQL Information_Schema

Esempi MySQL Information_Schema

Nella versione 5.0, mysql ha implementato il Information_Schema database, che è visibile come un normale database. Sebbene il suo comportamento e funzionalità siano simili a un database normale, le informazioni contenute nel database non sono tutte dati regolari.

Ecco il modo migliore per descrivere il Mysql Information_schema Banca dati. È un database contenente informazioni su altri database. È disponibile in ogni istanza MySQL e viene utilizzato per archiviare informazioni sui metadati su tutti gli altri database nel server. È anche chiamato catalogo di sistema o dizionario dei dati.

Come tutti i database MySQL, le informazioni in Information_Schema Il database viene archiviato in tabelle di sola lettura. Tuttavia, in realtà, sono viste e non basare tabelle mysql. In questo senso, non puoi eseguire mysql trigger contro le tabelle memorizzate nel database, né ci sono file associati ad essi.

NOTA: Non troverai anche una directory in nome di Information_Schema.

Nonostante tutto ciò, il Information_Schema Il database è il luogo perfetto per interrogare le informazioni su altri database memorizzati sul server. Questo tutorial mira a fornirti una panoramica del Information_Schema database e darti alcuni esempi di utilizzo del database.

Informazioni di base su Information_Schema

A partire da mysql 5.0 e sopra, se esegui i database show, il Informazioni _Schema Database è visibile e può essere utilizzato come database normale.

MySQL> Show Database;
+--------------------+
| Database |
+--------------------+
| Information_Schema |
| mysql |
| Performance_schema |
| Sakila |
| sys |
| mondo |
+--------------------+
6 righe in set (0.00 sec)

Si può utilizzare il database Information_Schema semplicemente utilizzando la query di utilizzo MySQL come:

mysql> usa informazioni_schema;

Una volta nel database, è possibile visualizzare le tabelle memorizzate utilizzando il comando come:

Mysql> Show Tables;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| Amministrabile_role_authorizations |
| Applicabile_roles |
| Caratteri_set |
| Check_constraints |
| COLLAZIONE_CHARACTER_SET_APPLICABILITÀ |
| COLLAZIONI |
| Column_privileges |
| Column_statistics |
| Colonne |
| Colons_extensions |
| Enabled_Roles |
| Motori |
| Eventi |
| File |
| INNODB_BUFFER_PAGE |
| Innodb_buffer_page_lru |
-----------Dati troncati----------------

L'output sopra mostra alcune delle tabelle memorizzate nel database Information_Schema. Ricorda che non sono tabelle reali e quindi non possono essere modificati. Invece, sono archiviati nella memoria e lasciati cadere una volta che il server MySQL è chiuso. Al riavvio, Information_Schema viene ricostruito e popolato con i dati esistenti sul server.

Selezionare da Information_Schema

Per visualizzare le informazioni memorizzate nel file Information_Schema database, è possibile utilizzare l'istruzione seleziona. Ad esempio, per elencare le informazioni nella tabella dei motori, il comando come:

mysql> Seleziona * da information_schema.motori;

Questo scaricherà i dati memorizzati nella tabella come mostrato:

Esempio 1: mostra i tavoli più grandi

L'esempio seguente mostra come usare il Information_Schema Per mostrare i più grandi database sul server.

Dopo aver eseguito la query sopra, otterrai tutte le tabelle delle tue dimensioni, a partire dal più grande al più piccolo.

Ecco un esempio di esempio:

Esempio 2: mostra i privilegi

Utilizzando il table_priviliges nel database dello schema informativo, possiamo ottenere i privilegi sul server MySQL. Alcune delle colonne in questa tabella sono:

  • Beneficiario - Questo dimostra il conto mysql a cui è concesso il privilegio. Questo è di solito nel formato del nome utente@hostname.
  • Table_catalog - Contiene il nome del catalogo a cui appartiene la tabella. Il valore è def per impostazione predefinita.
  • Table_schema - Il nome del database a cui appartiene la tabella.
  • Table_name - Il nome della tabella.
  • Is_grantee - Valore booleano se l'utente ha un privilegio di sovvenzione. Di solito contiene un valore di sì o no.

Utilizzando le informazioni di cui sopra, possiamo visualizzare i privilegi nel Mysql server usando la query:

Seleziona * da Information_Schema.Schema_priviliges;

Questo comando ti darà un output come mostrato.

Esempio 3 - Mostra i processi di esecuzione

Possiamo usare il Elist di processo tabella disponibile in Information_Schema Tabella per vedere le operazioni in esecuzione sul server.

Ecco una query di esempio per mostrare tutti i processi in esecuzione:

Seleziona * da Information_Schema.Processo di processo;

Lo scarico di tutti i processi in esecuzione mostrerà un output simile a quello mostrato:

Puoi anche usare il comando

Mostra il processo completo, che mostrerà informazioni simili come query su Elist di processo tavolo nel Information_Schema.

Esempio 4 - Show Table Indexes Information

Utilizzando la tabella delle statistiche, possiamo mostrare informazioni sugli indici della tabella. Ecco una query di esempio:

Seleziona * da Information_Schema.Statistiche dove table_schema = "sakila" limite 5;

Informazioni su tutti gli indici nello schema Sakila come mostrato di seguito:

Questi sono alcuni degli esempi che puoi interrogare da Information_Schema Banca dati.

Conclusione

IL Information_Schema Il database è una fonte di informazioni per tutti gli altri database e il server MySQL stesso. Inoltre, ti fornisce una pletora di opzioni per gestire e modificare le informazioni per interrogare. Se combini il potere di INFORNMATION_SCHEMA e la magia di SQL, hai la massima potenza di qualsiasi utente di database.

Grazie per la lettura e il tempo SQL!