Топ-100
 

Редактор SQL запросов

Поддерживаемый синтаксис

Программа CerebroSQL поддерживает 2 синтаксиса кода для всех СУБД (за исключением MS SQL Server).

 

Допустимо одновременно использовать оба в одном скрипте!

1. Классический синтаксис Oracle

Операция create, declare, begin должна заканчиваться символом "/" располагающимся на отдельной строке в случаи выполнения скрипта

Для остальных команд разделителем выступает ";" в конце команды

2. Синтаксис MS SQL Server

Разделителем выступает ключевое слово "go" на отельной строке, команда не должна завершаться другим спецсимволом, если того не требует ее синтаксис

CerebroSQL query executing
CerebroSQL query output
 

Окно редактора запросов

Состоит из панели кнопок управления и области "Страниц"

Query editor - window.jpg

Кнопки управления

Query editor - button.jpg

Создать новый лист для работы с СУБД "MySQL"

Удалить текущий лист 

Показать "Монитор  программы"

Показать "Диспетчер ошибок"

 

Комбинации клавиш

  • Shift + F1  -  создать новый лист для работы с СУБД "Oracle"

  • Shift + F2  -  создать новый лист для работы с базами "SQLite"

  • Shift + F3  -  создать новый лист для работы с СУБД "PostgreSQL"

  • Shift + F4  -  создать новый лист для работы с СУБД "MySQL"

  • Shift + F5  -  создать новый лист для работы с СУБД "MSSQL Server"

  • F3  -  удалить текущий активный лист

  • Ctrl + F1  -  показать главное окно программы

  • F4  -  Показать план выполнения запроса на текущем листе/выделенного запроса

  • F5 или F8  -  выполнить выделенный запрос/все запросы на листе/выделенные запросы

  • F6  -  показать содержимое выделенной таблицы | показать содержимое таблицы в название которой установлен курсор (отображаются первые n строк, зависит от размера окна Data)

  • Ctrl + G  -  показать свойства выделенной таблицы (из текста редактора)

  • Ctrl + W  - создать алиас для выделенного запроса

  • Ctrl + F  -  поиск текста в редакторе

  • Ctrl + R  -  поиск и замена текста в редакторе

  • Ctrl + T  -  создать копию текущего листа (новый лист автоматически подключается к БД)

  • Ctrl + F10  -  показать детальную информацию о подключении листа

  • Ctrl + F12  -  остановить загрузку данных в дерево объектов

  • Alt + F1  -  показать главное окно программы

  • Alt + F2  -  показать панель настройки соединения

  • Alt + F3  -  сформировать и показать краткий отчет о состоянии БД

  • Alt + E  -  показать код создания выделенного объекта в редакторе (DDL)

  • Alt + F6  -  показать список колонок и их тип в сетке редактора

 

История выполненных запросов

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

CerebroSQL: view history execute sql.jpg

 

При открытии окна в списке "Query list" отображается список все выполненных запросов с момента последнего старта программы.

Поиск запросов в хранилище (блок "Filter")

Поле "Date begin" - ограничивает поиск по дате (минимальное значение)

Поле "Date end" - ограничивает поиск по дате (максимальное значение)

Поле "Database name" - имя БД, ограничить поиск запросов выполненными в определенной базе

Поле "Search text" - строка поиска/часть строки. Для поиска по множеству условий используется разделитель |

Пример: select|dba|declare

будет разыскиваться запрос содержащий 3 указанных ключевых слова. 

Поиск регистронезависимый.

list find query.jpg

 

Двойной клик по строке в списке "Query list" добавляет запрос на активный лист редактора.

Блок "Details" - подробная информация о выполненном запросе, статус выполнения, длительность, ...

 

Диспетчер "Алиасов запросов"

Служит для присвоения алиаса (синонима) запросу для его последующего выполнения по данному имени.

Открыть диспетчер можно или нажатием соответствующей кнопки на панели управления или из текущего листа комбинацией клавиш Ctrl+W . Если при этом выделен запрос в редакторе, он автоматически копируется в поле "Text" диспетчера.

Query alias.jpg

 

Создание алиаса

  • Открыть диспетчер

  • Выбрать тип СУБД из списка выпадающего списка кнопки "New alias"

  • Заполнить поле "Request alias" - допускается указывать через пробел несколько слов

  • В поле "Request text" добавить запрос

  • Сохранить нажав кнопку "Save"

Поле "Comment" информационное, смысловой нагрузки не имеет

Query alias - example.jpg

Для "алиаса" так же доступен просмотр плана выполнения.

 

Хинт - это подсказка движку редактора для выполнения дополнительных действий.

Каждый хинт должен располагаться на отдельной строке, символ ; в конце указывается.

  • print_on - включить вывод информации на вкладку Output текущего листа редактора запросов.

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

  • print_off - отключить вывод информации в окно Output текущего листа

  • clear_out - очистить вкладку Output

  • colname_on - Показывать имена колонок выводимых данных

  • colname_off - Не показывать имена колонок выводимых данных (по умолчанию)

  • cstr('') - Вывести строку в скобках. Строка должна быть обрамлена одинарными кавычками

  • delim() - добавить разделитель указанный в скобках для строк в выводе. В виде разделителя может использоваться любой знак, строка, цифры. Одинарные кавычки не требуются

  • qpr_on - включение вывода текста выполненного запроса

  • qpr_off - отключение вывода текста выполненного запроса (по умолчанию)

  • rdelim_on - отображать разделитель колонок в выводе

  • rdelim_off - не отображать разделитель колонок в выводе (по умолчанию)

  • snum_on - добавить нумерацию строк в выводе

  • snum_off - не показывать нумерацию строк в выводе (по умолчанию)

  • qset - создание глобальной переменной для листа. Переменная представляет из себя пару: имя переменной=значение

  • формат команды:

  • qset('имя переменной','значение')

