Список (показать) таблиц в базе данных MySQL
При управлении серверами баз данных MySQL одной из самых частых задач, которые вы выполняете, является знакомство со средой. Это включает в себя перечисление баз данных, которые находятся на сервере, отображение таблиц баз данных или выборку информации об учетных записях пользователей и их привилегиях.В этой статье показано, как составить список таблиц в базе данных MySQL или MariaDB через командную строку.
Показать таблицы MySQL
Чтобы получить список таблиц в базе данных MySQL, используйте клиентский инструмент mysql для подключения к серверу MySQL и выполните команду SHOW TABLES.
Получите доступ к серверу MySQL:
mysql -u user -p
Из оболочки MySQL переключитесь на базу данных с помощью инструкции USE:
USE database_name;
Выполните следующую команду, чтобы получить список всех таблиц и представлений в текущей базе данных:
SHOW TABLES;
Вывод будет выглядеть примерно так:
+----------------------------+ | Tables_in_database_name | +----------------------------+ | actions | | permissions | | permissions_roles | | permissions_users | | roles | | roles_users | | settings | | users | +----------------------------+ 8 rows in set (0.00 sec)
Необязательный модификатор FULL покажет тип таблицы в качестве второго выходного столбца.
SHOW FULL TABLES;
Вывод будет выглядеть примерно так:
+----------------------------+------------+ | Tables_in_database_name | Table_type | +----------------------------+------------+ | actions | VIEW | | permissions | BASE TABLE | | permissions_roles | BASE TABLE | | permissions_users | BASE TABLE | | roles | BASE TABLE | | roles_users | BASE TABLE | | settings | BASE TABLE | | users | BASE TABLE | +----------------------------+------------+ 8 rows in set (0.00 sec)
Чтобы получить список таблиц без переключения на базу данных, используйте предложение FROM или IN, за которым следует имя базы данных:
SHOW TABLES FROM database_name;
Предложение LIKE можно использовать для фильтрации выходных данных c командой SHOW TABLES в соответствии с определенным шаблоном.
SHOW TABLES LIKE pattern;
Например, следующий оператор вернет все базы данных, имена которых начинаются с ‘open’:
SHOW TABLES LIKE 'permissions%';
+-------------------------------------------+ | Tables_in_database_name (permissions%) | +-------------------------------------------+ | permissions | | permissions_roles | | permissions_users | +-------------------------------------------+ 3 rows in set (0.00 sec)
Знак процента (%) означает ноль, один или несколько символов.
Показывать таблицы MySQL из командной строки
Чтобы получить информацию о таблицах из оболочки Linux, вы можете использовать либо команду mysql -e, либо команду mysqlshow, которая отображает информацию о базах данных и таблицах.
Это особенно полезно, когда вы хотите работать с базами данных MySQL, используя сценарии оболочки.
Запустите следующую команду на своем терминале, чтобы показать список всех баз данных:
mysql -u user -p -e 'SHOW TABLES FROM database_name;'
Вывод отобразит список всех таблиц:
+----------------------------+ | Tables_in_database_name | +----------------------------+ | actions | | permissions | | permissions_roles | | permissions_users | | roles | | roles_users | | settings | | users | +----------------------------+
Вот пример использования команды mysqlshow:
mysqlshow database_name
Вы можете отфильтровать вывод с помощью команды grep.
Заключение
Чтобы получить информацию о таблицах в базе данных MySQL, используйте команду SHOW TABLES.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Полезные команды MySQL « Gentoo Way
Авторизация на сервере (из консоли), -h при необходимости авторизации на удалённом сервере
mysql -h hostname -u root -p
Создание БД
mysql> create database `databasename`;
Создание БД с указанием необходимой кодировки
mysql> create database `databasename` default character set ‘utf8’ collate ‘utf8_unicode_ci’;
Получить список всех БД на сервере
Переключится на БД
Получить список таблиц в базе
Посмотреть структуру таблицы
mysql> describe `table name`;
Ещё один вариант
mysql> show columns from `table name`;
Удалить БД
mysql> drop database `database name`;
Удалить таблицу
mysql> drop table `table name`;
Показать все данные в таблице
mysql> SELECT * FROM `table name`;
Показать строки, где поле `field name` имеет значение «whatever«.
mysql> SELECT * FROM `table name` WHERE `field name` = ‘whatever’;
Показать строки с именем «Bob» и номеном «3444444»
mysql> SELECT * FROM `table name` WHERE name = ‘Bob’ AND phone_number = 3444444;
Показать строки с номером «3444444» не содержащие имени «Bob» отсортированные по номеру.
mysql> SELECT * FROM `table name` WHERE name != ‘Bob’ AND phone_number = 3444444 order by phone_number;
Показать записи с именем, начинающимся на «bob» и номером 3444444
mysql> SELECT * FROM `table name` WHERE name like ‘Bob%’ AND phone_number = 3444444;
Верннуть все данные с именем, начинающемся на «bob» и номером 3444444 ограничить вывод пятью первыми строками
mysql> SELECT * FROM `table name` WHERE name like ‘Bob%’ AND phone_number = 3444444 limit 0,5;
Используем регулярное выражение. Для регистрозависимого выбора используйте «REGEXP BINARY». Данный запрос найдёт все записи, начинающиеся на «a»
mysql> SELECT * FROM `table name` WHERE rec RLIKE ‘^a’;
Показать уникальные записи
mysql> SELECT DISTINCT `column name` FROM `table name`;
Показать выбранные колонки отсортированные от а до я (ASC) или от я до а (DESC)
mysql> SELECT `col1`,`col2` FROM `table name` ORDER BY `col2` DESC;
Вернуть количество строк в таблице.
mysql> SELECT COUNT(*) FROM `table name`;
Просуммировать все числовые поля таблицы
mysql> SELECT SUM(*) FROM `table name`;
Объединение таблиц. Как работает JOIN (в картинках)
mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;
Создание пользователя. Вход под root. Переключение на БД mysql. Создание пользователя и обновление привилегий.
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES(‘%’,’username’,PASSWORD(‘password’));
mysql> flush privileges;
Смена пароля пользователя из консоли
mysqladmin -u username -h hostname -p password ‘new-password’
Смена пароля пользователя из консоли MySQL. Вход как root. Смена пароля. Обновление привелегий.
mysql> SET PASSWORD FOR ‘user’@’hostname’ = PASSWORD(‘passwordhere’);
mysql> flush privileges;
Восстановление пароля root пользователя. Остановить MySQL сервер. Запустить с пониженной безопасностью. Залогинится на MySQL как root. Установить новый пароль. Разлогинится и перезапустить MySQL сервер.
/etc/init.d/mysql stop
mysqld_safe —skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD(‘newrootpassword’) where User=’root’;
mysql> flush privileges;
mysql> quit
/etc/init.d/mysql stop
/etc/init.d/mysql start
Установка пароля root если он ещё не задавался ранее
mysqladmin -u root password newpassword
Смена пароля root
mysqladmin -u root -p oldpassword newpassword
Разрешить пользователю «Bob» подключаться к серверу c локального адреса с паролем «passwd». Войти как root. Переключиться на БД mysql. Дать привилегии. Обновить привелегии.
mysql> use mysql;
mysql> grant usage on *.* to bob@localhost identified by ‘passwd’;
mysql> flush privileges;
Предоставить пользователю привилегии на БД. Авторизоваться как root. Переключиться на БД mysql. Предоставить привилегии. Обновить кеш привилегий.
mysql> use mysql;
mysql> INSERT INTO user (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES (‘%’,’databasename’,’username’,’Y’,’Y’,’Y’,’Y’,’Y’,’N’);
mysql> flush privileges;
или
mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges;
Обновить информацию для существующего пользователя
mysql> use mysql;
mysql> UPDATE `user` SET Select_priv = ‘Y’,Insert_priv = ‘Y’,Update_priv = ‘Y’ where `User` = ‘user’;
flush privileges;
Удалить строки из таблицы
mysql> DELETE from `table name` where `field_name` = ‘whatever’;
Обновить кеш привилегий
Удалить колонку из таблицы
mysql> alter table `table name` drop column `column name`;
Добавить колонку в таблицу
mysql> alter table `table name` add column `new column name` varchar (20);
Переименовать колонку
mysql> alter table `table name` change `old column name` `new column name` varchar (50);
Сделать данные в колоке уникальными (если дублирующиеся уже есть — будет ошибка)
mysql> alter table `table name` add unique (`column name`);
Модифицировать колонку
mysql> alter table `table name` modify `column name` VARCHAR(3);
Удалить индекс
mysql> alter table `table name` drop index `colmn name`;
Загрузить данные в БД из CSV файла.
mysql> LOAD DATA INFILE ‘/tmp/filename.csv’ replace INTO TABLE `table name` FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’ (field1,field2,field3);
Сделать дамп всех БД для бэкапа. Бэкап это файл с SQL командами для воссоздания всех баз.
mysqldump -u root -p —opt > /tmp/alldatabases.sql
Сделать дамп одной базы.
mysqldump -u username -p —databases databasename > /tmp/databasename.sql
Сделать дамп одной таблицы
mysqldump -c -u username -p databasename tablename > /tmp/databasename.tablename.sql
Восстановить БД (или таблицу) из бэкапа
mysql -u username -p databasename < /tmp/databasename.sql
Создание таблицы, пример 1.
mysql> CREATE TABLE `table name` (
`firstname` VARCHAR(20),
`middleinitial` VARCHAR(3),
`lastname` VARCHAR(35),
`suffix` VARCHAR(3),
`officeid` VARCHAR(10),
`userid` VARCHAR(15),
`username` VARCHAR(8),
`email` VARCHAR(35),
`phone` VARCHAR(25),
`groups` VARCHAR(15),
`datestamp` DATE,
`timestamp` time,
`pgpemail` VARCHAR(255)
);
Создание таблицы, пример 2.
mysql> CREATE TABLE `table name` (
personid int(50) not null auto_increment primary key,
firstname VARCHAR(35),
middlename VARCHAR(50),
lastname VARCHAR(50) default ‘bato’
);
Как определить размер таблиц в БД MySQL
Для определения размера таблиц в базе данных из командной строки, размещенной на сервере MySQL или MariaDB требуется 2 действия:1. Подключиться к серверу баз данных, командой: mysql -u root -p (или просто mysql, если локально не требуется аутентификация)
2. Выполнить SQL запрос:
SELECT
table_name AS `Table`,
round(((data_length + index_length) / 1024), 2) `Size in KB`
FROM information_schema.TABLES
WHERE table_schema = "DBName";
где, «DBName» — имя базы данных, для которой необходимо получить список таблиц с размерамиЧтобы определить список и размер таблиц (в килобайтах) базы данных mysql, необходимо будет выполнить запрос:
SELECT
table_name AS `Table`,
round(((data_length + index_length) / 1024 ), 2) `Size in KB`
FROM information_schema.TABLES
WHERE table_schema = "mysql";
Результат выполнения SQL запроса будет примерно такой:
+---------------------------+------------+
| Table | Size in KB |
+---------------------------+------------+
| columns_priv | 4.00 |
| db | 13.94 |
| event | 2.00 |
| func | 1.00 |
| general_log | 0.00 |
| help_category | 4.07 |
| help_keyword | 105.27 |
| help_relation | 28.04 |
| help_topic | 459.83 |
| host | 2.00 |
| ndb_binlog_index | 1.00 |
| plugin | 1.00 |
| proc | 2.00 |
| procs_priv | 4.00 |
| proxies_priv | 12.48 |
| servers | 1.00 |
| slow_log | 0.00 |
| tables_priv | 4.00 |
| time_zone | 1.00 |
| time_zone_leap_second | 1.00 |
| time_zone_name | 1.00 |
| time_zone_transition | 1.00 |
| time_zone_transition_type | 1.00 |
| user | 5.11 |
+---------------------------+------------+
24 rows in set (0.00 sec)
Для получения размера таблиц в Мегабайтах, необходимо строку:
round(((data_length + index_length) / 1024 ), 2) `Size in KB`
заменить на round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
Если список таблиц очень большой, то можно сократить вывод добавив условие в конструкцию WHEREWHERE table_schema = "DBName"
AND table_name = "TableName";
где, TableName — имя таблицы, для который необходимо получить размерНапример, чтобы определить размер таблицы help_topic в базе данных mysql, необходимо будет выполнить SQL запрос:
SELECT
table_name AS `Table`,
round(((data_length + index_length) / 1024 ), 2) `Size in KB`
FROM information_schema.TABLES
WHERE table_schema = "mysql"
AND table_name = "help_topic";
Результат:+------------+------------+ | Table | Size in KB | +------------+------------+ | help_topic | 459.83 | +------------+------------+ 1 row in set (0.00 sec)
Если необходимо получить ограниченных список таблиц, например, содержащих определенные слова в названии, то можно сократить вывод добавив условие (Like «Filter») в конструкцию WHERE
WHERE table_schema = "DBName"
AND table_name Like "Filter";
Например, чтобы определить размер таблиц содержащих слово zone в названии таблицы в базе данных mysql, необходимо будет выполнить SQL запрос:
SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 ), 2) `Size in KB` FROM information_schema.TABLES WHERE table_schema = "mysql" AND table_name Like "%zone%";
Результат:
+---------------------------+------------+
| Table | Size in KB |
+---------------------------+------------+
| time_zone | 1.00 |
| time_zone_leap_second | 1.00 |
| time_zone_name | 1.00 |
| time_zone_transition | 1.00 |
| time_zone_transition_type | 1.00 |
+---------------------------+------------+
5 rows in set (0.00 sec)
PS Эту же информацию можно получить используя PHPMyAdmin, которая предоставляет веб-интерфейс для администрирования СУБД MySQL.
Как посмотреть тип движка у таблиц в MySQL
Очень часто бывает необходимо посмотреть тип движка у таблицы в MySQL.
Самый простой способ узнать тип движка у таблицы — это вызвать ‘SHOW CREATE TABLE ‘ или ‘SHOW TABLE STATUS FROM LIKE ‘.
mysql> USE mysql; mysql> SHOW CREATE TABLE plugin\G; *************************** 1. row *************************** Table: plugin Create Table: CREATE TABLE `plugin` ( `name` varchar(64) NOT NULL DEFAULT '', `dl` varchar(128) NOT NULL DEFAULT '', PRIMARY KEY (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL plugins' 1 row in set (0.00 sec)
или
mysql> SHOW TABLE STATUS FROM mysql LIKE 'plugin'\G; *************************** 1. row *************************** Name: plugin Engine: MyISAM Version: 10 Row_format: Dynamic Rows: 4 Avg_row_length: 51 Data_length: 204 Max_data_length: 281474976710655 Index_length: 2048 Data_free: 0 Auto_increment: NULL Create_time: 2018-02-20 00:21:12 Update_time: 2018-02-20 00:21:12 Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: MySQL plugins 1 row in set (0.00 sec)
и в строке ENGINE мы видим, что у таблицы plugin тип движка MyISAM.
На самом деле есть способ еще проще — это воспользоваться утилитой mysqlshow.
Посмотрим информацию о таблице plugin из БД mysql:
# mysqlshow -u root -p -i mysql plugin Database: mysql Wildcard: plugin +--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+ | plugin | MyISAM | 10 | Dynamic | 4 | 51 | 204 | 281474976710655 | 2048 | 0 | | 2017-12-10 23:37:48 | 2017-12-10 23:37:48 | | utf8_general_ci | | | MySQL plugins | +--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+
Информации довольно много и она достаточно неудобно представлена (много колонок), но можно увидеть поле Engine — это то, что нам нужно.
Если же нужно посмотреть информацию в более удобном виде и узнать не только ENGINE, то можно выполнить такой SQL-запрос:
mysql> SELECT TABLE_NAME,ENGINE,ROW_FORMAT,TABLE_ROWS,DATA_LENGTH,INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'mysql' ORDER BY ENGINE asc; +---------------------------+--------+------------+------------+-------------+--------------+ | TABLE_NAME | ENGINE | ROW_FORMAT | TABLE_ROWS | DATA_LENGTH | INDEX_LENGTH | +---------------------------+--------+------------+------------+-------------+--------------+ | general_log | CSV | Dynamic | 2 | 0 | 0 | | slow_log | CSV | Dynamic | 2 | 0 | 0 | | innodb_index_stats | InnoDB | Compact | 29542 | 5767168 | 0 | | innodb_table_stats | InnoDB | Compact | 3057 | 425984 | 0 | | slave_master_info | InnoDB | Compact | 0 | 16384 | 0 | | slave_relay_log_info | InnoDB | Compact | 0 | 16384 | 0 | | slave_worker_info | InnoDB | Compact | 0 | 16384 | 0 | | db | MyISAM | Fixed | 148 | 65560 | 13312 | | help_topic | MyISAM | Dynamic | 533 | 510552 | 21504 | | proxies_priv | MyISAM | Fixed | 2 | 1386 | 5120 | | time_zone | MyISAM | Fixed | 0 | 0 | 1024 | | event | MyISAM | Dynamic | 0 | 0 | 2048 | | servers | MyISAM | Fixed | 0 | 0 | 1024 | | time_zone_leap_second | MyISAM | Fixed | 0 | 0 | 1024 | | func | MyISAM | Fixed | 3 | 1737 | 2048 | | time_zone_name | MyISAM | Fixed | 0 | 0 | 1024 | | ndb_binlog_index | MyISAM | Dynamic | 0 | 0 | 1024 | | time_zone_transition | MyISAM | Fixed | 0 | 0 | 1024 | | help_category | MyISAM | Dynamic | 40 | 1120 | 3072 | | plugin | MyISAM | Dynamic | 4 | 204 | 2048 | | time_zone_transition_type | MyISAM | Fixed | 0 | 0 | 1024 | | help_keyword | MyISAM | Fixed | 485 | 95545 | 17408 | | proc | MyISAM | Dynamic | 0 | 1200 | 4096 | | user | MyISAM | Dynamic | 160 | 19620 | 6144 | | columns_priv | MyISAM | Fixed | 0 | 0 | 4096 | | help_relation | MyISAM | Fixed | 1090 | 9810 | 20480 | | procs_priv | MyISAM | Fixed | 0 | 0 | 4096 | | tables_priv | MyISAM | Fixed | 7 | 5957 | 8192 | +---------------------------+--------+------------+------------+-------------+--------------+ 28 rows in set (0.00 sec)
Колонка ENGINE — это тип движка у таблицы;
Колонка ROW_FORMAT — это формат строк таблицы;
Колонка TABLE_ROWS — это количества записей в таблице;
Колонка DATA_LENGTH — это размер данных в таблице в байтах;
Колонка INDEX_LENGTH — это размер индекса в таблице в байтах;
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Как узнать размер таблицы базы данных MySQL
Т.к. PhpMyAdmin я не пользуюсь, а использую Navicat Premium в котором, я по ходу что то изменил случайно, и он больше не показывает размер базы данных, а вникать в настройки лень. Размер базы дынных приходится узнавать из консоли, сейчас расскажу как это сделать
Для начала нужно войти в MySQL из терминала
mysql -u root -p
Где root это имя пользователя
Для маководов использующих MAMP немного иначе, как войти в MAMP MySQL я писал ранее.
Для того чтоб посмотреть размер всех баз данных выполните команду:
SELECT table_schema "DB Name", Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM information_schema.tables GROUP BY table_schema;
И на выходе получится что-то вроде
+--------------------+---------------+ | DB Name | DB Size in MB | +--------------------+---------------+ | habrastat | 25.8 | | information_schema | 0.0 | | mysql | 0.6 | | performance_schema | 0.0 | | phpmyadmin | 0.0 | +--------------------+---------------+ 5 rows in set (0.23 sec)
Для того чтоб узнать размер таблиц конкретной базы данных:
SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "my_table";
Где my_table – имя интересующей базы данных.
Результат выполнения показан ниже.
+-----------------------+------------+ | Table | Size in MB | +-----------------------+------------+ | authGroups | 0.03 | | authGroupsPermissions | 0.02 | | authPermissions | 0.05 | | authUsers | 0.02 | | authUsersGroups | 0.02 | | authUsersPermissions | 0.02 | | comments | 0.06 | | configs | 0.02 | | contentArticles | 1.52 | | contentCategories | 0.02 | | contentPerelink | 0.02 | | migrations | 0.02 | | pages | 0.02 | +-----------------------+------------+ 13 rows in set (0.01 sec)
Чтоб узнать размер всех таблиц всех баз данных и отсортировать их по размеру введите:
SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES ORDER BY (data_length + index_length) DESC
Результат:
+--------------------+-------------------------------------------------+------------+ | Database | Table | Size in MB | +--------------------+-------------------------------------------------+------------+ | usamotors | cms_autos | 125.97 | | zabava-l5 | catalogFeedbacks | 64.58 | | zabava-l5 | systemImages | 36.55 | | zabava | catalog_company | 33.55 | | qa-auto | usernames | 27.03 | | zabava-l5 | catalogCompany | 22.52 | | usamotors | cms_autos_bids | 22.52 | | usamotors | cms_autos_place | 18.55 | | qa-auto | qaAnswers | 17.55 | | zabava | cms_images | 16.52 | | zabava-l5 | catalogCompanyOptionValue | 16.11 | | zabava | catalog_company_option_value | 9.52 | | zabava-l5 | catalogCompanyOption | 8.08 | | qa-auto | qaQuestions | 6.52 | | usamotors | cms_autos_model | 6.03 |Список
таблиц в базе данных MySQL
Резюме : в этом руководстве вы узнаете, как использовать команду MySQL SHOW TABLES для запроса таблиц в конкретной базе данных.
Чтобы составить список таблиц в базе данных MySQL, выполните следующие действия:
- Войдите на сервер базы данных MySQL с помощью клиента MySQL, такого как
mysql
- Переключитесь на конкретную базу данных с помощью инструкции
USE
. - Используйте команду
SHOW TABLES
.
Ниже показан синтаксис команды MySQL SHOW TABLES
:
SHOW TABLES;
MySQL ПОКАЗАТЬ ТАБЛИЦЫ Примеры
В следующем примере показано, как составить таблицу в базе данных classicmodels
.
Шаг 1. Подключитесь к серверу базы данных MySQL:
> mysql -u root -p Введите пароль: ********** MySQL>
Шаг 2. Переход на classicmodels База данных
:
mysql> use classicmodels; База данных изменена MySQL>
Шаг 3.Показать таблицы в базе данных classicmodels
:
> показать таблицы; + ------------------------- + | Tables_in_classicmodels | + ------------------------- + | клиенты | | сотрудники | | офисы | | детализация заказа | | заказы | | платежи | | линии продуктов | | продукты | + ------------------------- + 8 рядов в наборе (0,00 сек)
Команда SHOW TABLES
позволяет показать, является ли таблица базовой таблицей или представлением.Чтобы включить тип таблицы в результат, используйте следующую форму инструкции SHOW TABLES
.
ПОКАЗАТЬ ПОЛНЫЕ СТОЛЫ;
Давайте создадим представление в базе данных classicmodels
, которая называется контактов
, которая включает в себя имя, фамилию и телефон от сотрудников,
и клиентов,
таблиц для демонстрации.
CREATE VIEW контакты ТАК КАК ВЫБЕРИТЕ lastName, firstName, добавочный номер в качестве телефона ОТ сотрудников UNION ВЫБЕРИТЕ contactFirstName, contactLastName, телефон ОТ клиентов;
Теперь вы вводите команду ПОКАЗАТЬ ПОЛНЫЕ СТОЛЫ
:
> ПОКАЗАТЬ ПОЛНЫЕ СТОЛЫ + ------------------------- + ------------ + | Tables_in_classicmodels | Тип таблицы | + ------------------------- + ------------ + | контакты | ВИД | | клиенты | ОСНОВНОЙ СТОЛ | | сотрудники | ОСНОВНОЙ СТОЛ | | офисы | ОСНОВНОЙ СТОЛ | | детализация заказа | ОСНОВНОЙ СТОЛ | | заказы | ОСНОВНОЙ СТОЛ | | платежи | ОСНОВНОЙ СТОЛ | | линии продуктов | ОСНОВНОЙ СТОЛ | | продукты | ОСНОВНОЙ СТОЛ | + ------------------------- + ------------ + 9 рядов в наборе (0.00 сек)
Как видите, все таблицы являются базовыми, за исключением таблицы контактов
, которая является представлением.
Для базы данных, которая имеет много таблиц, показ всех таблиц за раз может быть не интуитивно понятным.
К счастью, команда SHOW TABLES
предоставляет вам опцию, которая позволяет фильтровать возвращенные таблицы с помощью оператора LIKE
или выражения в предложении WHERE
следующим образом:
SHOW TABLES LIKE pattern; ПОКАЗАТЬ ТАБЛИЦЫ ГДЕ Выражение;
Например, чтобы показать все таблицы в базе данных classicmodels
, которые начинаются с буквы p
, вы используете следующий оператор:
> SHOW TABLES LIKE 'p%'; + ------------------------------ + | Tables_in_classicmodels (p%) | + ------------------------------ + | платежи | | продуктовые линейки | | продукты | + ------------------------------ + 3 ряда в наборе (0.00 сек)
Или для отображения таблиц, которые заканчиваются строкой 'es'
, вы используете следующий оператор:
> ПОКАЗАТЬ ТАБЛИЦЫ КАК "% es"; + ------------------------------- + | Tables_in_classicmodels (% es) | + ------------------------------- + | сотрудники | | офисы | | линии продуктов | + ------------------------------- + 3 ряда в наборе (0,00 сек)
Следующий оператор иллюстрирует использование предложения WHERE
в операторе SHOW TABLES
для отображения всех представлений в базе данных classicmodels
.
> ПОКАЗАТЬ ПОЛНЫЕ СТОЛЫ ГДЕ table_type = 'VIEW'; + ------------------------- + ------------ + | Tables_in_classicmodels | Тип таблицы | + ------------------------- + ------------ + | контакты | ВИД | + ------------------------- + ------------ + 1 ряд в наборе (0,00 сек)
Иногда вам нужно просмотреть таблицы в базе данных, к которой вы не подключены. В этом случае вы можете использовать предложение FROM
оператора SHOW TABLES
, чтобы указать базу данных, из которой вы хотите отобразить таблицы.
В следующем примере показано, как отобразить таблицы, начинающиеся с «время»
;
> ПОКАЗАТЬ ТАБЛИЦЫ ИЗ mysql LIKE 'time%'; + --------------------------- + | Tables_in_mysql (время%) | + --------------------------- + | часовой пояс | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | + --------------------------- + 5 рядов в наборе (0,00 сек)
Следующее утверждение эквивалентно приведенному выше утверждению, но оно использует В
вместо ОТ
.
ПОКАЗАТЬ ТАБЛИЦЫ В mysql LIKE 'time%';
Важно отметить, что если у вас нет привилегий для базовой таблицы или представления, она не будет отображаться в наборе результатов команды SHOW TABLES
.
В этом руководстве вы узнали, как использовать оператор MySQL SHOW TABLES
для отображения всех таблиц в конкретной базе данных.
- Был ли этот урок полезным?
- Да Нет
Перечисление столбцов в таблице
Сводка : в этом руководстве вы узнаете, как отображать столбцы таблицы, используя оператор DESCRIBE и команду MySQL SHOW COLUMNS.
Использование оператора DESCRIBE
Чтобы отобразить все столбцы таблицы, выполните следующие действия:
- Войдите на сервер базы данных MySQL.
- Переключиться на конкретную базу данных.
- Используйте оператор
DESCRIBE
.
В следующем примере показано, как отобразить столбцы таблицы заказов
в базе данных classicmodels
.
Шаг 1 . Войдите в базу данных MySQL.
> mysql -u root -p Введите пароль: ********** MySQL>
Шаг 2 . Выполните команду USE
для переключения в базу данных на classicmodels
:
mysql> USE classicmodels; База данных изменена MySQL>
Шаг 3 . Используйте DESCRIBE
заявление.
mysql> ОПИСАТЬ заказы; + ---------------- + ------------- + ------ + ----- + ----- ---- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + ---------------- + ------------- + ------ + ----- + ----- ---- + ------- + | OrderNumber | int (11) | НЕТ | PRI | NULL | | | orderDate | дата | НЕТ | | NULL | | | requiredDate | дата | НЕТ | | NULL | | | shippedDate | дата | ДА | | NULL | | | статус | Варчар (15) | НЕТ | | NULL | | | комментарии | текст | ДА | | NULL | | | customerNumber | int (11) | НЕТ | MUL | NULL | | + ---------------- + ------------- + ------ + ----- + ----- ---- + ------- + 7 рядов в наборе (0.01 сек)
На практике вы используете оператор DESC
, который является сокращением оператора DESCRIBE
. Например, следующий оператор эквивалентен DESCRIBE
выше:
DESC заказов;
Команда MySQL SHOW COLUMNS
Более гибкий способ получить список столбцов в таблице — использовать команду MySQL SHOW COLUMNS
.
ПОКАЗАТЬ СТОЛБЦЫ ОТ table_name;
Чтобы отобразить столбцы таблицы, необходимо указать имя таблицы в предложении FROM
оператора SHOW COLUMNS
.Чтобы отобразить столбцы таблицы в базе данных, которая не является текущей базой данных, используйте следующую форму:
ПОКАЗАТЬ КОЛОННЫ ИЗ ИМЕНИ database_name.table_name;
или
ПОКАЗАТЬ КОЛОННЫ ИЗ ИМЕНА table_name IN database_name;
Например, чтобы получить столбцы таблицы заказов
, вы используете оператор ПОКАЗАТЬ КОЛОННЫ
следующим образом:
ПОКАЗАТЬ КОЛОННЫ ИЗ заказов;
Как видно, результат этой команды SHOW COLUMNS
совпадает с результатом инструкции DESC
.
Чтобы получить дополнительную информацию о столбце, добавьте ключевое слово FULL
в команду SHOW COLUMNS
следующим образом:
ПОКАЗАТЬ ПОЛНЫЕ КОЛОННЫ ИЗ table_name;
Например, следующий оператор перечисляет все столбцы таблицы платежей в базе данных classicmodels
.
mysql> ПОКАЗАТЬ ПОЛНЫЕ КОЛОННЫ ИЗ ПЛАТЕЖЕЙ \ G; *************************** 1. ряд ******************** ******* Поле: customerNumber Тип: int (11) Сортировка: NULL Ноль: НЕТ Ключ: PRI По умолчанию: NULL Дополнительно: Привилегии: выбрать, вставить, обновить, ссылки Комментарий: *************************** 2.строка *************************** Поле: checkNumber Тип: варчар (50) Сортировка: latin1_swedish_ci Ноль: НЕТ Ключ: PRI По умолчанию: NULL Дополнительно: Привилегии: выбрать, вставить, обновить, ссылки Комментарий: *************************** 3. строка ******************** ******* Поле: paymentDate Тип: дата Сортировка: NULL Ноль: НЕТ Ключ: По умолчанию: NULL Дополнительно: Привилегии: выбрать, вставить, обновить, ссылки Комментарий: *************************** 4. ряд ******************** ******* Поле: сумма Тип: десятичный (10,2) Сортировка: NULL Ноль: НЕТ Ключ: По умолчанию: NULL Дополнительно: Привилегии: выбрать, вставить, обновить, ссылки Комментарий: 4 ряда в наборе (0.01 сек)
Как видите, команда SHOW FULL COLUMNS
добавляет в набор результатов параметров сортировки
, привилегий
и комментариев
столбцов.
Команда SHOW COLUMNS
позволяет фильтровать столбцы таблицы с помощью оператора LIKE
или предложения WHERE
:
SHOW COLUMNS FROM table_name LIKE pattern; ПОКАЗАТЬ СТОЛБЦЫ ОТ table_name WHERE выражение;
Например, чтобы отображать только столбцы, начинающиеся с буквы c
, вы используете оператор LIKE
следующим образом:
mysql> ПОКАЗАТЬ КОЛОННЫ ИЗ ПЛАТЕЖЕЙ LIKE 'c%'; + ---------------- + ------------- + ------ + ----- + ----- ---- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + ---------------- + ------------- + ------ + ----- + ----- ---- + ------- + | customerNumber | int (11) | НЕТ | PRI | NULL | | | checkNumber | Варчар (50) | НЕТ | PRI | NULL | | + ---------------- + ------------- + ------ + ----- + ----- ---- + ------- + 2 ряда в наборе (0.01 сек)
В этом руководстве вы узнали, как отображать столбцы таблицы, используя команду MySQL SHOW COLUMNS
и оператор DESC
.
- Был ли этот урок полезным?
- Да Нет
mysql — Показать базы данных / таблицы INTO OUTFILE
Переполнение стека- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру
Сводка : в этом учебном пособии вы узнаете, как показать все представления в базе данных MySQL с помощью инструкции SHOW FULL TABLE
или запросить информацию из словаря данных.
MySQL Show View — с использованием SHOW FULL TABLES оператор
Чтобы показать все представления в текущей базе данных, вы используете оператор SHOW FULL TABLES
следующим образом:
ПОКАЗАТЬ ПОЛНЫЕ СТОЛЫ ГДЕ table_type = 'VIEW';
Поскольку оператор SHOW FULL TABLES
возвращает и таблицы, и представления, необходимо добавить предложение WHERE
, чтобы получить только представления.
Если вы хотите показать все представления из другой базы данных, используйте следующий синтаксис:
ПОКАЗАТЬ ПОЛНЫЕ СТОЛЫ [{ОТ | IN} database_name] ГДЕ table_type = 'VIEW';
В этом операторе вы указываете имя базы данных, из которой вы хотите отображать представления после предложения ОТ
или В
.
В следующем примере показаны все представления из базы данных sys
:
ПОКАЗАТЬ ПОЛНЫЕ ТАБЛИЦЫ В sys ГДЕ table_type = 'VIEW';
Если вы хотите получить представление на основе шаблона, вы можете использовать предложение LIKE
следующим образом:
ПОКАЗАТЬ ПОЛНЫЕ СТОЛЫ [{ОТ | IN} database_name] Как шаблон;
В этом примере используется предложение LIKE
для поиска всех представлений из базы данных sys
, имена которых начинаются с , ожидает
:
ПОКАЗАТЬ ПОЛНЫЕ ТАБЛИЦЫ ОТ системы Как "ждет%";
Вот вывод:
Обратите внимание, что если у вас нет привилегий для представления, оно не будет отображаться в выходных данных оператора SHOW TABLES
.
MySQL Show View — с использованием базы данных INFORMATION_SCHEMA
База данных INFORMATION_SCHEMA
обеспечивает доступ к метаданным базы данных MySQL, таким как имена баз данных, таблиц, типы данных столбцов или привилегии.
INFORMATION_SCHEMA
иногда называют словарем базы данных или системным каталогом.
Чтобы показать представления базы данных, вы используете таблицу таблиц из INFORMATION_SCHEMA
.
SELECT * ОТ информации_схема.столы;
Вот частичный вывод:
В этом выводе нас интересуют только три столбца table_schema
, table_name
, table_type
:
- В столбце
table_schema
хранится схема или база данных схемы . вид (или таблица). - В столбце
table_name
хранится имя представления (или таблицы). - В столбце
table_type
хранится тип таблиц:BASE TABLE
для таблицы,VIEW
для представления илиSYSTEM VIEW
для таблицыINFORMATION_SCHEMA
.
Этот запрос возвращает все представления из базы данных classicmodels
:
SELECT имя_таблицы ИЗ INFORMATION_SCHEMA.TABLES ГДЕ table_type = 'VIEW' AND table_schema = 'classicmodels';
Чтобы найти конкретное представление на основе шаблона, используйте столбец table_name
. Например, этот запрос находит все представления, имена которых начинаются с customer
:
SELECT имя_таблицы ИЗ INFORMATION_SCHEMA.таблицы ГДЕ table_type = 'VIEW' AND table_schema = 'classicmodels' AND table_name LIKE 'customer%';
Из этого руководства вы узнали, как отображать представления базы данных на сервере базы данных MySQL.
- Был ли этот урок полезным?
- Да Нет