Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Работа с SQL-запросами в программе Database Tour

замечания

Запросы SQL выполняются ваши сервером баз данных или движком баз данных ( ADO, BDE и т.д. ). Поэтому следует писать запросы по тем правилам, которые определены для открытой базы данных: например, если открыто базу данных Oracle, пишите запрос по правилам Oracle и т.д.
Данный раздел описывает общую технику и специфические возможности Database Tour, помогающие вам строить ваши запросы и получать их результаты. Вы не найдете здесь учебника по SQL, хотя бы потому, что физически невозможно знать все нюансы языка SQL для всех существующих в мире типов баз данных. Для получения более подробной информации о написании SQL-запросов, пожалуйста, читайте документацию по вашей базе данных.

Для создания нового окна SQL нажмите кнопку Новое окно SQL Для создания нового окна SQL нажмите кнопку Новое окно SQL   , Выберите Запрос |  Создать , Выберите Запрос | Создать ... или нажмите Ctrl + Q. Вы можете создавать любое количество окон SQL для каждой базы данных (вы ограничены только оперативной памятью).

В окне SQL есть несколько закладок:

Редактирования. Здесь вы вводите ваш SQL текст.

Результат. Здесь показывается результат запроса типа SELECT. Эта закладка показывается только при включении соответствующей опции редактора SQL; при отключенной опции (замалчивание) результат запроса показывается внизу закладки Редактирование.

История. Эта страница содержит историю выполнения запросов для данного окна SQL.

SQL-редактор и подсветка синтаксиса

выполнение запросов

Запуск скриптов со многими SQL-выражениями

Запросы к нескольким базам данных

Запросы с параметрами и макросами

Первичный источник данных

Текст запроса (SQL текст) вводится на закладке Редактирование. Его можно ввести с клавиатуры или загрузить из файла (в том числе и с командной строки ). Есть несколько шаблонов часто используемых SQL-выражений, которые доступны по нажатию кнопки Шаблоны; шаблон и затем просто измените SQL-текст, появившийся для получения нужного SQL-выражения.

При формировании SQL-выражения с помощью соответствующей кнопки или контекстного меню (активизируется правой кнопкой мыши) можно вызвать функцию автоматической подстановки имен полей, которые будут использоваться в запросе. Это особенно полезно при вводе большого количества полей.

SQL текст можно сохранить в файле или напечатать.

SQL-редактор поддерживает подсветку SQL-синтаксиса. Используйте меню Опции | среда | SQL редактор | Шрифт и цвет для изменения параметров подсветки синтаксиса. В дополнение к этому, есть возможность указать SQL-диалект для подсветки синтаксиса (закладка Редактирование). Различные SQL-диалекты обычно предназначены для использования с различными типами баз данных и имеют разные наборы ключевых слов и других опций, которые могут изменить подсветку синтаксиса для некоторых элементов вашего SQL-кода. В большинстве случаев SQL-диалект подбирается автоматически в зависимости от типа открытой базы данных (например., DBase, Oracle, SQL Server). Но в некоторых случаях вам может потребоваться изменить его на более подходящий (например., Изменить SQL-диалект для вашей базы данных типа SQL Server с MS SQL 7 на MS SQL 2K и наоборот). Учитывайте, что SQL-диалект, как и сама подсветка синтаксиса, никак не влияет на выполнение запросов, и используется только для удобства просмотра SQL-кода.

При печатании SQL-текста или его сохранении в форматах RTF или HTML, сохраняются цвета и синтаксическая подсветка.

Редактирования SQL-текста:

Редактирования SQL-текста:

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

Примечание: если в SQL-редакторе есть выделенный фрагмент текста, то только выделенные выражения будут выполнены.

В случае, если выполнено запрос на выборку данных (запрос типа SELECT), результирующие данные появятся на закладке Результат. Некоторые базы данных позволяют эти данные редактировать, если тип выборки данных позволяет это делать (например, если в запросе вы получаете данные только из одной таблицы, не используете агрегатных функций). Для возможности редактирования запросов используйте опцию "Живые" запросы (только для подключений BDE ). Если после выполнения запроса кнопки редактирования данных (Удалить, Изменить и т.д.) над таблицей данных запроса активны, значит, программе прибегли открыть запрос в режиме редактирования. данные можно экспортировать в новую таблицу или файл. можно построить отчет по этим данным (соответствующая кнопка или пункт меню Инструменты). Чтобы распечатать эти данные "как есть", используйте печать таблицы .

