Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект студента 2 по БД.doc
Скачиваний:
14
Добавлен:
20.09.2019
Размер:
119.3 Кб
Скачать

Поиск данных вне индексированной таблицы

Таблица может содержать сотни тысяч записей. Для поиска нужно указать что искать и где искать(имя поля).

Locate for lastname=’Павел’ . Результат выполнения виден после щелчка по таблице. Курсор укажет строку где содержится искомое. Для поиска следующей записи по данному условию используем команду continue. Если ничего не найдено курсор встанет на последнюю строку. Можно ставить условия поиска по нескольким полям, связывая условия союзом and.

Визуальными средствами поиск данных осуществляется через меню Edit – Find. Откроется окно Find. В окно вводим искомое и нажимаем кнопоньку. Курсор установится на найденную строку. По умолчанию поиск проводится сверху вниз. Чтобы искать в обратном направлении поставим отметку Search backward. Отметка Wrap around означает искать в обоих направлениях. Отметка Match Case означает учитывать регистр. Match whole word означает искать все слово. Эта отметка позволяет искать по частичному совпадению символов.

Навигация по таблице

Под навигацией понимается перемещение маркера по строкам таблицы. Go N – где n – помер строки – переход к нужной строке. Skip n – перепрыгнуть через n записей. Go top – перейти на первую запись. Go bottom – перейти вниз.

Индексы. Индексирование таблиц.

Индекс – специальный маленький файл с расширением .cdx, который содержит описание данных, содержащихся в поле. Индексирование производится по выбранному полю (простой индекс) или по нескольким полям (составной индекс). Имя индекса совпадает с именем таблицы. Если созданные индексы по нескольким полям, все они хранятся в этом индексе. Индексы бывают разного типа: 1.Primary – первичный – этот индекс не допускает повторения данных в индексированном поле 2. Candidat – обладает всеми свойствами первичного индекса и при необходимости может быть использован вместо него 3. Regular – обычный – допускает повторение данных в индексированном поле.

Индексы необходимы для: 1. Сортировки данных в таблице 2. Для ускорения поиска данных 3. Для создания связей между таблицами.

Создание индекса

Индекс создается в конструкторе. На вкладке fields в графе index выбираем направление индексирования – вниз или вверх. На вкладке Indexes выбираем тип индекса, например regular. Чтобы увидеть результат действия индекса его нужно подключить. Window – Date Session. Откроется окно. Выбираем таблицу и щелкаем по кнопке Properties. В следующем окне в поле Index order из выпадающего списка выбираем нужный индекс. После щелчка по таблице данные в индексированном поле будут упорядочены. В данный момент времени используется только 1 индекс. Чтобы создать составной индекс нужно в поле Expression записать через знак + имена 2 полей. Все поля должны быть одинакового типа. После подключения индекса произойдет сортировка (упорядочивание данных) сначала по полю, записанному первых в индексном выражении, потом по другому полю.

Связи между таблицами

Связи необходимы для того чтобы можно было находить и извлекать данные, относящиеся к 1 объекту из нескольких таблиц. Связи бывают нескольких видов: 1. Один к одному(1:1), когда 1 записи в родительской таблице соответствует 1 запись в дочерней таблице. 2. Один ко многим, когда 1 записи в родительской таблице соответствуют несколько записей в дочерней таблице. 3.Многие к одному – это вариант противоположный предыдущему.

Примеры связей :

1:1 – в одной таблице фамилия, в дочерней сведения о его отце.

1:М – в родительской таблице сведения о студенте, в дочерней о его поощрениях и взысканиях.

Для создания связей необходимо: 1.В связываемых таблицах должно быть одинаковое поле, позволяющее идентифицировать объект (одинаковость полей подразумевает одинаковый тип данных, одинаковую ширину поля и т.д.). 2. По этим полям должны быть созданы индексы. Вид создаваемой связи зависит от типов индексов: Если в обеих таблицах индексы типа Primory получится связь 1:1, а если нет, то это связь 1:М.

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

Поиск данных в индексированной таблице

В этом случае поиск происходит быстрее, так как он производится не в таблице а по содержанию индекса . поиск выполняется командой seek, например seek ‘Борисов’. Для поиска необходимо : а) чтобы индекс существовал б) чтобы он был подключен. Команда seek позволяет выполнять поиск по всем полям. Можно также использовать команду Find(в отличии от seek эта команда работает только с символьным типом данных).

