Mysql
 sql >> база данни >  >> RDS >> Mysql

Различни начини за преглед на таблици в MySQL Server

Има два основни метода за преглед на таблиците в MySQL:

  1. MYSQL SHOW МАССИ команда.
  2. Запитване на Information_schema.tables маса.

В тази статия ще разгледаме и двете.

Команда за MySQL SHOW TABLES

Командата show tables показва списъка на всички таблици, създадени в база данни. Синтаксисът е следният:

SHOW [EXTENDED] | [FULL] TABLES
    [{FROM} database_name]
    [LIKE 'DBNamePattern']

В синтаксиса,

  1. Модификатори :Можем да използваме някоя от следните опции за преглед на таблиците:
    1. Разширено – тази опция попълва списъка с таблиците, които са били създадени от неуспешните оператори ALTER TABLE.
    2. ПЪЛЕН – тази опция показва допълнителна колона, която предоставя типа на таблицата. Това може да бъде основна таблица, изглед или системен изглед.
  2. ОТ – ако искате да попълните списъка с таблици от конкретната таблица, можете да използвате ключовата дума FROM.
  3. Харесвам – ако искате да попълните списъка с таблици с определен модел в имената им, можете да използвате ключовата дума LIKE.

Нека видим примерите.

Пример 1:Показване на всички таблици, създадени в конкретна база данни

За да видите всички MySQL таблици, създадени в Sakila база данни, използвайте модификатора FULL и ключовата дума FROM. Изпълнете следната команда:

mysql> SHOW TABLES FROM sakila;

Изход

Както можете да видите, заявката попълни списъка с таблиците от Sakila база данни.

Пример 2:Попълване на списъка с таблици със специфичен модел на ключова дума

Да предположим, че искаме да получим списък с таблици, чиито имена започват с ключовата дума film . Използваме ключовата дума LIKE, за да съответстваме на шаблона.

Но когато използваме LIKE ключова дума, не можем да използваме ОТ модификатор. Заявката е следната:

use sakila;
SHOW TABLES like 'film%'

Изход

Пример 3:Попълнете списъка с таблици с неговия тип

За да попълним списъка с таблици с техния тип, можем да използваме ПЪЛЕН модификатор. Да предположим, че искаме да извлечем списъка с таблици с техните типове, създадени в базата данни Sakila. Вижте следната заявка:

mysql> SHOW FULL TABLES FROM sakila;

Изход

Сега нека попълним списъка с таблици от information_schema.tables .

Таблица за заявка Information_schema.tables

За да видите MySQL таблици, можем да използваме information_schema.tables таблица, която съдържа следната информация:

  • Схема_таблица :Име на базата данни или схемата, в която е създадена таблицата.
  • Име на таблица: Име на таблицата.
  • Тип_таблица: Тип на масата. Може да бъде някое от следните:
    • Системен изглед: Списък на системните изгледи. Той съдържа информацията за вътрешните данни на базата данни. Тези изгледи се създават чрез комбиниране на множество базови таблици с информацията за базата данни.
    • Основа таблица: Списъкът с базови таблици може да бъде потребителски или системни таблици.
    • Преглед: Списък с дефинирани от потребителя изгледи.
  • Двигател :Име на базата данни, в която е създадена таблицата.
  • Версия :Номерът на версията на .frm файл на таблицата.
  • Формат_ред :Форматът на съхранение на редове. Форматът за съхранение на редове може да бъде всеки от следните:
    • Поправено
    • Компресиран
    • Излишно
    • Динамичен
    • Компактно
  • Таблица_редове :Брой редове в таблицата. Ако използвате InnoDB таблици, той връща прогнозния брой редове. За да получите точния брой редове, използвайте SELECT COUNT(*) запитване.
  • Ср. дължина_на_реда :Средна дължина на реда на файла с данни.
  • Дължина_данни :Ако използвате MyISAM таблици, стойността на data_length колоната е дължината на файла с данни. Ако използвате таблиците InnoDB, стойността на Data_length колоната е размерът на размера, разпределен на клъстерирания индекс, умножен по размера на страницата на InnoDB.
  • Макс. дължина на_данните: Максималната разрешена дължина на файла с данни. Това е броят на байтовете, които могат да бъдат съхранени в таблицата.
  • Индекс_дължина: Дължината на индекса. Ако използвате MyISAM таблици, стойността на index_length колона показва размера на индекса. Ако използвате таблиците InnoDB, стойността на index_length колоната е общият размер на всички неклъстерирани индекси, умножен по размера на страницата.
  • Без данни :Общият брой разпределени, но неизползвани байтове. Ако използвате таблицата InnoDB, стойността на data_free колоната е неизползваното пространство на табличното пространство, в което е създадена таблицата.
  • Автоматично_инкремент: Стойността на Auto_increment колоната е следващата стойност за автоматично увеличение.
  • Create_time :Датата и часът, когато е създадена таблицата. Когато възстановим базата данни, стойността на create_date ще бъде времето, когато базата данни е била възстановена.
  • Update_time :Датата и часът, когато файлът с данни е бил актуализиран. Показва времевата марка на последните INSERT, UPDATE или DELETE оператори, изпълнени в таблиците InnoDB.
  • Време на проверка: Датата и часът на последната проверка на таблицата.
  • Сравниване на таблици :Името на съпоставянето по подразбиране на таблицата.
  • Контролна сума :Стойността на контролната сума.
  • Опция_Създаване :Опцията за допълнителна конфигурация, която е била използвана за създаване на таблицата.
  • Коментар_таблица :Коментарът или информацията, използвани при създаването на таблицата.