Программа сохраняет SQL тексты выполненных запросов (их количество зависит от соответствующей опции ), А также некоторую статистическую информацию об уже выполнены запросы, для каждой БД. Эта информация находится на закладке История соответствующего окна SQL. Ее можно скопировать в буфер (и автоматически создать багатозапитний скрипт). Для обмена текстами запросов различных БД используйте кнопки Экспорт SQL-историю / Скачать SQL-историю. Для быстрого переноса текстов запросов одной БД в другую откройте первую БД, станьте на закладку История и переключитесь на вторую БД, удерживая SHIFT. Для навигации между сохраненными текстами запросов служат кнопки Предыдущий SQL, Следующий SQL на закладке Редактирование или двойной клик соответствующей записи в истории.

История из всех окон SQL всех зарегистрированных в программе баз данных баз данных записывается в файл рабочей области (полный путь к файлу можно увидеть меню База | Зарегистрированные базы данных ...). Запись в файл происходит в следующих случаях: перед выполнением запроса, при закрытии базы данных, при закрытии программы. Учтите это, если работаете со многими копиями программы одновременно. При Переоткрытие программы все истории всех окон SQL всех баз данных данных загружаются из файла рабочей области в оперативную память; затем при открытии базы данных все окна SQL этой базы данных восстанавливаются.

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

В программе возможно выполнение багатокомандних SQL-скриптов (сценариев). Между запросами скрипта должен стоять разделитель (терминатор): один или несколько символов (без пробелов), который задается на уровне базы данных.

Тип базы данных Разделитель команд SQL по умолчанию Interbase Символ каретки (^) Firebird Символ каретки (^) Oracle

Комбинация точки с запятой (;) и разделителя в стиле SQL Plus (косая черта (/) в начале следующего после команды строки, для указания такого разделителя в свойствах базы данных, используйте макрос <sqlplus>).

Если используете значение по умолчанию, рекомендуется использовать разделитель в стиле SQL Plus для разграничения блоков PL / SQL (где точка с запятой является элементом языка программирования), a точку с запятой в звийчайному SQL.

SQL Server

Слово GO в начале следующего после команды строки; для указания такого разделителя в свойствах базы данных, используйте макрос <mssqlgo>.

Другие Точка с запятой (;)

Для изменения разделителя команд SQL для определенной базы данных убедитесь, что эта база закрыта, выберите меню База | Зарегистрированные базы данных ..., в списке выберите базу данных, нажмите кнопку Изменить найдите свойство Разделитель выражений SQL, измените значение на нужное, и щелкните Применить изменения.

Есть также продвинутый способ выполнения багатокомандних SQL-скриптов с помощью выпадающего меню рядом с кнопкой Выполнить, где можно задать файл журнала для хранения информации о результате выполнения каждой команды SQL. Внимание! В этом режиме, если при выполнении какой-то команды скрипта произошла ошибка, выполнение не останавливается, а продолжается со следующей команды.

Из локальных баз данных является возможность строить запросы типа SELECT, которые ссылались на таблице с внешней базы данных (только для подключений BDE ). Более того, можно связывать таблицы нескольких баз данных одновременно. Локальная база данных - это база с таблицами Paradox, dBase или FoxPro, открыта через алиас BDE или из-за названия папки. Внешней базой может быть ссылка на папку (для локальных таблиц), источник данных ODBC или алиас BDE. Чтобы сослаться на таблицу с внешней базы, перед названием таблицы напишите двоеточие, название базы, и еще одну двоеточие, и всю конструкцию возьмите в кавычки, например:

SELECT c.custno, o.orderdate

FROM ": CustDSN: customer" c, ": OrderAlias: order" o

WHERE ...

Параметры и макросы является своего рода переменными в SQL-тексте. Они увеличивают гибкость при выполнении запросов, позволяя (без изменения текста) изменять запрос непосредственно перед его выполнением. Они получают значения непосредственно перед выполнением запроса или от пользователя, или через параметры командной строки, или из отчета (если запрос открывается из отчета), или же могут быть удержаны автоматически, если они заранее определенных и (см. Ниже). Макросы - это всегда текстовые переменные; они заменяются в SQL-тексте своими значениями перед выполнением запроса. В отличие от макросов, параметры имеют тип, их значение и типы передаются серверу, а не вставляются в SQL-текст. Макросы и параметры внутри комментариев и Строчков литералов игнорируются программой, но все же не рекомендуется включение параметров внутри комментариев, особенно для подключений ADO . Хотя иногда макросы удобнее от параметров, использование параметров имеет определенные преимущества, как с точки зрения противодействия SQL injection, так и оптимизации выполнения запроса.

