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:
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!