Пример 1:Попълване на списък с всички таблици

Да предположим, че искаме да попълним всички таблици, създадени във всички бази данни. Заявката е следната:

mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;

Изход

Както можете да видите, заявката е попълнила списъка с таблици с името на базата данни и времето за създаване. Заявката върна много записи, така че изходът е изрязан.

Пример 2:Попълване на списък с всички таблици, създадени в конкретна база данни

За да попълните списъка с таблици, създадени в Sakila база данни, можете да приложите филтъра върху Schema_Schema колона:

mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';

Изход

Както можете да видите, заявката е върнала списъка с таблици и изгледи, създадени в базата данни Sakila, времето за създаване и типа.

Пример 3:Попълване на списък на всички таблици с брой редове

Можем да включим Таблица_редове колона, за да видите броя на редовете на MySQL таблици. Да предположим, че искате да получите списък с таблици, чието име започва с film . Резултатът трябва да включва броя на записите в тези таблици.

mysql> select table_catalog, table_schema, table_name,table_type,table_rows from information_schema.tables WHERE table_schema='sakila' and table_name like 'film%' and table_type='BASE TABLE';

Изход

Пример 4:Попълване на броя таблици и изгледи

Например, искаме да получим броя на таблиците и изгледите, създадени в базата данни. За да направите това, изпълнете следната заявка:

mysql> select table_schema as 'Database OR Schema name', count(table_type) as 'Tables and Views', table_type as 'Object Type' from information_schema.tables  group by table_type,table_schema;

Изход

Както можете да видите на изображението по-горе, заявката е попълнила броя на таблиците и изгледите, създадени във всички бази данни.

Пример 5:Таблици с техния размер

Сега искаме да попълним списъка с таблици, създадени в Sakila база данни с техния размер. За да генерирате списъка, изпълнете следната заявка:

mysql> SELECT Table_schema as 'Database Name',  TABLE_NAME AS 'Table',   ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 ) AS 'Size in KB' FROM   information_schema.TABLES WHERE TABLE_SCHEMA = 'sakila' and table_type='BASE TABLE' ORDER BY  (DATA_LENGTH + INDEX_LENGTH) DESC;

Изход

Както можете да видите, заявката е върнала името на базата данни, името на таблицата и размера.

Резюме

Така дефинирахме и се научихме да използваме методите за попълване на списъка с таблици, създадени в базата данни. Разгледахме ШОУ МАССИ команда и след това разгледахме метода за запитване на Information_schema.tables маса. Надяваме се, че тези съвети ще бъдат полезни във вашия работен процес.

Ако искате да научите повече за таблиците в SQL, прочетете статията за временните таблици в SQL Server. И ако искате да добавите нещо, да споделите вашите работни съвети или да обсъдите тези методи, добре дошли в секцията за коментари.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на MySQLi за вмъкване на данни в база данни

  2. Има ли еквивалент на Profiler за MySql?

  3. Грешка в MySQL 1436:Превишаване на стека на нишките, с проста заявка

  4. Писане в MySQL база данни с панди с помощта на SQLAlchemy, to_sql

  5. MySQL тригер за актуализиране на поле до стойността на id