INFORMATION_SCHEMA – czyli jak wyświetlić wszystkie tablice i kolumny w bazie danych mySQL
INFORMATION_SCHEMA – w mySQL możemy skorzystać ze specjalnego schematu information_schema
zawierającego informacje o budowie naszych baz danych, tabelach, kolumnach, widokach i innych przydatnych informacjach. Jako, że w niniejszym artykule zajmować się będziemy tabelami i kolumnami omówię pokrótce: tables
i columns
.
INFORMATION_SCHEMA.TABLES – jest tak na prawdę tabelą zawierającą informację o tabelach w bazie danych takie między innymi jak: nazwa bazy danych z której pochodzi tabela, nazwa tabeli, rozmiar, czas utworzenia, kodowanie i inne informacje. Spójrzmy na przykład:
select * from information_schema.tables where table_schema='baza_danych'; select table_schema, table_name from information_schema.tables;
Powyższe polecenie (1) wyświetli nam informację o wszystkich tabelach w bazie danych o nazwie: baza_danych
. Kolumna table_schema
w tabeli: information_schema.tables
zawiera nazwy baz danych, zaś table_name
nazwy tabel. Jako że jest to zwykłe polecenie select
możemy stosować klauzule where
, np;
select table_schema, table_name from information_schema.tables where table_name like '%prac%';
Wyświetli nam listę baz danych oraz tabel w których została znaleziona nazwa tabeli zawierająca frazę: prac
, czyli np. praca,
pracownicy
, zapracowani
itp.
INFORMATION_SCHEMA.COLUMNS – również jest tabelą, która zawiera informację o kolumnach w bazie danych. Są to między innymi: nazwa bazy danych oraz tabeli z której pochodzi kolumna, nazwa kolumny, jej typ, rozmiar, kodowanie i inne informacje. Spójrzmy na przykład:
select * from information_schema.columns; select table_schema, table_name, column_name from information_schema.columns;
Powyższe polecenie (1) wyświetli nam informację o wszystkich tabelach oraz szczegółowe informacje o wszystkich kolumnach we wszystkich bazach danych. Kolumna table_schema
w tabeli: information_schema.columns
zawiera nazwy baz danych, table_name
nazwy tabel, a column_name
nazwy kolumn, Również w powyższych zapytaniach sql
możemy stosować klauzulę: where
. Spójrzmy na przykłady:
select table_name, column_name from information_schema.columns where table_schema='baza_danych'
Powyższe polecenie wyświetli nam wszystkie nazwy tabel i kolumn w bazie danych o nazwie: baza_danych
.
select table_name from information_schema.columns where table_schema='baza_danych' and column_name='pesel';
Powyższe polecenie wyświetli nam listę wszystkich tabel z bazy danych o nazwie: baza_danych
zawierające kolumnę: pesel
.