
- •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)
- •Примеры реляционных выражений.
4. Циклы в foxpro while, for, scan
Цикл с условием (цикл WHILE). Имеет вид:
DO WHILE <условие>
<команды тела цикла >
ENDDO
Команды тела цикла выполняются, пока выполняется <условие>.
В языке FoxPro нет меток, следовательно, нет команд перехода на помеченную команду. Поэтому, если нужно досрочно выйти из тела любого цикла, то необходимо выполнить команду
EXIT ['eksit] - выход.
По этой команде управление передается команде следующей за ENDDO. Пример:
а=1
do while .t.
а=а+1
? а
if a=100
exit
endif
enddo
Кроме EXIT существует команда LOOP [lu:p] - делать петлю, которая передает управление на саму команду цикла, что позволяет не выполнять ряд команд перед ENDDO.
Цикл с параметром (Цикл FOR). Имеет вид:
FOR<переменная>=<ВырN1>ТО<ВырN2>[STEP <ВырN3>]
<команды тела цикла>
ENDFOR
Этот цикл работает как в БЕЙСИКе. Вместо ENDFOR можно писать NEXT.
Цикл сканирования базы данных (цикл SCAN). Имеет вид:
SCAN [<границы>] [FOR <условие>] [WHILE <условие>]
<команды тела цикла>
ENDSCAN
Команды тела цикла выполняются для каждой записи входящей в границы и удовлетворяющей условиям. Пример выдачи информации об учениках с фамилией на букву А:
USE SCOIA
SCAN FOR FAM='A'
? FAM, KLASS, DR , WES, ROST
ENDSCAN
USE
5 Структура команд субд FoxPro
Команды FoxPro по обработке файлов базы данных имеют в общем случае следующий вид:
<Название> [<границы>][FOR <условие1>][WHILE <условие2>][<другие параметры>]
Здесь
<Название> - имя команды,
<границы> - такие границы действия команды как
ALL - все записи базы данных;
REST - все записи, начиная с текущей, до конца БД;
NEXT n - следующие n записей, начиная с текущей;
RECORD n - запись с номером n.
FOR <условие1> - выполнение команды только для записей, отвечающим <условию1>.
WHILE <условие2> - выполнение команды пока не перестанет выполняться <условие2>. При этом, если в команде присутствует еще и FOR-условие, то действие по WHILE-условию главнее. Параметры команды (опции) могут идти в произвольном порядке.
Команды вывода list и display
Команда LIST без параметров выдает на экран содержимое всех записей базы данных, а команда DISPLAY только текущую запись. Если указаны границы или заданы условия, то обе команды выдают одинаковый объем информации. Правда, команда DISPLAY делает вывод постранично, а LIST выдает всю информацию, не останавливаясь. Общий вид запишем для LIST (для DISPLAY такой же):
LIST [<границы>][<поля>][WHILE <условие>][FOR <условие>][OFF][ TO РRINT /TO FILE<файл>]
Здесь параметр <поля> - имена полей записи БД через запятую - задает вывод содержимого только указанных полей. При отсутствии этого параметра выдаются значения всех полей.
OFF - номера записей выдаваться не будут.
ТО PRINT - вывод на принтер.
ТО FILE <файл> - вывод в указанный <файл>.
Для подавления выдачи на экран заголовка из имен полей надо заранее выполнить установочную команду SET HEADING OFF. Здесь HEADING ['hediq] - заголовок.
Примеры. Пусть база данных SCOLA.DBF имеет записи с полями FAM, KLASS, DR, WES, ROST. Тогда:
1. Команда DISPLAY FAM,ROST FOR KLASS='5A ' - выведет на экран фамилии и рост учеников 5А класса.
2. Команда LIST KLASS,FAM FOR DR ={05.12.97} - выведет на экран номер класса и фамилию тех учеников, кто родился 5 декабря 1997 года.