Содержание

Список (показать) таблиц в базе данных MySQL

При управлении серверами баз данных MySQL одной из самых частых задач, которые вы выполняете, является знакомство со средой. Это включает в себя перечисление баз данных, которые находятся на сервере, отображение таблиц баз данных или выборку информации об учетных записях пользователей и их привилегиях.

В этой статье показано, как составить список таблиц в базе данных MySQL или MariaDB через командную строку.

 

Чтобы получить список таблиц в базе данных 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 [email protected] 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 [email protected];
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`
Если список таблиц очень большой, то можно сократить вывод добавив условие в конструкцию WHERE
WHERE 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.
Как это сделать для 1 таблицы и для всех таблиц в нужной базе данных? Читаем ниже.

Самый простой способ узнать тип движка у таблицы — это вызвать ‘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 SHOW TABLES MySQL SHOW TABLES

Чтобы составить список таблиц в базе данных MySQL, выполните следующие действия:

  1. Войдите на сервер базы данных MySQL с помощью клиента MySQL, такого как mysql
  2. Переключитесь на конкретную базу данных с помощью инструкции USE .
  3. Используйте команду 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 SHOW COLUMNS MySQL SHOW COLUMNS

Чтобы отобразить все столбцы таблицы, выполните следующие действия:

  1. Войдите на сервер базы данных MySQL.
  2. Переключиться на конкретную базу данных.
  3. Используйте оператор 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

Переполнение стека
  1. Товары
  2. Клиенты
  3. Случаи использования
  1. Переполнение стека Публичные вопросы и ответы
  2. Команды Частные вопросы и ответы для вашей команды
  3. предприятие Частные вопросы и ответы для вашего предприятия
  4. работы Программирование и связанные с ним технические возможности карьерного роста
  5. Талант Нанимать технический талант
  6. реклама Связаться с разработчиками по всему миру
,
MySQL Show View с использованием SHOW FULL TABLES или словаря данных

Сводка : в этом учебном пособии вы узнаете, как показать все представления в базе данных 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 show view mysql show view

Из этого руководства вы узнали, как отображать представления базы данных на сервере базы данных MySQL.

  • Был ли этот урок полезным?
  • Да Нет
.