Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

15.18.5. Команды edit и change

Команды имеют совершенно такой же синтаксис, что и команда BROWSE. Единственное отличие в том, что меняется способ отображения таблицы: она представляется в виде, приспособленном для редактирования (см. левую часть Browse-окна на рис. 15.18).

Поведение команд EDIT и CHANGE совершенно идентично.

Изменить способ отображения таблицы можно интерактивно. Так, если таблица первоначально отображена командой BROWSE в режиме просмотра, то после выбора пунктов меню View – Edit, таблица перейдет в режим редактирования. В режим просмотра ее вернет выполнение View – Browse.

15.19. Выбор данных

Команда SELECT – SQL

SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] Select_List_Item [, ...] FROM [FORCE] Table_List_Item [, ...] [[JoinType] JOIN DatabaseName!]Table [[AS] Local_Alias] [ON JoinCondition [AND | OR [JoinCondition | FilterCondition] ...] [WITH (BUFFERING = lExpr)] [WHERE JoinCondition | FilterCondition [AND | OR JoinCondition | FilterCondition] ...] [GROUP BY Column_List_Item [, ...]] [HAVING FilterCondition [AND | OR ...]] [UNION [ALL] SELECTCommand] [ORDER BY Order_Item [ASC | DESC] [, ...]] [INTO StorageDestination | TO DisplayDestination] [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT]

выбирает данные из одной или нескольких таблиц.

Основные опции команды показывает следующий макет команды:

SELECT Select_List FROM Table_List [WITH (BUFFERING = lExpr)] [WHERE Conditions] [GROUP BY Column_List] [UNION Clause] [HAVING Conditions] [ORDER BY Column_List] [INTO Clause | TO Clause ] [Additional_Display_Options]

Если SET TALK установлен в ON, то VFP при выполнении SELECT – SQL отобразит время, потраченное на выполнение запроса, и число записей в результате (его содержит системная переменная _TALLY).

Опции и параметры:

ALL – (по умолчанию) в результате отображаются все записи.

DISTINCT – исключает из результата повторяющиеся записи. Опция используется в команде только 1 раз. Опция не поддерживается в запросе, содержащем memo-, general- и blob-поля. Их, однако, можно заменить выражениями, например употребляя memo-поля в качестве параметров функций PADR( ) или ALLTRIM( ).

TOP nExpr [PERCENT] – в результат включаются первые nExpr записей (из числа отобранных). Если опция PERCENT опущена, то nExpr – это число записей; диапазон изменения nExpr от 1 до 32767. Если опция PERCENT задана, то nExpr – это процент включаемых записей; диапазон изменения nExpr от 0.01 до 99.99.

Если опция TOP задана, то необходимо задать и опцию ORDER BY. Эта опция определяет, по каким столбцам опция TOP определяет число строк в результате.

При задании TOP nExpr, если SET ENGINEBEHAVIOR в результат включаются все записи с одинаковыми значениями в столбцах, указанных в ORDER BY. Поэтому число записей в результате может превышать nExpr.

Select_List_Item – список полей, констант и выражений, отображаемых в результате запроса. Если Select_List_Item задан в виде символа *, то будут выбраны все поля источников данных. Число элементов в списке не должно быть более 255. Список Select_List_Item может содержать следующие элементы:

  • константу (она будет присутствовать в каждой строке результата);

  • выражением, которое может содержать и имена определенных пользователем функций или агрегатных функций, например COUNT( ), или подзапросы.

  • [Alias.] Select_Item, где Alias задает псевдоном таблицы, а Select_Item имя поля таблицы, указанной в опции FROM. Псевдоним Alias необходим, когда несколько полей таблиц-источников данных имеют одно имя. Допускается пробел между [Alias.] и Select_Item;

  • (Subquery) – подзапрос – вложенная команда SELECT – SQL; должна быть заключена в круглые скобки. Число подзапросов и уровень их вложения произвольный. Можно употреблять подзапрос, коррелированный с ближайшим родительским запросом. Такой подзапрос использует поле родительского запроса; коррелированный подзапрос выполняется для каждой кандидатной строки родительского запроса. Некоррелированный подзапрос может содержать опцию TOP nExpr, несколько условий объединения и опций GROUP BY. Если в подзапросе задана опция TOP nExpr, то в него нужно включить и опцию ORDER BY. Подзапрос, не выбирающий записей, вернет NULL.

Вложенный подзапрос в общем случае имеет следующий синтаксис:

SELECT … WHERE … (SELECT … WHERE … (SELECT …) …) …

В выражениях с именами полей может присутствовать агрегатная функция. При задании в Select_List_Item агрегатной функции используется следующий синтаксис:

AggregateFunction([Alias.]Select_Item) [[AS] Column_Name]

Перечень агрегатных функций приведен в табл. 15.16.

Таблица 15.16

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]