Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inform sistem.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.22 Mб
Скачать

Указание результатов выборки и источника данных

SELECT

[DISTINCT] [<псевдоним>.]<выражение> [AS<колонка>]

[, [<псевдоним>.]<выражение> [AS<колонка>]...]

FROM <БД> [<псевдоним>] [, <БД> [<псевдоним>]...]

Здесь указывается, что и откуда берется в выборку. Перед словом FROM перечисляются отбираемые <выражения>, а после- имена БД, из которых берутся данные. <Выражение> может быть полем записи из БД, константой, функцией от переменных, полей или выражением, содержащем имена полей.

Если <выражение> является именем поля, то оно может быть составным с включением имени БД или псевдонима. Псевдоним используется, как правило, для укорачивания текста, т.к. имена БД могут быть длинными, а псевдоним может состоять из одной буквы.

Параметр DISTINCT убирает в выводе данных повторы.

Вместо списка из имен всех полей можно использовать символ звездочка '*'.

Пример: запрос

SELECT * FROM SCOLA

выдает содержимое всей БД SCOLA, а запрос с псевдонимом S

SELECT S.FAM, S.ROST FROM SCOLA S

или без псевдонима

SELECT FAM, ROST FROM SCOLA

выдают фамилии и рост всех учеников школы, т.е. содержимое только двух из пяти полей всех записей БД SCOLA.

Вычисляемые <выражения> озаглавливаются по умолчанию именами EXP_1, EXP_2 и т.д. Свои имена колонок (столбцов) результата запроса задаются через конструкцию <выражение> AS <свое имя колонки>. При этом имя должно быть написано латинскими буквами, точнее- по правилам FoxPro для имен полей.

Пример: команда

SELECT fam, wes-(rost-100) AS otkl_wes FROM scola

выдает из БД SCOLA два столбца информации. Первый столбец с заголовком FAM содержит фамилии учеников, а второй с заголовком OTKL_WES дает отклонение в кг от оптимального веса.

<Выражение> может содержать функции, действующие по вертикали:

AVG(<выр>)-вычисление среднего по всем значениям <выр>,

MIN(<выр>)- нахождение минимального,

MAX(<выр>)- нахождение максимального,

COUNT(<выр>)- количество записей,

COUNT(*)- количество записей, попавших в выборку.

Примеры: 1) команда

SELECT klass, MIN(rost) FROM SCOLA GROUP BY klass

выдает номера классов и минимальный рост среди учеников этих классов;

2) команда

SELECT MAX(ROST) FROM SCOLA

выводит максимальный рост среди учеников школы;

3) команда

SELECT COUNT(*) FROM scola

выводит количество записей (строк) в БД scola;

4) команда

SELECT klass, AVG(wes), COUNT(klass) FROM scola GROUP BY klass

выводит для каждого класса школы номер класса, средний вес и количество учеников класса

5) команда

SELECT klass, AVG(wes), COUNT(klass) FROM scola

GROUP BY klass HAVING MAX(rost)>=160

выводит номер класса, средний вес и количество учеников класса только для тех классов, в которых самый рослый ученик выше 160 см.

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

[[ INTO <получатель>]/[ TO FILE <файл>

[ADDITIVE]/TO PRINTER]]

[NOCONSOLE] [PLAIN] [NOWAIT]

В качестве получателя выборки может быть база данных (таблица), массив, текстовый файл, экран монитора, принтер и Курсор.

Курсор-это временный набор данных в виде области памяти или временного файла. Для Курсора существует режим "Только чтение". Данные Курсора можно выдать на экран командой BROWSE, напечатать, использовать в другой команде SELECT.

В конструкции INTO <получатель> имеем <получатель>-это либо ARRAY <массив>, тогда здесь задается вновь создаваемый двумерный массив, либо CURSOR <Курсор>-задается имя Курсора, либо DBF/TABLE <имя БД>-задается новая БД. Таким образом имеем

INTO ARRAY <имя массива>/CURSOR <имя Курсора>/DBF/TABLE <имя БД/таблицы>

Конструкция TO FILE <файл> [ADDITIVE] -задает вывод выборки в текстовый файл.

Параметр [ADDITIVE] означает добавление выборки в конец существующего файла.

Конструкция TO PRINTER задает вывод выборки на печать.

Параметры NOCONSOLE, PLAIN, NOWAIT действуют при выводе выборки на экран, т.е. когда отсутствует указание объекта, куда пересылается выборка.

Параметр NOCONSOLE отменяет вывод выборки на экран. Параметр PLAIN отменяет вывод на экран заголовков колонок (столбцов), а NOWAIT означает безостановочный вывод на экран (без временных пауз при заполнении экрана).

Пример:

SELECT fam, klass FROM scola INTO CURSOR sco

BROWSE

USE

Здесь после выполнения команды USE (третья строка примера) Курсор sco становится недоступным для работы с ним, т.к. он исчезает из памяти компьютера. Но до этого по команде BROWSE содержимое Курсора можно внимательно просмотреть. Такая возможность удобна при отладки вида команды SELECT.

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