В данной статье мы рассмотрим способ поиска имён всех таблиц в БД.
Создадим таблицы в нашей БД:
CREATE TABLE customers (
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(20),
last_name VARCHAR(20),
email VARCHAR(100)
);
CREATE TABLE goods (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
price DECIMAL
);
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
created DATE,
customer_id INT NOT NULL,
good_id INT NOT NULL,
FOREIGN KEY (customer_id)
REFERENCES customers (id),
FOREIGN KEY (good_id)
REFERENCES goods (id)
);
После этого мы можем выполнить следующий запрос:
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES;
В результате мы увидим все таблицы, которые есть в нашей БД.
| information_schema | CHARACTER_SETS | (null) |
| information_schema | COLLATIONS | (null) |
…
| performance_schema | table_lock_waits_summary_by_table | 1000 |
| performance_schema | threads | 1000 |
| performance_schema | users | 1000 |
Для того, что бы ограничить выборку, мы можем указать параметр TABLE_SCHEMA.
Например, в моём случае запрос будет иметь следующий вид:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'sql_tutorials';
В результате мы видим следующий результат:
| TABLE_SCHEMA | TABLE_NAME | TABLE_ROWS |
|---|---|---|
| sql_tutorials | customers | 0 |
| sql_tutorials | goods | 0 |
| sql_tutorials | orders | 0 |
В данной статье мы рассмотрели способ получения имён все таблиц в БД.
![]()