Реферат на тему:


Воспользуйтесь поиском к примеру Реферат        Грубый поиск Точный поиск






Загрузка...

Реферат по информатике

Запросы в базах данных

1. Необходимость запросов

Предположим, что на крупном предприятии есть огромная база данных «Кадры», содержащий подробные сведения о каждом сотруднике. Кроме формальной информации база может содержать и конфиденциальную, например сведения о заработной плате. Вся эта информация хранится в базовых таблицах. Работать с базой данных «Кадры» могут различные подразделения предприятия, и всем им нужны разные данные. Не все то, что позволено знать службе безопасности предприятия, должно быть доступно главному врачу, и наоборот. Поэтому доступ пользователей к базовым таблиц закрывают.

Для доступа к данным есть другой, гораздо более гибкий и удобный способ - запросы. Для одной и той же таблицы можно создать много различных запросов, каждый из которых сможет извлекать из таблицы лишь малую часть информации, но именно ту часть, что в данный момент необходимо. У сотрудника бухгалтерии должен быть запрос, что позволит определить сколько дней в году из-за болезни отсутствовал тот или иной работник, но у него не должно быть запроса, позволяет узнать, чем он болел и где лечился, а у главного врача такой запрос быть должен .

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

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

Результаты обработки сказываются только на содержании результирующей таблицы, а она носит временный характер, и иногда ее даже называют моментальным знимком.И еще одной ценным свойством запросов является их возможность выполнять итоговые вычисления. Запрос может не только выдать результирующую табэто, но и найти, например, среднее (всего, меньше, суммарное и т.п.) значение по какому полю.

2. Запросы на выборку

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

Как и другие объекты Access 9х, запросы можно создавать автоматически с помощью "Мастера" или вручную. И, как обычно, на этапе обучения лучше не пользоваться "Мастeром", чтобы почувствовать работу с запросами "кончиками пальцев".

Для создания запросов к базам данных существует специальный язык запросов. Она называется SQL (Structured Query Language - структурированный язык запросов). К счастью, те, кто пользуются СУБД Access 9х, могут позволить себе не изучать этот язык. Вместо него в Access 9х есть простое средство, называется бланком запроса по образцу. С его помощью можно сформировать запрос простыми приемами, перетаскивая элементы запроса между окнами.

Выбор базовых таблиц для запроса

1. Создание запроса к базе начинается с открытия вкладки "Запросы" диалогового окна "База данных" и нажатия левой клавиши мыши на кнопке "Создать".

2. В диалоговом окне "Новый запрос" задают ручной режим создания запроса выбором пункта «Конструктор».

3. Создание запроса в режиме "Конструктора" начинают с выбора тех таблиц базы, на которых будет основан запрос.

4.Выбор таблиц выполняют в диалоговом окне "Добавление таблицы". В нем отражаются все таблицы, имеющиеся в базе.

5.Обрани таблицы заносят в верхнюю половину бланка "запроса по образцу" щелчком на кнопке "Добавить".

6. В окне "Добавление таблицы" обратите внимание на наличие трех вкладок: "Таблицы", "Запросы", "Запросы и таблицы". Они говорят о том, что запрос не обязательно создавать толькона основе таблиц. Если ранее уже был создан запрос, то новый запрос может основываться и на нем.

3. Бланк запроса по образцу

Бланк запроса по образцу - удобное средство создания запросов. Наверное, оно в немалой степени способствует успеху, что СУБД Ассеss 9х имеет среди потребителей.

1. Бланк запроса по образцу имеет две панели. На верхней панели расположены списки полей тех таблиц, на которых основывается запрос.

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

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

4. Строка Имя таблицы заполняется автоматически при перетаскивании поля.

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

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

7. Интересный строчку в бланке запроса по образцу называется "Условие отбора". Именно здесь и записывают те критерии, по которому выбирают записи для включения в результирующую таблицу. По каждому полю можно создать свое условие отбора. В нашем примере предназначены два условия отбора: по весу игрока (более 80 кг) и по росту (менее 190 см).

8. Запуск запроса выполняют щелчком на кнопке "Вид". При запуске образуется результирующая таблица.