Если параметр или макрос не является предопределенным м и не заданный в командной строке или отчете, то программа предлагает пользователю ввести значение в отдельном окне.

Макросы начинаются с << и заканчиваются >>. Их главное назначение: динамическая замена при виконнани запроса с командной строки . Текст макроса может содержать только буквы, цифры и знак подчеркивания. Следующий SQL пример содержит макрос CUST_TYPE_LIST:

SELECT * FROM payments

WHERE customertype in (<< CUST_TYPE_LIST >>)

Значением для такого макроса может быть, например, такой текст:

3, 8, 12, 5

Заметьте, что подобный результат немоливо получить с использованием параметров.

Параметры начинаются с двоеточия. Параметры, содержащие пробелы, должны приниматься в одинарные кавычки. Параметрические запросы удобны тем, что один и тот же SQL-выражение можно использовать для различных данных, которые будут подставляться только на этапе выполнения. Следующий SQL пример содержит параметр DATE:

SELECT * FROM payments

WHERE paydate =: DATE

При выполнении такого запроса программа предлагает ввести значение параметра и его тип данных, после чего продолжает выполнение. Для удобства ввода параметров, чтобы тип данных параметра выбирался автоматически, достаточно в SQL-выражении сразу по параметру в отдельном комментарии указать тип параметра, как в следующем примере:

SELECT * FROM orders

WHERE orderno <: ORDERNO / * ParamType = Integer * /

Есть несколько заранее определенных параметров, которые заполняются программой автоматически:

<< SYSTEM_DATE >> заменяются текущей датой (с типом Date)

<< SYSTEM_DATETIME >> заменяются текущими датой и временем (с типом DateTime)

<< SYSTEM_TIME >> заменяются текущим временем (с типом DateTime)

<< SYSTEM_YEAR >> заменяются текущим годом (с типом Integer)

<< SYSTEM_MONTH >> заменяются текущим месяцем (с типом Integer)

<< SYSTEM_DAY >> заменяются текущим днем ​​(с типом Integer)

Если заранее определенный параметр начинается не с двоеточия, то он интерпретируется как заранее определенный макрос. В случае целочисленных данных результат будет одинаковый, но для других типов данных могут быть проблемы, поэтому лучше не путать макросы и параметры.

В запросах можно использовать первичный источник данных. Принцип такой: если поставить в SQL-тексте двоеточие и сразу за ней название поля из первичного источника (таблица, открытая в отдельном окне), то это будет воспринято как параметр, равный значению соответствующего поля в первичном источнике данных.

Пример (таблица 1 используется для выборки данных, таблица 2 - как первичный источник, поле 1 - поле из таблицы 1):

SELECT * FROM <название таблицы 1>

WHERE <название поля 1> =: CUSTOMER

Из списка таблиц выберите таблицу-источник (таблица 2) и откройте ее в отдельном окне (для этого щелкните на таблице правой кнопкой мыши и выберите соответствующий пункт меню). Поле CUSTOMER должно быть в этой таблице, иначе вы получите сообщение об ошибке. И нажмите кнопку С первичным источником (на закладке Результат) и откройте запрос. В результате вы получите набор записей из таблицы 1, в котором значение поля 1 равно значению поля CUSTOMER из таблицы 2. При переходе на другую запись таблицы 2 запрос автоматически перевидкриеться, подстраиваясь под новое значение поля CUSTOMER.

Главное окно программы после выполнения запроса на выборку данных:

Главное окно программы после выполнения запроса на выборку данных:

Похожие

Как перейти на Windows 10: что нужно знать
Если вы пользователь Windows 7, вы находитесь в подвешенном состоянии: пока последний бесплатное серьезное обновление лазейки до Windows 10 срок действия которого истек в конце 2017 года, Microsoft прекратит поддержку ОС 14 января 2020 года. Если вы намереваетесь перейти на Windows 10 и апрельское обновление 2018 года, но фактически не завершили процесс, мы можем