Выполняет выборку данных из одной или нескольких таблиц. Когда вы используете команду SQL SELECT для создания Запроса, система Visual FoxPro выполняет грамматический анализ Запроса и возвращает выбранные данные из таблиц. Создавать запросы SQL SELECT, и выполнять их можно из Командного Окна, в программных модулях Visual FoxPro program, или используя системное средство Дизайнер Запросов. Смотрите дополнительную информацию об использовании SQL в разделе Базовые соглашения по использованию операторов SQL SELECT .
Полная синтаксическая конструкция команды SQL SELECT выглядит следующим образом:
SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] Select_List_Item [, ...] |
Комментарии
В следующем программном коде представлены Основные Опции рассматриваемой команды:
Копировать Код | |
---|---|
SELECT Select_List |
В следующих разделах описывается детальный синтаксис и дополнительные соображения по ключевым Опциям команды SQL SELECT:
Если перед выполнением команды SELECT SQL включены следующие режимы: SET TALK ON и SET NOTIFY ON, Visual FoxPro отображает на текущее устройство вывода (экран или активное окно) длительность выполнения Запроса и количество выбранных Записей данных. Системная переменная _TALLY содержит количество выбранных записей в итоговом результате Запроса. Смотрите дополнительную информацию в разделах: SET TALK, команда, SET NOTIFY, команда, и _TALLY, системная переменная.
Примечание |
---|
Длительность выполнения Запроса может не выводиться на экран, если запрос выполняется очень быстро. |
Команды SELECT SQL не учитывают (игнорируют) текущие режимы фильтрования данных, установленные командами SET FILTER. Смотрите дополнительно раздел SET FILTER, команда.
Примеры
В следующих примерах программного кода представлено несколько вариантов выборки данных с помощью команды SQL SELECT; в качестве источника данных используется тестовая База Данных TestData.dbc, включенная в стандартную поставку системы Visual FoxPro.
Пример 1
В следующем примере отображается поле из таблицы с использованием ключевой опции FROM. Выполняется выборка наименований Компаний из таблицы Клиентов (Company-Customer):
Копировать Код | |
---|---|
CLOSE ALL |
Пример 2
В данном примере выполняется выборка всех записей с использованием опции AS Column_Name - задание нового имени выбираемого столбца. Выполняется выборка столбца City из таблицы Customer, преобразование в верхний регистр, с помощью функции UPPER( ), итоговому столбцу в выборке присваивается имя CityList.
Копировать Код | |
---|---|
CLOSE ALL |
Пример 3
В следующем примере демонстрируется использование опции DISTINCT - для выборки уникальных значений; а также использование опции WHERE, определяющей условие связывания двух таблиц. В результирующий набор выбираются поля Company, Order_Date, и Shipped_On, имеющие уникальные значения (в совокупности) для исходных таблиц Customer и Orders. В операторе SELECT используются локальные алиасы указанных таблиц - для однозначной идентификации поля Cust_ID, которое присутствует в обоих таблицах.
Копировать Код | |
---|---|
CLOSE ALL |
Пример 4
В следующем примере выполняется выборка данных из двух таблиц, ключевая опция WHERE используется для указания условия связывния этих таблиц, и указания дополнительного условия фильтрации. В операторе SQL Select объединяются данные из таблиц Customer и Orders, которые связываются по полю Cust_ID; выбираются следующие поля Company, Order_Date, и Shipped_On; условие фильтра: только те записи, для которых order_date earlier < 02/16/1994. В данном операторе SELECT используются локальные алиасы исходных таблиц, так как ключевое поле связывания таблиц Cust_ID присутствует в обоих таблицах.
Копировать Код | |
---|---|
CLOSE ALL |
Пример 5
В следующем примере демонстрируется использование опции ORDER BY Order_Item - для упорядочивания результирующих записей выполняемого Запроса. Здесь ваполняется выборка полей Country, PostalCode, и Company из исходной таблицы Customer; осуществляется сортировка результирующих записей по всем указанным полям, как они заданы в данной опции; сортировка выполняется в возрастающем порядке (по-умодчанию).
Копировать Код | |
---|---|
CLOSE ALL |
Пример 6
В следующем примере показано использование опции INTO TABLE TableName - задание результирующей таблицы. В примере выполняется выборка полей Company, Order_Date, и Shipped_On из таблиц Customer, Order, которые объединяются по ключевому полю Cust_ID, результат выполнения запроса помещается в указанную таблицу CustShip. Получаемая таблица отображается в системном окне Browse. В команде SELECT используются локальные алиасы для однозначного описания ключевого поля Связи, Cust_ID, которое присутствует в обоих исходных таблицах.
Копировать Код | |
---|---|
CLOSE ALL |
См. также
Описание
CREATE QUERY, командаCREATE TABLE - SQL, команда
MODIFY QUERY, команда
SET ENGINEBEHAVIOR, команда
SYS(3054) - Уровень оптимизации Запросов Rushmore
SYS(3099) - Режим совместимости при выборке данных SQL Data Engine
Условия Фильтрации для Запросов и Представлений
Базовые соглашения по использованию операторов SQL SELECT
Концепции
Условия Объединения Таблиц, Запросы и ПредставленияДругие ссылки
Работа с ЗапросамиРабота с Представлениями (Visual FoxPro)
Дизайнеры Представлений и Запросов