3.4 Uzyskiwanie informacji o bazach danych i tabelach
Co zrobić, jeśli zapomnisz nazwy bazy danych lub tabeli, albo jaka jest struktura danej tabeli (np. jak nazywają się jej kolumny)? MySQL rozwiązuje ten problem za pomocą kilku poleceń, które dostarczają informacji o bazach danych i tabelach, które obsługuje.
Wcześniej widziałeś SHOW DATABASES, który zawiera listę baz danych zarządzanych przez serwer. Aby dowiedzieć się, która baza danych jest aktualnie wybrana, należy użyć funkcji DATABASE():
mysql> SELECT DATABASE();+------------+| DATABASE() |+------------+| menagerie |+------------+
Jeśli nie wybrano jeszcze żadnej bazy danych, wynikiem jest NULL.
Aby dowiedzieć się, jakie tabele zawiera domyślna baza danych (na przykład, gdy nie jesteś pewien nazwy tabeli), użyj tego stwierdzenia:
mysql> SHOW TABLES;+---------------------+| Tables_in_menagerie |+---------------------+| event || pet |+---------------------+
Nazwą kolumny w danych wyjściowych utworzonych przez to polecenie jest zawsze Tables_in_, gdzie db_namedb_name jest nazwą bazy danych. Zobacz Sekcja 13.7.7.39, „Polecenie SHOW TABLES”, aby uzyskać więcej informacji.
Jeśli chcesz poznać strukturę tabeli, przydatne jest polecenie DESCRIBE , które wyświetla informacje o każdej kolumnie tabeli:
mysql> DESCRIBE pet;+---------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| name | varchar(20) | YES | | NULL | || owner | varchar(20) | YES | | NULL | || species | varchar(20) | YES | | NULL | || sex | char(1) | YES | | NULL | || birth | date | YES | | NULL | || death | date | YES | | NULL | |+---------+-------------+------+-----+---------+-------+
Field wskazuje nazwę kolumny, Type to typ danych dla kolumny, NULL wskazuje, czy kolumna może zawierać wartości NULLKey wskazuje, czy kolumna jest indeksowana, a Default określa wartość domyślną kolumny. Extra wyświetla specjalne informacje o kolumnach: Jeśli kolumna została utworzona z opcją AUTO_INCREMENT, jej wartość to auto_increment, a nie pusta.
DESC jest skróconą formą DESCRIBE. Więcej informacji na ten temat znajduje się w rozdziale 13.8.1, „Deklaracja DESCRIBE”.
Zdanie CREATE TABLE niezbędne do utworzenia istniejącej tabeli można uzyskać za pomocą wyrażenia SHOW CREATE TABLE. Zobacz sekcję 13.7.7.10, „SHOW CREATE TABLE Statement”.
Jeśli posiadasz indeksy na tabeli, SHOW INDEX FROM wywołuje informacje o nich. Zobacz sekcję 13.7.7.22, „Polecenie SHOW INDEX”, aby dowiedzieć się więcej o tym poleceniu.tbl_name