Перейти к содержанию
100% локально

Извлечение таблиц и столбцов SQL

Перечислите все таблицы, JOIN и столбцы, которые читает SQL запрос, сгруппированные по предложениям.

Входные данные
Выходные данные

Извлечение таблиц и столбцов SQL

Вставьте SQL запрос SELECT и этот инструмент точно определит, что он трогает: какие таблицы запрашивает, как эти таблицы объединены и какие столбцы взяты из списка SELECT, предложения WHERE, GROUP BY и ORDER BY. Он нужен в тот момент, когда вы наследуете отчётный запрос, медленный эндпоинт или чужую миграцию и вам нужно знать его реальный охват, прежде чем что-либо менять, без необходимости запускать запрос в консоли базы данных.

Псевдонимы таблиц разрешаются автоматически, поэтому "o.total" в запросе, начинающемся с "FROM orders o", указывается как реальное имя таблицы, а не однобуквенный псевдоним. Каждый JOIN перечисляется с указанием его типа — inner, left, right, full, cross или старый синтаксис через запятую — вместе с условием ON или списком USING, поэтому структура запроса видна с первого взгляда. Отключите "Показывать столбцы из WHERE / GROUP BY / ORDER BY", чтобы видеть только выбранные, или отключите "Показывать условия JOIN", чтобы сохранить список JOIN, но скрыть предложения ON. Переключайтесь между построчным обзором и плоским списком зависимостей, который лучше подходит для документирования того, от чего зависит запрос.

Общие табличные выражения (WITH ...) и подзапросы в предложении FROM также распознаются: CTE перечисляется с таблицами, которые читает его тело, а производная таблица отображается как подзапрос, а не фантомное имя таблицы. Когда запрос объединяет две или более таблицы и столбец не имеет префикса таблицы, инструмент не может определить, к какой таблице он принадлежит — если включена опция "Предупреждать о столбцах без указания таблицы", этот столбец будет отмечен вместо того, чтобы молча угадывать. Вставьте несколько операторов, разделённых точками с запятой, и каждый будет пронумерован и проанализирован отдельно; всё, что не является запросом SELECT, будет отмечено и пропущено, а не неправильно прочитано.

Это текстовый анализатор, а не подключение к базе данных: он никогда не выполняет SQL, никогда не подключается к серверу и запрос никогда не покидает ваш браузер. Безопасно вставлять рабочие запросы, включая те, которые содержат реальные названия таблиц и столбцов. Когда вы закончите, скопируйте отчёт, загрузите его как файл .txt или отправьте на вход другого инструмента, чтобы продолжить работу.

FAQ

Он выполняет или проверяет SQL?
Нет. Он читает запрос как текст для поиска ссылок на таблицы, соединения и столбцы — он никогда не выполняет ничего в базе данных, поэтому работает даже с SQL, к которому у вас сейчас нет соединения.
Откуда он знает, какой таблице принадлежит столбец?
Он создаёт карту псевдонимов из предложений FROM и JOIN, поэтому "o.id" разрешается в "orders", если запрос содержит "FROM orders o". Столбец без префикса назначается единственной таблице в области видимости или отмечается как неоднозначный, когда есть более одной.
Поддерживает ли он JOIN, CTE и подзапросы?
Да. Распознаются все типы JOIN с его условиями, предложение WITH разбирается как именованное CTE с таблицами, которые оно читает, а подзапрос в предложении FROM отображается как производная таблица, а не настоящая.
Я могу вставить несколько запросов сразу?
Да. Разделите операторы точками с запятой и каждый будет пронумерован и проанализирован независимо. Оператор, который не является запросом SELECT, будет отмечен вместо того, чтобы быть неправильно прочитанным.
Мой SQL загружается где-нибудь?
Нет. Парсинг выполняется полностью в вашем браузере — ваш запрос, включая любые реальные названия таблиц и столбцов, никогда не покидает ваше устройство.