
- •1.Субд FoxPro 2.0. Команды создания, открытия и закрытия бд. Рабочие области.
- •Краткая характеристика foxpro
- •2.Субд FoxPro 2.0.Коменда изменения структуры бд,дополнения и редактирования.
- •3. Команды FoxPro: If и Case.
- •4. Циклы в foxpro while, for, scan
- •5 Структура команд субд FoxPro
- •Команды вывода list и display
- •Команды перемещения по базе данных
- •Функции, связанные с указателем записи
- •Команды удаления данных
- •Команда изменения значения поля бд
- •Ускоренный поиск
- •Приблизительный поиск
- •8.Команда создания новой базы данных.
- •9 Команда sql по дополнению бд
- •Команда sql по дополнению бд
- •10 Команда sql по удалению записей (для Visual FoxPro)
- •Команда sql по удалению записей (для Visual FoxPro)
- •11 Общий вид команды формирования запроса select.
- •Указание результатов выборки и источника данных
- •Указание объекта, куда пересылается выборка:
- •Критерий отбора данных:
- •Группировка данных
- •Сортировка данных
- •12 Нормализация структуры данных.
- •Нормализация данных при реляционном подходе
- •Нормализация структуры данных
- •13 Нормализация отношений.
- •Пример нормализации отношений
- •14 Реляционные операторы.
- •Традиционные операции над множествами. Объединение (union).
- •Пересечение (intersect).
- •Вычитание (minus).
- •Произведение (times).
- •15 Специальные реляционные операторы: выборка, проекция, соединение, деление. Выборка (where)
- •Проекция [ ].
- •Соединение ( join ).
- •Деление (divideby)
- •Примеры реляционных выражений.
Указание результатов выборки и источника данных
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.