- •Часть 1
- •230105 "Программное обеспечение вычислительной техники
- •Базы данных. Учебное пособие для курсантов татк га.
- •Часть 1.
- •1.Введение………………………………………………………………………….21
- •Введение.
- •Системы управления базами данных.
- •Последовательность создания информационной модели.
- •Модели данных.
- •Предметная область
- •Концептуальная модель
- •Типы моделей данных.
- •С вязь 1…
- •Проектирование реляционной базы данных.
- •Пример проектирования баз данных.
- •Курсант
- •Анализ по.
- •Логическое проектирование.
- •Субд FoxPro.
- •Введение.
- •Создание файла бд.
- •Команда создания структуры базы данных.
- •Окно – форма для создания структуры бд.
- •Команда изменения структуры бд.
- •Команда открытия файла бд.
- •Команда закрытия файла бд.
- •Команда дополнения бд.
- •Команда установки формата даты.
- •Команда выхода из FoxPro в dos.
- •Окна редактирования.
- •Управление бд.
- •Временные переменные.
- •Создание временных переменных.
- •Сохранение временных переменных.
- •Загрузка переменных в память.
- •Удаление переменных.
- •Просмотр переменных.
- •Функции субд FoxPro.
- •Сборник практических работ Практическая работа №1:
- •Практическая работа №2:
- •Практическая работа №3:
- •Практическая работа №4:
Временные переменные.
Все переменные создаваемые в FoxPro, помещаются в специальную область памяти и находятся там до тех пор пока не будут удалены или пока не будет выгружена среда FoxPro.
В FoxPro разрешается создавать временные переменные тех же типов, что и поля БД – четыре типа D, L, C, N .
Тип переменной описывать не надо, он определяется типом последнего присваиваемого ей значения.
Имя переменной - это правильный идентификатор.
Создание временных переменных.
Следующие команды создают временные переменные и присваивают им значения.
<переменная> = <выражение>
STORE <выражение> TO <переменная>
Например:
А = 4
А = «база»
STORE 4 TO A
STORE 0 TO A1, A2, A3.
Сохранение временных переменных.
SAVE TO <файл> [ALL LIKE/EXCEPT <маска>]
– сохраняет в файле с указанным именем, все или часть из имеющихся временных переменных. Файл временных переменных имеет расширение .MEM
Опция: ALL LIKE <маска> - позволяет сохранить только те переменные, которые соответствуют маске.
Опция: ALL EXCEPT <маска> - сохраняет все, кроме соответствующих маске.
Маска может содержать символы *,?
Например:
А1 = 2;
А2 = «база»
А3 = .Т.
В1 = «Привет»
В2 = -17
F = .F.
SAVE TO PRIMER.MEM && все переменные сохранить.
SAVE TO PRIMER1 ALL LIKE A* && сохранить все на А (А1, А2, А3).
SAVE TO PRIMER2 ALL EXCEPT F && сохранить все, кроме F.
SAVE TO PRIMER3 ALL LIKE ?1 && сохранить А1 и В1.
Если файл в котором нужно сохранить переменные уже существует, то выводится стандартное сообщение. Такое предупреждение в программе можно подавить командой:
SET SAFETY OFF
Загрузка переменных в память.
Если нужно проработать с ранее сохранёнными переменными, то их нужно загрузить из файла в оперативную память командой:
RESTORE FROM <файл> [ADDITIVE]
команда загружает все переменные из файла <файл>.
Если ADDITIVE указана, то переменные из файла добавляются к переменным, находящимся в памяти, иначе все имеющиеся до этого переменные из памяти удаляются.
Например:
RESTORE FROM PR2.MEM
Расширение не обязательно.
Удаление переменных.
RELEASE <список переменных>
R ELEASE ALL [LIKE/EXCEPT <маска>]
RELEASE ALL
- Одинаковые команды
CLEAR MEMORY
Например:
RELEASE A1, B1
RELEASE ALL LIKE A*
Просмотр переменных.
1 способ:
DISPLAY MEMORY [LIKE <маска>]
– выводит переменные, их тип и значения.
Например:
DISPLAY MEMORY – выводит все переменные.
DISPLAY MEMORY LIKE * - выводит все пользовательские переменные.
2 способ:
А = 4
В = «база»
? А, В – на экране 4 база.
? «А = », А – на экране А = 4.
Выполнить Практическое задание № 4. (см. Приложение)
Функции субд FoxPro.
Формат записи функции |
Действие |
Пример |
Арифметические |
||
INT (<выр. N>) |
Ближайшее целое меньшее или равное <выр. N>. |
?INT (-18.7) && -18 |
MAX (<выр.>, < выр. 1>[, < выр. 2> …]) |
Возвращает максимальное значение из списка аргументов, которые должны быть одного типа. |
?MAX (3,1,-7) && 3
|
MIN (<выр.>, < выр. 1> [, < выр. 2> …]) |
Возвращает минимальное значение из списка аргументов, которые должны быть одного типа. |
?MIN (3,1,-7) && -8 |
ROUND (<выр. N1>, <выр. N2>) |
Округляет <выр. N1> до заданного в <выр. N2> количества знаков после запятой. |
?ROUND (- 34.268,1) && 34.2 |
RAND ([<выр. N>]) |
Возвращает число в диапазоне от нуля до единицы. <выр. N> позволяет определить начальное значение аргумента функции. Если число отрицательное, то значение функции определяется с помощью таймера компьютера. |
|
EXP (<выр. N>) |
Экспонента <выр. N> основание натурального логарифма е в степени <выр. N>. |
|
LOG (<выр. N>) |
Натуральный логарифм <выр. N>, аргумент должен быть больше нуля. |
|
LOG 10 (<выр. N>) |
Десятичный логарифм <выр. N>, аргумент должен быть положительным. |
|
SQRT (<выр. N>) |
Квадратный корень <выр. N>. Аргумент должен быть положительным. |
|
Системные установки |
||
SET FIXED ON/OFF |
Если установлено, то число десятичных разрядов, выдаваемых после запятой, определяется разрядностью операндов. Если OFF командой следующей ниже. |
|
SET DECIMALS TO <выр. N> |
Устанавливает количество отображаемых десятичных разрядов равных <выр. N>, и при этом производить округление. По умолчанию <выр. N> = 2. эти команды не влияют на фактические значения. |
|
Строковые |
||
AT/ATC (<выр. C1>, <выр. C2> [, <выр. N>]) |
Поиск слева направо в строке <выр. С2> номера позиции, с которой начинается подстрока <выр. С1>. Если подстрока не найдена, выдаётся ноль. параметр <выр. N> указывает, какой экземпляр <выр. С1> разыскивается в <выр. С2>. По умолчанию <выр.N>=1. |
?AT (‘база’,’база данных’) && 1 ?AT (‘а’,’база данных’) && 2 |
LEN (<выр. C>) |
Число символов в <выр. С>. Длина нулевой строки (‘’) ноль. |
?LEN (‘база’) && 4 |
LEFT (<выр. C>, <выр. N>) |
Выделение из строки <выр. С> указанного количества символов слева. Если <выр. N> длиннее строки, то возвращается вся строка. |
?LEFT (4,’база данных’) && база |
RIGH (<выр. C>, <выр. N>)
|
Выделение из строки <выр. С> указанного количества символов справа. Если <выр. N> длиннее строки, то возвращается вся строка. |
?RIGHT (‘база данных’,6) && данных |
SUBSTR (<выр. C>, <начальная позиция>, [<число символов>]) |
Выделение из <выр. C> подстроки начиная с <начальная позиция> длиной в <число символов>. Если последний параметр отсутствует, выделяемая подстрока заканчивается концом строки <выр. C>. |
?SUBSTR (‘база исходных данных,6,8’) && исходных |
LTRIM (<выр. С>) |
Удаление ведущих пробелов в <выр. C>. |
?LTRIM (‘ база ’) && ‘база ’ |
TRIM (<выр. С>) |
Удаление завершающих пробелов в <выр. C>. |
?TRIM (‘ база ’) && ‘ база’ |
REPLICATE (<выр. С>, <выр. N>) |
<выр. C> повторяется <выр. N> раз. |
?REPLCATE (‘+–’,5) && +–+–+–+–+– |
SPACE (<выр. N>) |
Формирование строки пробелов длиной <выр. N> |
|
STUFF (<выр. С>, <начальная позиция>, <число символов>, <выр. С2>) |
Изменение любой части <выр. С1> на <выр. С2> с места, указанного <начальная позиция> длиной в заданное <число символов>. Если <число символов > равно нулю, то <выр. С2> вставляется в <выр. С1>, не изменяя не одного символа в исходной строке. Если <выр. С2> является пустой строкой длиной ноль, то есть <выр. С2> = ‘’, из исходной удаляется указанное <число символов> со сжатием <выр. С1>. |
X = ‘база исходных данных’ ?STUFF (X,6,9,’конечных’) && база конечных данных ?STUFF (X,6,9,’’) && база данных |
Функции работы с датами |
||
CDOW (<выр. D>) |
Возвращает имя дня недели SET DATE GERMAN по-английски. |
?CDOW ({05.10.91}) && Saturday |
CMONTH (<выр. D>) |
Предъявляет название месяца по-английски. |
?CMONTH ({05.10.91}) && October |
CTOD (<выр. C>) |
Преобразует дату из символьной формы в формат даты. |
?CTOD (’05.10.91’) && 05.10.91 |
{< выр. C>} |
Функция преобразования строковой константы (без кавычек) в дату. Аналогично CTOD (), но более удобно, однако в качестве допускаются переменные и функции. |
{05.10.91} && 05.10.91 |
DATE () |
Предъявляет системную дату. Формат предъявления зависит от SET CENTURY и SET DATE. |
|
DAY (<выр. D>) |
Число дня по выражению типа дата <выр. D>. |
?DAY ({05.10.91}) && 05 October 91 |
DMY (<выр. D>) |
Возвращает по-английски в виде строки выражение даты. Если SET CENTURY OFF – формат ДД месяц ГГ. SET CENTURY ON – формат ДД месяц ГГГГ. |
|
DOW (<выр. D>) |
Определяет номер дня недели по <выр. D>. Первый день недели – воскресенье, седьмой – суббота. |
?DOW ({05.10.91}) && 7 |
DTOC (<выр. D> [, 1]) |
Преобразует типа дата в символьное выражение. Один означает, что формат ГГГГММДД. |
?DTOC ({05.10.91}) && 05.10.91 ?DTOC ({05.10.91},1) && 19911005 |
DTOS (<выр. D>) |
Аналогично DTOC () с параметром «1». |
|
GOMONTH (<выр. D>, <выр. N>) |
Возвращает дату, которая отстоит от <выр. D> на <выр. N> месяцев. Если <выр. N> положительно, возвращаемая дата будет на <выр. N> месяцев позже, если отрицательно – раньше. Если такой даты не существует, то возвращается дата, соответствующая последнему дню вычисленного месяца. |
?GOMONTH ({31.10. 91},12) && 31.10.92 ?GOMONTH ({31.10.91},-6) && 31.04.91 |
MONTH (<выр. D>) |
Определяет числовое значение номера месяца по дате <выр. D>. |
?MONTH ({05.10.91}) && 10 |
YEAR (<выр. D>) |
Определяет числовое значение года по <выр. D>. |
?YEAR ({05.10.91}) && 1991 |
Функции преобразования данных |
||
ASC (<выр. C>)
|
Выдаёт ASCII – код первого символа из <выр. С>. |
?ASC (‘B’) && 66 |
CHR (<выр. N>) |
Преобразует значение <выр. N> (1<N<255) в соответствующий символ. Обратно ASC. |
?CHR (66) && B |
CTOD (<выр. C>) |
Преобразует дату из символьной формы в формат даты. |
|
DTOC (<выр. D>) |
Преобразует типа дата в символьное выражение. Один означает, что формат ГГГГММДД. |
|
STR (<выр. N>, [<длина>], [<десятичные знаки>]) |
Преобразует <выр. N> в символьную строку, включающую знак «-» (если есть) и десятичную точку, общей длиной <длина> с заданным количеством <десятичных знаков>. |
?STR (384.248,8,2) && 384.25 |
VAL (<выр. С>) |
Преобразует число, представленное в символьной форме <выр. С>, в числовую форму. Число разрядов устанавливается SET DECIMALS TO, по умолчанию = 2, остальное округляется. |
?VAL (‘-16.576’) && -16.580 |
Функции проверки файлов и дисков |
||
BOF ([<область>]) |
Достигнуто (BOF () = .T.) или нет (.F.), начало файла БД в текущей или в указанной области. |
|
DBF ([<область>]) |
Выдаёт прописными буквами полное (с указанием пути ) имя открытой БД в текущей или указанной рабочей области. |
|
DISKSPACE () |
Число свободных байт на текущем диске. |
|
DELETED ([<область> ]) |
Выдаёт .T., если текущая запись помечена на удаление, .F. в противном случае. LIST FOR DELETED – покажет записи помеченные на удаление. |
|
EOF ([<область>]) |
Достигнут (.Т.) или нет (.F.) конец файла БД. |
|
FILE (<имя файла>) |
Проверка наличия файла на диске любого типа, имя с расширением пишутся в апострофах. |
|
FIELD (<выр. N1> [, <область>])
|
Выдача имени поля из активной БД с указанным в <выр. N> номером поля БД по порядку. Если полей меньше, чем <выр. N> выводится ноль. |
|
FOUND ([<область>])
|
(.Т.), если команды (LOCATE, CONTINUE или SEEK) завершилось успешно. |
|
FCOUNT ([<область>]) |
Число полей в открытой БД. |
|
FILTER ([<область>]) |
Возвращает прописными буквами выражение фильтра, действующего в текущей или в заданной области. |
|
LOOKUP (<поле 1>, <выр.>, <поле 2>) |
Ищет первое вхождение <выражение> в <поле 2> активной БД и возвращает значения <поле 1> из той же БД. Если файл индексирован и индекс открыт, то ведётся индексированный поиск, если нет – последовательный. Если поиск не удачный, возвращается пустая строка и EOF()=.T. |
|
LUPDATE ([<область>]) |
Дата последнего изменения БД. |
|
ORDER ([<область>]) |
Выдают прописными буквами имя главного индексного файла БД. |
|
RECNO ([<область>]) |
Возвращает номер текущей записи активной БД. |
|
RECCOUNT ([<область>]) |
Общее количество записей в БД. |
|
RECSIZE ([<область>]) |
Размер записи файла БД в байтах. |
|
HEADER ([<область>]) |
Размер заголовка в байтах. Величина заголовка в байтах равна 32*(N+1)+1, где N - число полей БД. |
|
SEEK (<выр.> [,<область>]) |
Выполняет поиск записей с <выр.> в индексном файле и устанавливает на неё указатель текущей. |
|
UPDATE () |
Вырабатывает (.Т.), если при выполнении команды READ данные в её областях GET каким-либо образом изменились. |
|
SET FULLPATH ON/OFF |
Если OFF, то маршрут не возвращается (только имя диска и файла). По умолчанию – ON. |
|
CURDIR ([<диск>]) |
Возвращает прописными текущую директорию на активном или заданном диске. Если такого диска нет возвращается пустая строка. |
|
SYS (5)
|
Возвращает имя активного по умолчанию диска. |
|
SYS (2003) |
Возвращает имя текущей директории по умолчанию. Имя диска не выводится. |
|
SYS (2004) |
Возвращает полное имя директории, где находится FoxPro. |
|
FULLPATH (<файл 1> [,<выр.N>/<файл 2>]) |
Возвращает полный маршрут DOS для указанного <файла 1 > или маршрут связи с другим <файлом 2 >. Если имя <файла 1> задано пустой строкой, то будет выдан полный путь, к текущей директории включая имя диска. |
|
Функции позиционирования выдачи данных |
||
COL () |
Номер текущей колонки на экране/окне. |
|
ROW () |
Номер текущей строки на экране/окне. |
|
PCOL () |
Номер текущей колонки на принтере. |
|
PROW () |
Номер текущей строки на принтере. |
|
Функции подстановки |
||
& <символьная переменная> [<выр. С>] |
Макроподстановка <символьной переменной> или MEMO – поля не посредственно в объект, который она изображает. |
a = ‘BRIG1’ USE & a |
EVALUATE (<выр. С>) |
Рассматривает <выр. С> как некоторое допустимое для FoxPro выражение и возвращает для него вычисленный результат. |
?EVALUATE (‘2**3’) && 8 |
=<выр.> [, <выр.>] … |
В качестве выражений можно использовать как встроенные, так и пользовательские функции. |
=CAPSLOCK (.T.) =INKEY (120) |
Функции конвертирования и распознавания букв |
||
ISALPHA (<выр. С>) |
Возвращает .Т., если <выр. С> начинается с буквы. |
|
ISLOWER (<выр. С>) |
Возвращает .Т., если <выр. С> начинается со строчной буквы. |
|
ISUPPER (<выр. С>) |
Возвращает .Т., если <выр. С> начинается с прописной буквы. |
|
LOWER (<выр. С>)
|
Преобразовывает все прописные буквы <выр. С> в строчные. |
|
PROPER (<выр. С>) |
Преобразовывает первую букву в прописную, остальные в строчные. |
|
UPPER (<выр. С>) |
Преобразовывает все строчные буквы <выр. С> в прописные. |
|
Выполнить Практическое задание № 5. (см. Приложение)
Приложение
