Главная страница
Навигация по странице:

  • Выборка без использования фразы WHERE (простая выборка). Пансионат.

  • Вывод вычисляемых значений.

  • Продукты Калорий =

  • Выборка с использованием фразы WHERE . Использование операторов сравнения.

  • Использование BETWEEN … AND …

  • МИНОКЛАД НАЧАЛО КОНЕЦ

  • Лекция №13 Тема: Использование IN в SELECT WHERE

  • Форма NOT IN .

  • Форма NULL .

  • Выборка с упорядочиванием.

  • Продукт Белки Жиры Углеводы

  • Эти столбцы должны быть числовыми!

  • Функции без использования GROUP BY

  • Лекция № 14 Тема: Автоматизация приложений с помощью Visual Basic

  • УМКД. БД. и эксперт УМКД+. Учебнометодический комплекс по дисциплине базы данных и экспертные системы


    Скачать 1.37 Mb.
    НазваниеУчебнометодический комплекс по дисциплине базы данных и экспертные системы
    Дата25.08.2020
    Размер1.37 Mb.
    Формат файлаdoc
    Имя файлаБД. и эксперт УМКД+.doc
    ТипУчебно-методический комплекс
    #136063
    страница8 из 32
    1   ...   4   5   6   7   8   9   10   11   ...   32
    Тема: Запросы с использованием единственной таблицы. Использование предложения SELECT.
    При получении данных с использованием предложения SELECT и одной единственной таблицы, в результате будет 1 таблица. К полученной таблице можно снова применять SELECT.

    Предложение SELECT можно использовать как:

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

    2. Предложение SELECT может использоваться как WHERE или HAVING условий и тем самым будет реализовываться вложенный запрос.

    3. Предложение SELECT может использоваться как фраза выбора в командах CREATE VIEW, DECLARE CURSOR, INSERT.

    4. Предложение SELECT может использоваться как средство присвоения глобальным переменным строк из сформированной таблицы. INTO – фраза.

    Выборка без использования фразы WHERE (простая выборка).

    Пансионат. Выдать запрос на выдачу названия, статуса и адреса поставщиков.

    SELECT название, статус, адрес FROM Поставщики;

    SELECT * FROM Поставщики;

    * указывает на то, что необходимо выбрать все имена полей таблицы, имя которых указано в фразе FROM и в том порядке, как они описаны в таблице. Если необходимо выбрать основу всех блюд – SELECT основа FROM блюда;

    Для того, чтобы исключить дублирование и одновременно упорядочить перечень, необходимо дополнить запрос ключевым словом DISTINCT - SELECT DISTINCT Основа FROM блюда;

    Вывод вычисляемых значений.

    Если необходимо получить значение калорийности всех продуктов, то надо сформулировать выражение, в котором идет пересчет. Надо учесть, что при расщеплении 1г углеводов или белков в организме выделяется 1,4 кКл, жиров – 9,3 кКл.

    SELECT Продукты, ((Белки + Углеводы) * 4,1 + Жиры * 9,3) FROM Продукты;


    Продукты

    Калорий =

    Говядина

    1990
    Предложение SELECT может включать не только выражения, но и отдельные числовые или текстовые константы:

    SELECT Продукты “Калорий =”, ((Белки + Углеводы) * 4,1 + Жиры * 9,3) FROM Продукты;

    В том случае, если какой-либо член выражения не определен, т.е. имеет значение «Нуль», то СУБД сама присваивает этому полю значение NULL. Его код воспроизводится специальным образом (символом/набором символов).


    ПР

    Цена

    Количество

    Цена * Количество












    Можно установить в СУБД один из режимов представления NULL – Заменить его арифметическим нулём или оставить это значение неопределенным, и тогда значение результата этого выражения тоже является неопределенным. В случае неопределенного значения мы сделать вывод о том, что результат любого выражения должен проверяться. Например, SELECT ПР, Цена, Количество, (Цена * Количество) FROM Поставки;

    Выборка с использованием фразы WHERE. Использование операторов сравнения.

    Для получения перечня продуктов, не содержащих углеводов, сформируем запрос:

    SELECT Продукт, Белки, Жиры, Углеводы, К, Na… FROM Продукты WHERE Углеводы = 0 And Na = 0 And Продукт <> ‘Судак’;

    Можно использовать логические операции AND, OR, AND NOT, OR NOT. Использование этих операций позволяет проводить более детальный отбор строк.

    Использование BETWEENAND

    Использование «В интервале от … до …», в котором находятся строки, можно отобрать строки, в которых значения какого-либо столбца находятся в заданном диапазоне. Например, выдать перечень продуктов, в которых значение белка находится в диапазоне от 10 до 50. SELECT Продукты, Белки FROM Продукты WHERE Белки BETWEEN 10 AND 50;

    BETWEEN удобен при работе, задаваемые интервалы которых (начало и конец которых) расположены в разных столбцах.

    МИНОКЛАД

    НАЧАЛО

    КОНЕЦ

    2250

    01.01.1998

    01.01.1999

    4275

    01.01.1999

    01.01.2003
    SELECT НАЧАЛО, МИНОКЛАД FROM МИНОКЛАДЫ WHERE [НАЧАЛО] BETWEEN #1-1-1998# AND #1-1-1999#

    Лекция №13

    Тема: Использование IN в SELECT WHERE


    БЛ

    Блюдо

    В

    Основа

    Выход

    Труд

    1

    Салат летний

    3

    Овощи

    200

    3
    Пример: необходимо выдать сведения о блюдах на основе крупы, овощей и мяса:

    SELECT * FROM Блюда WHERE Основа IN (Крупа, Овощи, Мясо);

    Форма IN является краткой записью в последовательности отдельных сравнений, соединенных оператором ИЛИ (OR). SELECT * FROM Блюда WHERE основа = Овощи OR Основа = Крупа;

    Форма NOT IN. Выдает с отсутствием этих компонентов – SELECT * FROM Блюда WHERE Основа NOT IN (Крупа, Овощи, Мясо);

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

    SELECT Блюдо FROM Блюда WHERE Блюдо LIKE ‘Салат%’;

    Символы текстовой константы в форме LIKE интерпретируются следующим образом:

    1 – Символ подчеркивания «_» в текстовой константе заменяет любой одиночный символ.

    2 – «%» заменяет любую последовательность из N символов. При этом N может быть равно 0.

    Форма NULL. Неопределенное значение. Если при загрузке данных не введено значение в какое-либо поле таблицы, СУБД поместит в него NULL значение. Аналогичное значение можно ввести в поле таблицы, выполняя операцию изменения данных.

    SELECT DISTINCT ПР FROM Наличие WHERE Количество IS NULL;

    Используются условия Столбец IS NULL или Столбец IS NOT NULL.

    Следует помнить, что 0=0, NULL NULL.

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


    Продукт

    Белки

    Жиры

    Углеводы












    Пример: Выдать перечень продуктов и содержание в них основных веществ в порядке убывания в них белка.

    SELECT Продукт, Белки, Жиры, Углеводы FROM Продукты ORDER BY Белки DESC;

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

    Кроме того, в список ORDER BY можно включать не только имя столбца, но и его порядковую позицию в функции SELECT.

    Агрегирование данных

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

    COUNT – число значений в таблице. SUM – сумма значений в столбце.

    AVG – среднее значение в столбце. MAX – максимальное значение в столбце.

    MIN – минимальное значение в столбце. Эти столбцы должны быть числовыми!

    Следует отметить, что в этом случае столбец – это столбец виртуальной таблицы, в которой могут содержаться значения не только из столбца базовой таблицы, но и данные, полученные путем функционального преобразования И (ИЛИ) связывания символами арифметических операций, значений из одного или нескольких столбцов. При этом выражение, определяющее столбец в такой таблице может быть сколь угодно сложным, но не должно содержать SQL-функций. То есть SQL-функции не допускаются. Аргументом всех функций кроме COUNT (*) может предшествовать ключевое слово DISTRICT, которое указывает, что избыточные дублирующие значения должны быть исключены перед тем, как будет применяться специальная функция. Специальная функция COUNT (*) служит для подсчета всех без исключения строк в таблице.

    Функции без использования GROUP BY

    Если не используется фраза GROUP BY, то в перечень элементов SELECT можно включать лишь SQL-функции, или выражения, которые содержат такие функции. Другими словами нельзя иметь списки-столбцы, которые не являются SQL-функциями.


    SUM(Количество)

    COUNT(Количество)

    220

    2
    Например: Необходимо выдать информацию о массе яблок, под код продукта = 10, проданные поставщиками и указать количество этих поставщиков.

    SELECT SUM(Количество), COUNT (Количество) FROM Поставки ЦРУКУ ПР=10;

    Если для вывода в результат необходимо включить и номер продукта, то необходимо сформировать запрос следующего вида:

    SELECT ПР, SUM(Количество), COUNT (Количество) FROM Поставки ЦРУКУ ПР=10;

    Мы получили бы сообщение об ошибке. Это связано с тем, что SQL-функция создает одно единственное значение и для «свободного» столбца должно было быть выдано всё множество его значений. Без специального указания, которое задается фразой GROUP BY, SQL не будет выяснять одинаковые ли значения этого множества, или различные. В столбце-аргументе перед употреблением любой функции, исключаются все неопределенные значения. Если оказывается, что аргумент есть пустое множество, COUNT принимает значение 0, а остальные – NULL.

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

    SELECT SUM(Цена), AVG(Цена), COUNT(Цена), COUNT(DISTINCT Цена), COUNT (*) FROM Поставки WHERE ПС=5;

    SUM(Цена)

    AVG(Цена)

    COUNT(Цена)

    COUNT(DISTINCT Цена)

    COUNT (*)


















    ПР

    SUM(Количество)






    Фраза GROUP BY.

    Пусть требуется вычислить общую массу продуктов, которые поставляются поставщиками.

    SELECT ПР, SUM(Количество) FROM Поставки GROUP BY ПР;

    Фраза GROUP BY инициирует перекомпоновку указанной в операторе FROM таблице по группам, каждая из которых имеет одинаковое значение в столбце, который указан в GROUP BY.
    Лекция № 14

    Тема: Автоматизация приложений с помощью Visual Basic

    VBA имеет отличный от обычного VB синтаксис. Многочисленные средства Access, предназначенные для интерактивной разработки БД и решения задач обработки данных является основной для построения практических приложений пользователя. Однако, если в приложениях необходимо отслеживать и обрабатывать ошибки, создавать свои функции, в ходе выполнения приложений создавать объекты, работать с отдельными записями, а не с наборами записей, необходимо использовать вшитый в Access объектно-ориентированный язык программирования VBA. VBA позволяет создавать в среде Access диалоговые приложения пользователя, которые предоставляют ему широкие возможности для управления и контроля за ходом выполнения прикладных задач. Приложения, которые разрабатываются в VBA, могут выполняться только в той среде, в которой может поддерживаться VBA. VBA обеспечивает простоту использования объектов, которые создаются средствами Access. Поэтому при разработке приложений, как правило, программируются только те функции, которые не могут быть реализованы средствами Access. Основу ООП составляет работа с объектами. Основными объектами являются: таблица, запрос, форма, отчет, макрос, модуль, страница доступа. Эти объекты строятся на основе мелких объектов элементов управления, которые объединяются в более крупные объекты – семейства, то есть набор однотипных объектов. Все объекты имеют сохраняемый набор свойств, изменяя которые можно управлять объектами. С каждым объектом связывается и ряд методов выполняемых инструкций. Один и тот же метод может использоваться для разработки различных объектов. Все многообразие свойств методов обработки сводится в иерархические структуры.

    Основные иерархические структуры объектов, которые используются в Access:

    1. Модель объектов доступа к данным. DAO – Data Access Object, которая обеспечивает доступ и обработку данных в БД, управление БД и их объектами с помощью свойств и методов, а также позволяет создавать новые объекты и изменять структуру БД.

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

    В программах необходимо правильно указывать местоположение объекта в иерархии модели объектов. При создании новых объектов нужно размещать в соответствующих семействах. Сохранение ссылок на объекты в объектных переменных, которые будут использоваться в инструкциях программы. При работе с объектами возникают события, определенные в Access. Обычно события возникают в результате действий пользователя. Для каждого события может быть предусмотрена процедура обработки данного события. И на этом механизме строится большая часть пользовательских приложений, поскольку основой диалогового режима являются формы и отчеты. Программы, реализующие данные приложения, называются событийно-управляемыми, т.е. они выполняются в ответ на события, которые инициируются пользователем при работе с формами, отчетами и элементами их управления. В таком приложении пользователь или некоторое системное событие запускает процедуру обработки событий, которая написана на языке VBA. Порядок выполнения программ зависит от порядка возникновения событий. В простых приложениях в программе на VBA ограничиваются созданием процедур обработки событий и процедур функций, которые используются в выражении. Программа на VBA записывается как совокупность процедур типа Sub и Function. Процедура состоит из последовательности инструкций и методов, с помощью которых решаются задачи, требуемые действия или производятся расчеты. Процедуры, входящие в состав приложения, хранятся в модулях в БД, однако запросить выполнение модуля в целом невозможно. Выполняться могут только процедуры, содержащиеся в модуле. Модули содержат набор процедур и описание переменных, констант и объектов, которые используются в процедурах. Для удобного объединения процедур по их функциональному назначению или привязке к форме или отчету, модули можно разделить на 3 вида:

    1. Стандартные.

    2. Модули форм.

    3. Модули отчетов.

    Стандартные модули являются отдельными объектами БД и представлены в окне БД на вкладке «Модули». Процедуры стандартного модуля могут быть общими (Public) и личными (Private). По умолчанию процедуры являются общими и доступны из любых других процедур БД.

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

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

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

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

    При этом обеспечивается обзор всех программ, составляющих проект.

    Программы на VBA создаются не только пользователем, но и автоматически при работе мастеров Access.

    П усть в форме для просмотра информации о группе по желанию пользователя можно открывать список студентов группы. Рассмотрим, каким образом это будет выглядеть на VBA.

    1. Создадим форму «Группа» на основе одноименной таблицы, воспользовавшись режимом «автоформы в столбец», а также форму «Студент», используя «автоформу ленточную».

    2. откроем форму «Группа» в режиме конструктора и добавим кнопку для открытия формы «Список Студентов». Для отображения в открываемой форме только связанных записей, надо при создании кнопки выбрать в окне мастера строку «открыть форму для отображения записей» и выбрать ‘ИГ’. По этому полю осуществляется связь форм и отбор записей подчиненной формы. Кнопке даем название «Список Студентов». Процедура, сформированная мастером для открытия формы «Студент» имеет стандартную структуру, в которую включены:

    • Инструкция по перехвату ошибок;

    • Описаны переменные, им присвоенные значения;

    • Выполнены основные действия;

    • Вставлена программа обработки ошибок.

    Private Sub CC_Click()

    On Error GoTo Err_CC_Click

    Dim StDocName As String

    Dim StLinkCriteria As String

    StDocName=”Студент”

    StLinkCriteria=”[НГ]” &” ’ “ &Me![НГ]&” ‘

    DoCmd.OpenForm.StDocName , , , StLinkCriteria

    Exit CC_Click:

    Exit Sub
    Err_CC_Click:

    MsgBox Err.Description

    Resume

    Exit CC_Click

    Exit Sub
    Процедура обработки событий является личной. Инструкция Sub объявляет процедуру – подпрограмму с составным именем CC_Click (название кнопки и имя события).

    DoCmd.OpenForm.StDocName,,,StLinkCriteria реализует главную функцию процедуры – открывает форму «Студент».

    DoCmd – является объектом активного приложения Access, предназначенным для выполнения макрокоманд.

    OpenForm – метод, применяемый к данному объекту и реализующий макрокоманду «Открыть форму». Методу передаются 2 аргумента: Первый аргумент задает имя открываемой формы. Второй передает строковое выражение, которое задает условие отбора записей в открываемой форме.

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

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

    Аргументы инструкции разделяются запятыми. Аргументы до Cmd.OpenForm могут отсутствовать и заменяться запятыми. В конце инструкции отсутствие недостающих аргументов не помечается.

    Е сли при работе с формой «Студент» необходимо установить режим, который обеспечивает только просмотр данных, необходимо записать 5м аргументом в инструкции acFormReadOnly. Приставка ас указывает на то, что в качестве агрумента используется значение встроенной константы Access.
    1   ...   4   5   6   7   8   9   10   11   ...   32


    написать администратору сайта