Команда выборки из таблиц (vfp) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команда выборки из таблиц (vfp)

Поиск

Команда SELECT сама открывает таблицу, подбирает или создает необходимые индексы, организует связь таблиц, фильтрует, группирует и обрабатывает, записи, унич­тожает временные файлы. Если в команде SELECT указана доступная в данный момент таблица (она хранится в файле в текущей папке), то для автоматического открытия базы данных информация считывается из заголовка таблицы. Если таблица недоступна, откры­вается диалоговое окно Open для выбора подходящей таблицы. При выполнении команды SELECT автоматически используется технология Rushmore при работе с несколькими таблицами. Если используется простая команда SELECT только для одной таблицы, да еще без группировки и упорядочения данных, результат запроса получается очень быстро. Но и при работе с несколькими таблицами метод Rushmore повышает произво­дительность только тогда, когда требуемое индексирование выполнено до запроса, в про­тивном случае в памяти по мере необходимости создаются виртуальные индексы, что, конечно, замедляет обработку.

Таблица-источник или созданная таблица остаются открытыми и после выполнения команды.

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

Результат выполнения запроса к таблицам также является таблицей. Ее можно сохранить в базе данных, и по отношению к ней также можно выполнять запросы. При сохранении результата выполнения команды SELECT по умолчанию создается файл с расширением . qpr.

Синтаксис команды:

SELECT

 [ALL | DISTINCT] [TOP<BpжN> [PERCENT]]

 [<псевдоним>]<имя элемента> [AS <название колонки>]

 [[,<псевдоним>]<имя элемента>[AS <название колонки>]. . . ]

 FROM [FORCE][<имя <базы данных>!]<таблица> [[AS] <псевдоним Local>]

 [INNER|LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]]

JOIN [<имя базы данных>!]<таблица>[[AS] <псевдоним Local>]

[ON <условие объединения таблиц...>]

[[INTO <куда (по умолчанию на экран)>]

[ТО FILE <имя файла> [ADDITIVE]| ТО PRINTER [PROMPT]|TO SCREEN]]

[PREFERENCE <>]

[NOCONSOLE]

[PLAIN]

[NOWAIT]

[WHERE <условие объединения таблиц> [AND <условие о&ьединения таблиц> ... ]

[AND|OR <условие фильтрации> [AND|OR «условие фильтрации>...]]]

[GROUP BY <список колонок>[,<список колонок> ...]]

[HAVING <условие фильтрации>]

[UNION [ALL] <SELECT команда>]

[ORDER BY <СПИСОК КОЛОНОК> [ASC |DESC]

[,<список колонок> [ASC|DESC] ...]]

 

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

Опция ТОР ограничивает количество записей, в соответствии указанному в <вржN> процентному отношению от общего числа записей. <вржN> может принимать значение 0,01до 99,99, а без опции PERCENT – от 1 до 32767.

По умолчанию или при использовании опции ALL выводится содержимое всех записей. Минимальная форма команды для вывода на экран всех записей таблицы TabNameможетбыть и такой:

SELECT * FROM TabName

В каждой команде SELECT может использоваться опция DISTINCT для исключения из результата повторяющихся записей. Например:

SELECT DISTINCT f1, f2  FROM TabName

<Псевдоним> определяет имя рабочей области, в которой задан <элемент>. Элемен­том может быть поле таблицы, определяемое параметром FROM, константа, выводимая в каждой записи результата, или выражение, часто представляемое именем пользователь­ской функции.

Если элемент представляется выражением или просто необходимо поменять имя элемента на более понятное, можно использовать опцию AS. Например:

SELECT scholar.name AS Студент, scholar.spay AS Стипендия FROM scholar

Вторая часть команды SELECT определяет источник выбора данных. После слова FROM перечисляются имена таблиц, участвующих в запросе.

Предложение <псевдоним Local> задает временное сокращенное обозначение имени рабочей области для таблицы.

При определении источника данных используются такие опции.

• FORCE. Определяет порядок объединения таблиц по мере их появления в предло­жении FROM, в противном случае происходит оптимизация запроса, что замедляет его выполнение.

• INNER JOIN.Указывает на то, что результат запроса содержит только строки таблицы, совпадающие со строками другой таблицы. Например, для отбора строк из таблиц TabNamel, TabName2, TabName3,включенных в базу данных DatabaseNamel(при условии совпадения значений поля FieldName5таблицы TabNamelсо значе­ниями поля FieldName7таблицы TabName3,а также совпадения значений поляFieldNameSтаблицы TabName2 со значениями поля FieldName6таблицы TabNamel при этом результат отбора будет упорядочен по значению поля FieldName3таблиць TabName2),выполним следующие команды:

SELECT TabNamel.FieldNamel,TabNamel.FieldHame2,;

TabName2.FieldName3,TabName3.FieldName4;

FROM DatabaseNamellTabName2;

INNER JOIN DatabaseNamel! TabNamel;

INNER JOIN DatabaseNamel! TabName3;

ON TabNamel.FieldName5=TabHame3.FieldName7;

ON TabName2.FieldName8=TabNamel.FieldName6;

ORDER BY TabName2.FieldName3

• LEFT [OUTER] JOIN.Показывает, что результат запроса содержит все строки таб­лицы, указанной слева от слова JOIN, соответствующие строкам в таблице, указанной справа.

OUTER.Фиксирует создание внешнего объединения.

RIGHT [OUTER] JOIN.Указывает на то, что результат запроса содержит все строки таблицы, указанной справа от слова JOIN,и соответствующие строкам в таблице указанной слева.

FULL [OUTER] JOIN.Указывает на ситуацию, когда результат запроса содержит все строки из обеих таблиц.

Третья часть команды определяет, куда направляется результат запроса.

INTO <куда (по умолчанию на экран)> | [ТО FILE <имя файла> [ADDITIVE] | ТО PRINTER [PROMPT] | TO SCREEN]

Результат выполнения запроса хранится во временном буфере и выводится в окно, подобное окну Browse и имеющее заголовок Query,или, в соответствии с опцией INTO, направляется на экран, принтер, в текстовый файл или в указанную таблицу.

SELECT DISTINCT fl,£2 FROM oldtab INTO newtab

 При дистанцировании результата запроса используются следующие опции.

PREFERENCE.Применяется, если результат запроса направляется в окно Browse для сохранения его внешнего вида.

NOCONSOLE.Подавляет вывод результата на экран.

PLAIN.Подавляет вывод заголовка колонок.

NOWAIT.Выводит результат запроса в процессе выполнения программы.

 



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 6; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.168.176 (0.009 с.)