Сортировка данных в таблице

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

SORT TO <имя новой таблицы> ON <имя поля> [ /A,/D]

По этой команде будет создана новая таблица. Чтобы увидеть результат ее нужно открыть. Возможна сортировка по нескольким полям сразу. Например

SORT TO Students_sort on lastname, birth_date /d

Фильтрация данных

Фильтр пропустит на экран только те записи, которые отвечают поставленному условию и не пропустит остальные. Это очень удобно. В таблице будут отображаться не все данные, а только те которые нам нужны.

Установка фильтра по строкам

SET FILTER TO <имя поля>=<условие>

Чтобы вернуться к полной таблице нужно выполнить команду SET FILTER TO без параметров. Можно устанавливать и более сложный фильтр, который:

А) отобразит только нужные строки

Б) отобразит только нужные столбцы, отвечающие определенным условиям. Такой фильтр принято называть запросом (Querry). Запрос позволяет отобрать нужные данные из 1 или нескольких таблиц. В команде создания запроса нужно указать поля, которые будут отображаться в результатах запроса и условия, которым должны отвечать отображаемые данные.

SELECT <имя поля 1, имя поля 2 и т.д.> FROM <имя таблицы> WHERE <условие>

Чтобы отменить действие фильтров нужно выполнить команду SELECT * FROM <имя таблицы>

Форма

На практике с таблицей работа производится только через форму. Это обеспечивает удобство работы и уменьшает вероятность ошибок. Главным достоинством формы является то, что в ней отображаются данные только по 1 строке. Это устраняет возможность ошибочного ввода данных в чужую строку. Форма обычно создается в мастере, а потом дорабатывается в конструкторе. После запуска мастера нужно выбрать Form Wizard для 1 таблицы или One to many – для нескольких таблиц. Шаг1.Выбираем поля. Шаг2.Выбираем стиль формы. Здесь же выбираем стиль кнопок. Шаг3.Выбираем поле по которому будут отсортированы записи. Шаг4. Финиш. Здесь можно ввести заголовок формы. Также можно выполнить предварительный просмотр нажав Preview. Средствами конструктора форме можно придать вид бумажного документа. Это сильно облегчает работу с БД лицам, не изучавшим предмет БД.

Запуск формы

Program – do! В открывшемся окне выбираем тип файла form и нужную форму с расширением .scx.

Кнопки управления формой:

1. Next – следующая

2. Prev – предыдущая

3. Top – первая запись

4. Botton – последняя запись

5. Print – печать

6. Add – добавить запись

7. Edit – изменить запись

8. Delete - удалить

9. Exit – выход

Через форму можно ввести любые данные.

Поиск данных средствами формы

Поиск можно вести по 2 полям. Сначала в поле field выбираем поле, где будет производится поиск, а в поле Value вводим искомое. Затем выбираем оператор из выпадающего списка, например equals – равно, more\less then – больше\меньше. Для поиска по второму полю нужно выбрать and\or и повторить действие.

Создание программного файла

Хотя VFP визуальная программа, иногда необходимо писать собственные программные файлы на языке SQL. Программа должна иметь определенную структуру:

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

Строки информации начинаются с символа звездочка, которая указывает на то что эта строка выполнению не подлежит.

  1. Установочная часть. В этом разделе даются команды, подготавливающие машину к выполнению программы, например CLEAR Memory, Set DAT American, Set bell on. В необходимых случаях строки снабжаются комментариями, поясняющими назначение строки. Делается это при помощи знаков &&. Для сложных команд и выражений - обязателен.

  2. Основная часть (Операционная). Содержит собственно операторы, выполняющие программу.

  3. Заключительная часть. Выполняет завершающие действия, готовит машину к выполнению следующих операций.

Программа создается через file – new – program – new file. Откроется окно редактора для создания программных файлов. В окно вводим текст программы. По окончании создания – сохранить. Запуск программы – Do! Если текст программы необходимо доработать, то file – open. Когда программа запускается на исполнение, может появится сообщение об ошибке – окно Program Error. В окне выводятся сообщения о характере ошибки. В окне 4 кнопки: 1. Cancel 2.Ignore 3. Suspend (приостановить программу) 4.Help(ПАНИКА). В окне сообщения могут появляться слова, которые могут дать подсказку, например Missing (нехватка чего – либо), Mismatch (несоответствие типов данных), Unrecognized (нераспознано).