Как посмотреть структуру таблиц в MySQL
SHOW DATABASES; — список баз данных
SHOW TABLES [FROM db_name]; — список таблиц в базе
SHOW COLUMNS FROM таблица [FROM db_name]; — список столбцов в таблице
SHOW CREATE TABLE table_name; — показать структуру таблицы в формате «CREATE TABLE»
SHOW INDEX FROM tbl_name; — список индексов
SHOW GRANTS FOR user [FROM db_name]; — привилегии для пользователя.
SHOW VARIABLES; — значения системных переменных
SHOW [FULL] PROCESSLIST; — статистика по mysqld процессам
SHOW STATUS; — общая статистика
SHOW TABLE STATUS [FROM db_name]; — статистика по всем таблицам в базе
Запись опубликована 07.02.2012 автором admin в рубрике трудовыебудни.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
MySQL список таблиц и их структура
Для настройки кодировки utf8 по умолчанию
Необходимо внести следующие изменения в файл my.cnf (my.ini):
[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci’ character-set-server = utf8 collation-server = utf8_unicode_ci
[client]
default-character-set = utf8
CREATE TABLE `table_new` FROM `table_orig`;
Информация об установленной версии pkg_info | grep mysql (FreeBSD) добавить столбец в таблице в базе mysql
ALTER TABLE `table_name` ADD `vcolumn_name` INT( 11 ) NOT NULL;
переименование столбцов в таблице
ALTER TABLE `table` CHANGE COLUMN `test` `materials` INT(10) NOT NULL DEFAULT 0;
внести изменения в столбцы таблицы
ALTER TABLE `table` MODIFY COLUMN `test` SMALLINT NOT NULL DEFAULT 0, `materials` SMALLINT NOT NULL DEFAULT 0;
ALTER TABLE tablename ENGINE=MyISAM
В будущем, если включите innodb_file_per_table, сможете уменьшать объем tablespace путем
пересоздания таблиц сразу в InnoDB (т.к. в режиме файл-на-таблицу файл при удалении таблицы
стирается) командой
ALTER TABLE tablename ENGINE=InnoDB
Определение размера таблицы
SELECT table_name AS table_name, engine, ROUND(data_length/1024/1024,2) AS total_size_mb, table_rows FROM information_schema.tables WHERE table_schema=DATABASE();
Показывает обьем и количество строк в таблицах MySQL.
Перемещение таблицы MySQL в другую базу
mysql> RENAME TABLE database1.table TO database2.table;
Копирование таблицы MySQL в другую базу
mysql> CREATE TABLE database2.table LIKE database1.table; mysql> INSERT INTO database2.table SELECT * FROM database1.table;
Копирование таблицы MySQL в другую базу с условием
mysql> CREATE TABLE database2.table LIKE database1.table; mysql> INSERT INTO database2.table SELECT * FROM database1.table WHERE `row`='1';
Копирование необходимых столбцов таблицы MySQL в другую базу
mysql> INSERT INTO database2.table(`row_1`, `row_2`, `row_3`) SELECT `row_1`, `row_2`, `row_3` FROM database1.table;
database1— база из которой копируем database2 — база в которую копируем
table — название таблицы
Текущее состояние кэша
Посмотреть состояние кэша можно с помощью запроса:
mysql> SHOW GLOBAL STATUS LIKE 'Qcache%'; +-------------------------+----------+ | Variable_name | Value | +-------------------------+----------+ | Qcache_free_blocks | 973 | | Qcache_free_memory | 14282000 | | Qcache_hits | 3293750 | | Qcache_inserts | 252819 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 66645 | | Qcache_queries_in_cache | 1342 | | Qcache_total_blocks | 3709 | +-------------------------+----------+ 8 rows in set (0.00 sec)
- Qcache_free_memory — объем свободной памяти, отведенной под кэш.
- Qcache_hits — количество запросов, отработанных из кэша.
- Qcache_inserts — количество вставок запросов в кэш.
- Qcache_lowmem_prunes — количество высвобождений памяти из-за наполненности кэша.
- Qcache_not_cached — количество запросов, не подлежащих кэшированию.
- Qcache_queries_in_cache — количество запросов, находящихся в кэше в настоящее время.
Мерой эффективности кэша может служить отношение Qcache_hits / (Qcache_inserts + Qcache_not_cached).
Читайте другие интересные статьи
Понравилась статья, расскажи о ней друзьям, нажми кнопку!
Посмотреть структуру таблицы mysql для версий 5.7 и 8
В данном руководстве будет продемонстрировано 3 способа посмотреть структуру таблицы с помощью таких операторов как:
- DESCRIBE в сокращённой форме DESC;
- SHOW;
- EXPLAIN.
Используемое программное обеспечение:
- MySQL 5.7.33;
- MySQL 8.0;
- Windows 10 21H2 (сборка ОС 19044.1889).
Во всех экспериментах будет использована системная одноимённая база данных mysql, т.к. данная база присутствует во всех версиях СУБД MySQL.
Использование DESCRIBE в MySQL
Сразу хотелось бы уточнить, что в mysql сокращённую форму DESC можно расшифровать двумя способами:
- DESC — это DESCRIBE;
- DESC — означающий descending, используется при сортировке в ORDER BY клаузуле, например ORDER BY id DESC, что означает сортировка в обратном порядке.
1-й случай относится к текущей теме, 2-й — нет.
Для начала конечно же необходимо подключиться к СУБД MySQL через консоль.
Подключаемся к mysql 5.7
mysql -P 3307 -uroot -p mysql
- mysql в начале — это консольная утилита mysql.exe
- -P — параметр в верхнем регистре означающий port/порт;
- -u — параметр означающий user/пользователь;
- -p — параметр в нижнем регистре означающий пароль/password
- mysql в конце — это системная база данных, также можно использовать абсолютно другую базу данных, к которой есть доступ.

Подключаемся к MySQL 8.0
mysql -P 3306 -uroot mysql
Версия 8.0 настроена без пароля для пользователя root.

При подключении имя базы данных, в нашем случае mysql, можно не использовать, тогда придётся использовать оператор use:
Далее используется таблица user в базе mysql:
DESCRIBE user;


Проверим работу сокращённого оператора DESC:
DESC user;


С помощью встроенного справочника можно посмотреть информацию о данном операторе DESCRIBE:
help describe;
для версии mysql 5.7

для версии mysql 8.0:

Использование в MySQL show columns from table
В данном блоке рассмотрю использование оператора SHOW COLUMNS, которого будет достаточно для изучения структуры таблицы.
SHOW COLUMNS FROM user;
Оператор SHOW с таким синтаксисом можно использовать если наше подключение находится в контексте нужной нам базы данных, о чём свидетельствует параметр «Current database: mysql«
mysql 5.7

mysql 8.0

SHOW COLUMNS FROM user FROM mysql;
Если подключение не находится в контексте нужной нам базы или вообще не в контексте какой-либо базы, то можно и нужно указать оператору базу с помощью клаузулы FROM:
mysql 5.7

mysql 8.0

SHOW COLUMNS FROM mysql.user;
Также не будучи в контексте какой-либо базы допускается использование так называемого полного квалификатора, т.е. перед именем таблицы использовать имя базы данных через точку: .
mysql 5.7

mysql 8.0

Также настоятельно рекоменду воспользоваться встроенным руководством по данному оператору:
help show columns;
которое присуствует как в MySQL 5.7

так и в mysql 8

Использование оператора EXPLAIN в MySQL
Оператор EXPLAIN редко используется для просмотра структуры таблицы, но знать о его использовании в таком контексте тоже необходимо:
EXPLAIN user;
В первом случае также неоходимо быть в контексте нужной базы данных:
MySQL 5.7

MySQL 8.0

EXPLAIN mysql.user;
Во втором случае контекст базы данных не обязателен т.к. используется полный квалификатор:
MySQL 5.7

MySQL 8.0

Также по традиции рекомендую ознакомиться с официальной документацией, встроенной в MySQL:
help EXPLAIN;
MySQL 5.7

MySQL 8.0
Получаем список таблиц MySQL
Кроме манипуляции с данными в СУБД MySQL присутствует возможность работы с таблицами. В частности, работая в консоли MySQL можно в любой момент посмотреть таблицы, которые находятся в базе. Дальше расскажем о том как посмотреть их список в операционной системе Ubuntu 20.04.
Просматриваем список данных
Перед тем как вывести, следует посмотреть какие базы данных присутствуют в СУБД. Для вывода списка всех доступных баз необходимо выполнить следующую команду:
Получаем список
Когда список доступных баз данных известен можно посмотреть список в необходимой БД.
Как посмотреть таблицы из базы
Прежде чем посмотреть перечень в базе данных, нужно ее сделать по умолчанию (т.е. выбрать). Для этого необходимо использовать команду USE и в качестве параметра передав ей имя необходимой базы данных. Например, есть база с именем test_db, тогда команда будет выглядеть следующим образом:

Вывод сообщения Database changed означает что она выбрана и все необходимые манипуляции теперь будут производиться с данной базой данных. Теперь для просмотра всех таблиц необходимо выполнить команду:

Посмотреть список таблиц в MySQL легко.
Как решить поставленную задачу
Также имеется возможность просматривать таблицы в других базах данных при этом находясь в какой-либо базе данных. В качестве примера выберем базу test_db и находясь в ней же, выполним запрос на просмотр таблиц в другой базе данных с именем users. Для этого необходимо выполнить команду

Можно вывести список таблиц можно при помощи опции FULL. Необязательный параметр FULL отображает тип таблицы в отдельном столбце. В качестве типа может быть VIEW (представление) или BASE TABLE (базовая таблица). Для вывода данной информации необходимо выполнить команду:

Оператор LIKE также можно использовать с командой SHOW TABLES для фильтрации поиска по шаблону. Например, есть test_db и необходимо вывести все таблицы, которые начинаются с «my». Шаблон для поиска будет выглядеть следующим образом:
Просмотр без входа в оболочку
Вывести список можно и без подключения к консоли MySQL. В примере ниже осуществляется подключение под пользователем root и сразу же при помощи опции e передается запрос на отображении таблиц в test_db:
mysql -u root -p -e ‘SHOW TABLES FROM test_db;’

На этом инструкции завершена.