Mysql informasjon_schema eksempler

Mysql informasjon_schema eksempler

I versjon 5.0, MySQL implementerte Informasjon_schema Database, som er synlig som en normal database. Selv om dens oppførsel og funksjonalitet ligner en normal database, er informasjonen i databasen ikke alle vanlige data.

Her er den beste måten jeg kan beskrive MySQL Information_schema database. Det er en database som inneholder informasjon om andre databaser. Det er tilgjengelig i alle MySQL -forekomster og brukes til å lagre metadatainformasjon om alle andre databaser på serveren. Det kalles også systemkatalogen eller dataordboken.

Som alle MySQL -databasene, informasjonen i Informasjon_schema Databasen lagres i skrivebeskyttede tabeller. Imidlertid er de synspunkter og ikke baserer MySQL -tabeller. I den forstand kan du ikke utføre MySQL -utløsere mot tabellene som er lagret i databasen, og det er heller ingen filer tilknyttet dem.

MERK: Du vil heller ikke finne en katalog i navnet til Informasjon_schema.

Til tross for alt dette, den Informasjon_schema Database er det perfekte stedet å spørre om informasjon om andre databaser som er lagret på serveren. Denne opplæringen tar sikte på å gi deg en oversikt over Informasjon_schema database og gi deg noen få eksempler på å bruke databasen.

Grunnleggende informasjon om informasjon_schema

Som av mysql 5.0 og over, hvis du utfører showdatabasene, Informasjon _Schema -database er synlig og kan brukes som en normal database.

MySQL> Vis databaser;
+--------------------+
| Database |
+--------------------+
| informasjon_schema |
| mysql |
| Performance_schema |
| Sakila |
| SYS |
| verden |
+--------------------+
6 rader i settet (0.00 sek)

Man kan bruke Information_schema -databasen ganske enkelt ved å bruke MySQL -bruksspørsmålet som:

mysql> bruk informasjon_schema;

En gang i databasen, kan du se tabellene som er lagret ved å bruke kommandoen som:

mysql> vis tabeller;
+---------------------------------------+
| Tables_in_informasjon_schema |
+---------------------------------------+
| Administrable_role_autorisasjoner |
| AppLicable_roles |
| Character_sets |
| CHECK_CONSTRAINTS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLLASJONER |
| Kolonne_privileges |
| Kolonne_statistikk |
| Kolonner |
| COLUNTS_EXTENSJONS |
| Enabled_roles |
| Motorer |
| Hendelser |
| Filer |
| Innodb_buffer_page |
| Innodb_buffer_page_lru |
-----------Data avkortet----------------

Ovennevnte utdata viser noen av tabellene som er lagret i Information_schema -databasen. Husk at de ikke er faktiske tabeller og derfor ikke kan endres. I stedet blir de lagret i minnet og droppet når MySQL -serveren er lagt ned. Ved omstart gjenoppbygges informasjon_schema og befolket med eksisterende data på serveren.

Velg fra informasjon_schema

For å se informasjonen som er lagret i informasjon_schema Database, du kan bruke SELECT -setningen. For eksempel for å liste opp informasjon i motorens tabell, kommandoen som:

mysql> velg * fra informasjon_schema.motorer;

Dette vil dumpe dataene som er lagret i tabellen som vist:

Eksempel 1 - Vis største tabeller

Eksemplet nedenfor viser hvordan du bruker Informasjon_schema For å vise de største databasene på serveren.

Når du utfører spørringen ovenfor, vil du få alle tabellene i din størrelse, fra den største til den minste.

Her er et eksempelutgang:

Eksempel 2 - Vis privilegier

Ved å bruke tabell_privileges i informasjonsskjemadatabasen, kan vi få privilegiene på MySQL -serveren. Noen av kolonnene i denne tabellen er:

  • Stipend - Dette viser MySQL -kontoen som privilegiet er gitt. Dette er vanligvis i formatet til brukernavn@vertsnavn.
  • Tabell_catalog - Inneholder navnet på katalogen som bordet tilhører. Verdien er def som standard.
  • Tabell_schema - Navnet på databasen som tabellen tilhører.
  • Tabell_navn - Navnet på tabellen.
  • IS_GRANTEE - Boolsk verdi hvis brukeren har gitt privilegium. Inneholder vanligvis en verdi av ja eller nei.

Ved hjelp av informasjonen ovenfor kan vi se privilegiene i Mysql server ved hjelp av spørringen:

Velg * fra informasjon_schema.Schema_privileges;

Denne kommandoen vil gi deg en utdata som vist.

Eksempel 3 - Vis løpsprosesser

Vi kan bruke Prosessliste Tabell tilgjengelig i Informasjon_schema Tabell for å se løpsoperasjonene på serveren.

Her er et eksempel på spørring for å vise alle løpsprosesser:

Velg * fra informasjon_schema.Prosessliste;

Dumping av alle løpsprosessene vil vise en utgang som ligner den som er vist:

Du kan også bruke kommandoen

Vis full prosessliste, som vil vise lignende informasjon som å spørre om Prosessliste bord i Informasjon_schema.

Eksempel 4 - Vis tabellindekser informasjon

Ved hjelp av statistikktabellen kan vi vise informasjon om tabellindekser. Her er et eksempel på spørring:

Velg * fra informasjon_schema.Statistikk der tabell_schema = 'Sakila' grense 5;

Informasjon om alle indeksene i Sakila -skjemaet som vist nedenfor:

Det er noen av eksemplene du kan spørre fra Informasjon_schema database.

Konklusjon

De Informasjon_schema Database er en informasjonskilde for alle andre databaser og MySQL -serveren selv. I tillegg gir det deg en mengde alternativer for å administrere og finjustere for informasjonen å spørre. Hvis du kombinerer kraften til Infornmation_schema Og magien i SQL, du har mest mulig strøm fra en hvilken som helst databasebruker.

Takk for at du har lest og SQL -tid!