Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_практика_Visual Foxpro.doc
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
1.28 Mб
Скачать

4.2. Создание индексов

При создании таблицы с помощью мастера на одном из этапов был создан первичный ключ. Вообще, для создания, изменения или удаления индексов используют конструктор таблиц Table Designer, Чтобы просмотреть список уже созданных индексов нужно в окне конструктора таблиц Table Designer выбрать вкладку Indexes (рис 7) Следует обратить внимание на то, что

1) Каждый индекс имеет имя, на которое можно ссылаться при упорядочивании данных в соответствии с индексом. Имя индекса содержится в поле Name.

С левой стороны имени индекса располагается переключатель, определяющий порядок упорядочивания значений индексного выражения: если стрелка направлена вверх, то значения упорядочены по возрастанию, если вниз - значения упорядочены по убыванию Переключение происходит с помощью клавиши мыши или клавишей Spacebar.

Рис. 4.1 Вкладка Indexes конструктора таблицы

2) В столбце Туре на рис.4.1 индексы имеют разные значения: поле, которое было определено как первичный ключ, имеет тип Primary; дополнительные индексы - тип Regular. Вообще Visual FoxPro создает индексы следующих типов:

Типы индексов:

Тип индекса

Описание

Regular

Хранятся значения индексного выражения для всех записей таблицы. Несколько записей, имеющих одинаковое значение индексного выражения, хранятся отдельно друг от друга и содержат ссылку на связанную с ней запись.

Unique

Хранятся только неповторяющиеся значения индексного выражения. Из записей, содержащих одинаковое значение индексного выражения, хранится только одно значение и ссылка на первую из записей с одинаковым значением индексного выражения. Таблица может иметь несколько уникальных индексов.

Candidate

Создается уникальный индекс, который не содержит полей с пустыми значениями. Индекс обладает всеми качествами первичного ключа и не является им только потому, что таблица не может содержать более одного первичного ключа.

Primary

Создается первичный ключ - уникальный индекс, который используется для связывания таблиц и определения условий целостности данных Поля не должны включать нулевые значения. Таблица может иметь только один первичный ключ.

Таким образом, первичный ключ имеет тип Primary, а дополнительные индексы - тип Regular.

Чтобы установить или изменить тип индекса, необходимо установить курсор в столбце Tуре в нужной строке и из списка типов индексов выбрать нужный

3) В столбце Expression формируются индексные выражения. Индексные выражения могут вводиться непосредственно в поле ввода Expression или формироваться в окне диалога Expression Builder, которое раскрывается после нажатия кнопки, расположенной правее поля ввода (рис 8)

В окне диалога Expression Builder в поле Expression формируется индексное выражение

путем выбора функций обработки значений и полей таблицы из списков Functions и Fields.

Например, для создания индекса, который будет упорядочивать фамилии покупателей в алфавитном порядке по городам, необходимо в окне диалога Expression Builder установить курсор в поле Fields в строке, содержащей имя нужного поля, в нашем случае city, и дважды нажать кнопку мыши в поле Expression, в результате появится имя выбранного поля Аналогично выбрать поле firstname Затем из списка математических функций выбрать «+» и, нажав дважды на кнопку мыши, установить его между индексными полями city и firstname (рис.4.2). После того, как индексное выражение сформировано, необходимо нажать кнопку ОК.

Рис. 4.2 Окно диалога Expression Builder

В поле Functions представлены функции обработки значений, используемые в Visual FoxPro. Функции разделены на группы в соответствии с типом значений, для обработки которых они используются. В нижеследующей таблице представлены наиболее часто используемые функции обработки значений:

Функции

Назначение

String (символьные)

LEN(expC)

Определяет длину строки

SUBSTR(Строка, Позиция, Количество символов)

Вырезает из Строки с определенной Позиции указанное Количество символов

АТ(Подстрока, Строка)

Определяет вхождение Подстроки в Строку. Результат -номер самого левого символа части строки, с которой найдено совпадение заданной подстроки.

UPPER(expC)

Преобразует строчные буквы Строки в прописные

LOWER(expC)

Преобразует прописные буквы Строки в строчные

SPACE(expN)

Преобразует символьное значение из заданного Количества пробелов

STR(expN,,)

Преобразует вещественное Число, находящееся в первой позиции аргумента, к символьному виду . Во второй позиции аргумента отражается длина заданного Числа, на третьей - количество знаков после запятой.

CHR(expN)

Отражает символ, которому в коде ASCII соответствует значение Числового аргумента

Logical (логические)

()

Служит для отделения функции от аргумента

< <=

«меньше» и «меньше или равно»

>=

«больше» и «больше или равно»

= <>

«равно»и«не равно»

Функции

Назначение

.Т.

Логическая истина

.F.

Логическая ложь

NOT

Логическое отрицание

AND

Логическое «И»

OR

Логическое «ИЛИ»

Math (математические)

^

Возведение в степень

* /

Умножение и деление

+ -

Сложение и вычитание

ABS(expN)

Вычисление абсолютного значения Числового аргумента

ACOS(expN)

Вычисление arccos Числового аргумента

ASIN(expN)

Вычисление arcsin Числового аргумента

ATAN(expN)

Вычисление arctg Числового аргумента

COS(expN)

Вычисление cos Числового аргумента

SIN(expN)

Вычисление sin Числового аргумента

TAN(expN)

Вычисление tg Числового аргумента

INT(expN)

Выделение целой части вещественного значения Числового аргумента

EXP(expN)

Возведение основания натурального логарифма в степень Числового аргумента

LOG(expN)

Вычисление натурального логарифма от Числового аргумента

LOG10(expN)

Вычисление десятичного логарифма от Числового аргумента

SQRT(expN)

Вычисление корня квадратного из Числового аргумента.

ROUND(expN, К)

Округление дробной части вещественного значения аргумента, который находится в первой позиции, до К знаков после запятой

MOD(X,Y)

Вычисление остатка от деления числа X на число Y.

MIN(X,Y)

Определение минимального значения из двух чисел X и Y

MAX(X,Y)

Определение максимального значения из двух чисел X и Y

VAL(expC)

Преобразует символьное значение аргумента в числовое.

Date (даты)

COD(expC)

Преобразует символьное значение аргумента в значение типа Дата.

DATE()

Выводит значение даты, которое было введено в компьютер при загрузке ОС

CDOW(expD)

Выводит название дня недели для заданной Даты.

DOW(expD)

Формирует числовое значение номера дня недели для заданной Даты

DAY(expD)

Выделяет числовое значение дня месяца из заданной Даты

CMONTH(expD)

Формирует символьное значение названия месяца для заданной Даты.

MONTH(expD)

Определяет числовое значение номера месяца для заданной Даты

YEAR (expD)

Выделяет из заданной Даты два последних символа года и выводит числовое значение года в формате 20ГГ

DTOC(expD)

Преобразует заданное значение типа Дата в символьное представление

4) Для завершения создания индекса необходимо нажать на кнопку ОК.