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_name
db_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 NULL
Key
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