9. Чтобы выйти из результирующей таблицы и вернуться к созданию запроса в бланке запроса по образцу, нужно еще раз нажать на кнопку «Вид».

4. Запросы с параметром

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

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

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

2. Для этой цели служит специальная команда языка SQL, выглядит так: LIKE [...]. В квадратных скобках можно записать любой текст, обращенный к пользователю, например

LIKE [Введите название страны]

3. Команду LIКЕ надо поместить в строке "Условие отбора" и в поле, по которому делается выбор. В нашем случае это столбец сборных, занимали первые места в чемпионатах мира по футболу.

4. После запуска запроса открывается диалоговое окно, в котором пользователю предлагается ввести параметр.

5. Если в качестве параметра ввести слово "Бразилия", то выдается результирующая таблица, содержащая записи по тем чемпионатам, когда сборная Бразилии становилась чемпионом.

6. Если в качестве параметра ввести слово "Италия", то результирующая таблица будет иной.

Разумеется, в нашей небольшой таблицы и без запроса нетрудно найти сборные, занимали призовые места. Но без запроса не обойтись, если в базе содержатся сотни тысяч записей, причем расположены в разных таблицах.

5. Итоговые запросы

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

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

1. Рассмотрим работу салона, занимающейся продажей подержанных автомобилей. Результаты работы салона за последнюю неделю содержатся в таблице. В ней можно выделить несколько групп по различной признаку. Записи можно сгруппировать по моделям автомобилей (ВАЗ - отдельно и БМВ - отдельно) или по году выпуска (1989, 1993 и т.д.). Для каждой из групп можно провести итоговое вычисления по полю "Цена".

2. Итоговые запросы создают на основе известного нам бланка запроса по образцу, только теперь в нем появляется дополнительная строка "Группировка".

3. Для ввода этой строки в бланк надо нажать на кнопку «Групповые операции» на панели инструментов программы Ассеss 9х.

Далее все происходит очень просто.

4. В тех полях, по которым делается группировка, надо установить (или оставить) функцию "Группировка".

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

6. Нажатие левой клавиши мыши на кнопке «Вид» запускает запрос и выдает результирующую таблицу с необходимыми итоговыми данными.

7. В строке "Группировка" можно отметить лишь одну итоговую функцию. А как быть, если надо найти и сумму, и среднее, и максимальное значение, и еще что-то? Решение прост: то же поле можно включить в бланк запроса по образцу несколько раз.

6. Вычисления в запросах

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

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

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

Результативность: [Забитая] / [Игры]

есть, название нового поля: Поле_1 / Поле_2

2. В узкий столбец непросто записать длинную формулу, но если нажать комбинацию клавиш SHIFT + F2, то открывается вспомогательное диалоговое окно, называется "Область ввода". В нем можно ввести любую длинную формулу, а затем щелчком на кнопке ОК перенести ее в бланк запроса по образцу.

3. Если включить отображение поля, исчисляется результаты расчетов будут выдаваться в результирующей таблице.

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

7. Запросы на изменение

Выше мы говорили о том, что все виды запросов на выборку создают временные результирующие таблицы. Базовые таблицы при этом не изменяются. Однако, специально для разрабникив баз данных существует особая группа запросов, называются запросами на изменение. Они позволяют автоматически создавать новые таблицы или изменять уже имеющиеся. Логика использования запросов на изменение такова:

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

после запуска запроса образуется временная результирующая таблица;

данные из этой временной таблицы используют для создания новых таблиц или изменения существующих.

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

1. Предположим, что разработчик таблицы "Итоги по командам" захотел включить в нее поле "результативность". Конечно, он может рассчитать среднее количество мячей, забитых за игру каждой командой, но если ввести в таблицу такое поле, то придется заполнять вручную. Для таблиц, содержащих много записей, это решение неприемлемо.

2. Проще создать запрос на выборку, в который войдут всего поля базовой таблицы плюс новое, исчисляется поле.

3. Нажатие левой клавиши мыши на кнопке «Вид» позволяет убедиться, что запрос работает как надо и создает результирующую таблицу, более полную чем базовая. Теперь можно дать команду на создание новой базовой таблицы, равной результирующей.

4. Эта команда находится в меню «Зaпрос", что доступно только в режиме "Конструктора".

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

Загрузка...