ВАЖНО: имена переменных должны отличаться по первым символам, а не по последним, т.е

Правильно:

qset('str','значение 1');

qset('2str','значение 2'); 

Не правильно:

qset('str','значение 1');

qset('str2','значение 2'); 

CerebroSQL using qset procedure

  • qunset - удалить глобальную переменную. Формат команды: qunset('имя переменной')

 

Процедура OPENLIST

Процедура openlist служит для возможности использования соединения с БД одного листа в другом.

Процедура может использоваться в 2 операциях: create и insert

ВАЖНО: перенос данных осуществляется в текстовом виде, т.е. на стороне приемника таблица будет создана с полями типа Text или varchar в зависимости от СУБД

Использование процедуры в конструкции CREATE

Синтаксис:

create table <имя таблицы> as openlist('<Имя листа>','<Запрос выполняемый на стороне источника>')

Требования:

  • запрещено экранирование кавычек внутри запроса

  • поддерживаются только типы данных которые можно привести к text

 

Пример

openlist using.jpg

 

Лог выполнения:

The query: 24.04.2020 01:27:59
Query text: create table feature_usage_sta...
---------------------------------------------------------
Position: 42
##################Remote query##################
SELECT name,
detected_usages detected,
total_samples   samples,
currently_used  used,
to_char(last_sample_date,'DD-MM-YYYY:HH24:MI') last_sample,
sample_interval interval
FROM dba_feature_usage_statistics
where version = (select version from v$instance)
order by currently_used desc, name
##################Parameter##################
Remote list name: LIST1
Remote list type: ORACLE
Current list name: LIST3
Current list type: MSSQL
####################Command####################
create table feature_usage_statistics as
Code: 507
Count: 4
SELECT name,
detected_usages detected,
total_samples   samples,
currently_used  used,
to_char(last_sample_date,'DD-MM-YYYY:HH24:MI') last_sample,
sample_interval interval
FROM dba_feature_usage_statistics
where version = (select version from v$instance)
order by currently_used desc, name
feature_usage_statistics
Toper: 3
create table feature_usage_statistics ( "NAME" Text, "DETECTED" Text, "SAMPLES" Text, "USED" Text, "LAST_SAMPLE" Text, "INTERVAL" Text)
Table create - successful
Starting load data
Rows transferred: 243 [ALL ROWS:243]
Run time:  0.592c.
Log operation
C:\CerebroSQL3.8.0.1x64\tmp\lists\openist2020_04_24_012759.log

Файл: 

openist<date>.log - файл журнала.

openist<date>.query - файл ошибок, при перехвате ошибки при обработки строки в файл сбрасывается как текст ошибки так и запрос

 

HELP

Подсказчик синтаксиса кода, а так же мастер создания блоков кода для подсказчика синтаксиса 

Подсказчик кода запускается

  • двойным кликом в дереве по "HELP"

  • комбинацией клавиш Alt+H

  • в меню окна: general - show helper

CerebroSQL help sql command.jpg
 
Страница "View help topic"

Просмотр сохраненных описаний команд с примерами кода.

Структура окна
  • Filter - поле для поиска описания команды

  • rdbms version - глобальный фильтр для отображения описаний команд выбранной версии СУБД

  • List command - список топиков

  • URLs official document - html ссылка на официальную документацию

  • Text document - описание команды

  • Example - пример кода

Страница "Edit topic"

Редактор описаний команд

Создание топика

  • Из выпадающего списка "RDBMS" выбрать тип СУБД

  • Нажать кнопку "New topic"

 

Мастер экспорта/импорта данных в/из CSV файл/а

Мастер позволяет выгрузить все данные таблицы (или часть, на основе запроса) в CSV файл выбранной кодировки и указанного форматирования 

Export data to CSV file
 
CerebroSQL export data in file.jpg

  • Owner - имя схемы в которой располагается таблица (только для чтения)

  • Table name - имя таблицы из которой производится выгрузка данных (только для чтения)

или 

  • SQL - текст запроса извлекающего данные из БД

  • Operation type - тип операции (информационно)

  • File path - полный путь к CSV файлу

  • Encoding - кодировка формируемого CSV файла (ANSI, UTF8,UTF16)

  • Delimiter - символ используемый для обрамления текстовых строк. По умолчанию двойная кавычка

  • Separator - разделитель колонок. По умолчанию запятая

  • WithFieldsNames - добавлять в файл CSV первой строкой имена колонок (рекомендуется всегда устанавливать!)

  • TrimLeft - удалять пробелы слева

  • TrrmRight - удалять пробелы справа

Нажать кнопку "RUN"

Лог выполнения выводится на вкладке "Log"

При выполнении выгрузки данных в заголовке окна отображается количество выгруженных строк в файл 

Import data from CSV
  • Owner - имя схемы в которой располагается таблица (только для чтения)

  • Table name - имя таблицы в которую производится загрузка данных (только для чтения)

  • Operation type - тип операции (информационно)

  • File path - полный путь к CSV файлу с данными

  • Encoding - кодировка CSV файла (ANSI, UTF8,UTF16)

  • Delimiter - символ используемый для обрамления текстовых строк. По умолчанию двойная кавычка

  • Separator - разделитель колонок. По умолчанию запятая

  • WithFieldsNames - формировать маппинг колонок в файле и полей в таблице автоматически на основе строки с именем колонок в файле (рекомендуется всегда устанавливать!)

  • TrimLeft - удалять пробелы слева

  • TrrmRight - удалять пробелы справа

Нажать кнопку "RUN"