В данной статье мы рассмотрим способ поиска имён всех таблиц в БД.
Создадим таблицы в нашей БД:
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 |
В данной статье мы рассмотрели способ получения имён все таблиц в БД.