Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начало нового описания SQL_QBE .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
564 Кб
Скачать
☆

Указание объекта, куда пересылается выборка

Следующие опции задают «получатель» данных выборки. Им может быть ТБД, массив, текстовый файл, экран и принтер.

Кроме того, информация может быть переслана в так называемый Курсор (будем писать с большой буквы). Курсор – это временный набор данных, который может быть областью памяти или временным файлом FoxPro (этот процесс от нас не зависит) и имеет режим «Только чтение». Данные Курсора могут быть, например, предъявлены в команде BROWSE, напечатаны, из них может быть образовано меню и т.д. Курсор может быть обработан другой командой SELECT. К колонкам Курсора надо обращаться по имени этих колонок, возможно, с префиксом – именем Курсора (через точку).

Итак:

INTO <получатель>

<Получатель> может быть одного из следующих типов:

ARRAY <массив> - здесь вновь создаваемый двумерный <массив>

CURSOR <курсор> - задается имя Курсора.

DBF/TABLE <БД> - новая таблица базы данных с указанным именем. Слова DBF и TABLE здесь являются синонимами.

Кроме того, данные можно переслать в файл или на принтер.

TO FILE <файл> [ADDITIVE]/TO PRINTER – выборка посылается в текстовый <файл> или на принтер. Если используется слово ADDITIVE, то выборка будет добавлена в конец существующего файла без его перезаписи.

Следующие опции имеют смысл только при выдаче на экран (команда используется без слова INTO):

NOCONSOLE – выборка не выдается на экран.

PLAIN – заголовки колонок не выдаются.

NOWAIT – не делаются паузы при заполнении экрана.

Критерий отбора данных

WHERE <условие связи> [AND <условие связи> …]

[AND/OR <условие отбора> [AND/OR <условие отбора> …]]

Здесь:

<Условие связи> - применяется в случае, если выборка делается более чем из одной ТБД, и указывает критерий, которому должны отвечать поля из разных таблиц. В условии связи указываются поля из разных таблиц. Здесь разрешается использовать знаки отношения =, #, ==, >, >=, <, <=. Допускается задание нескольких критериев, соединенных знаком AND.

<Условие отбора> - строится аналогично, но из выражений только одной ТБД, и допускается использование логических операторов OR и NOT.

Условия, кроме любых функций FoxPro, могут содержать следующие операторы SQL:

LIKE – позволяет построить условие сравнения по шаблону, где символ “_” указывает единичный неопределенный символ в строке, “%” – любое их количество. Эти символы аналогичны символам маски “?” и “*” в MS DOS. Формат оператора:

<выражение> LIKE <шаблон>

BETWEEN – проверяет, находится ли выражение в указанном диапазоне. Формат оператора:

<выражение> BETWEEN <нижнее знач.> AND <верхнее знач.>

IN – проверяет, находится ли выражение, стоящее слева от слова IN, среди перечисленных справа от него. Формат оператора:

<выражение> IN (<выражение>,<выражение>,…)

Все указанные операторы можно комбинировать с помощью связок OR, AND, NOT и скобок. Операторы LIKE и BETWEEN не следует путать с одноименными функциями FoxPro, которые, впрочем, также можно использовать.

Группирование данных

GROUP BY <колонка>[,<колонка>…] – задаются колонки, по которым производится группирование выходных данных. Все записи ТБД, для которых значения колонок совпадают, отображаются в выборке единственной (итоговой) строкой. Группирование удобно для получения некоторых сводных характеристик (сумм, количеств записей, средних) группы.

HAVING <условие отбора> - опция задает критерий отбора данных в каждую сформированную в процессе выборки группу.

Сортировка

ORDER BY <колонка> [ASC/DESC][,<колонка> [ASC/DESC]…] – опция задает упорядочение по заданной колонке/колонкам. По умолчанию сортировка выполняется по возрастанию (ASC), но может быть задана и по убыванию (DESC).

7.2.1.Примеры запросов к базе данных

в аналитической форме записи языка SQL

Внимание!

1. Все выполняемые запросы надо сохранить не под именами, присваиваемыми СУБД по умолчанию (query1.qpr… queryХ.qpr…), а под своими произвольными именами, определяющими цель запроса.

2. Все выполняемые командные запросы, кроме тех, которые имеют аналог выполнения по методу QBE, надо выполнить затем с помощью метода QBE сохранить их под новыми именами.

7.2.1.1. Однотабличные запросы

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

Простые запросы

1.Отсутствие условия отбора (просмотр ТБД):

Выборка всех полей из ТБД POSHK.DBF. Все колонки выборки будут иметь имена полей ТБД.

SELECT * FROM Data1!POSHK

2.Одно условие отбора:

Вывести все сведения о поставщиках, проживающих в городе Киев

SELECT nomp, famp, gord, stat FROM Data1!POSHK;

WHERE gord=‘КИЕВ’

3. Выборка фамилий поставщика по первой букве (из POSHK.DBF).

SELECT famp FROM poshk WHERE famp="С"