Создание базы данных в субд mіcrosoft Access 3. Теоретические сведения



Скачать 255.5 Kb.
Дата28.12.2017
Размер255.5 Kb.
#5047

Создание базы данных в СУБД Mіcrosoft Access

23.1 Теоретические сведения

Изучите теоретические основы создания таблиц и их связей в СУБД Microsoft Access 2003, рассмотренные в лекционном курсе, в СУБД Microsoft Access 2007 - 2010 или других источниках информации.

23.2. Цель работы

Создание базы данных (таблицы и связи между ними) средствами СУБД Microsoft Access.

23.3. Постановка задачи

Предметная область: Деканат (успеваемость студентов).
Основные предметно-значимые сущности: Студенты, Группы студентов, Дисциплины, Успеваемость.

Основные предметно-значимые атрибуты сущностей:

студенты – фамилия, имя, отчество, пол, дата рождения, место рождения, группа студентов;

группы студентов – название, курс, семестр;

дисциплины – название, количество часов;

успеваемость – оценка, вид контроля.

Основные требования к функциям системы:

выбрать успеваемость студентов по группам и дисциплинам.



Характеристики таблицы-объекта: Группы студентов. Таблица 1

Описание

Имя поля

Тип данных

Свойства поля:

Размер поля

Индексированное

Код группы (ключевое поле)

КодГруппы

счетчик

длинное целое

Установится автоматически

Название группы

Название

текстовый

6

Нет

Курс

Курс

числовой

длинное целое

Нет

Семестр

Семестр

числовой

длинное целое

Нет

Характеристики таблицы-объекта Студенты: Таблица 2

Описание

Имя поля

Тип данных

Свойства поля:

Размер поля

Индексированное

Код студента (ключевое поле)

КодСтудента

счетчик

длинное целое

Установится автоматически

Код группы (внешний ключ)

КодГруппы

числовой

длинное целое

Да. Совпадения допускаются

Фамилия

Фамилия

текстовый

20

Нет

Имя

Имя

текстовый

15

Нет

Отчество

Отчество

текстовый

15

Нет

Пол

Пол

текстовый

1

Нет

Дата рождения

Дата рожд

дата/время

-

Нет

Место рождения

Место рожд

МЕМО

-

Нет

Характеристики таблицы-объекта: Дисциплины. Таблица 3



Описание

Имя поля

Тип поля

Свойства поля:

Размер поля

Индексирован

Код дисциплины

КодДисциплины

счетчик.

длинное целое

Установится автоматически

Название дисциплины

Название

текстовый

15

Нет

Общий объем часов

КолЧасов

числовой

длинное целое

Нет

Характеристики таблицы-объекта: Успеваемость. Таблица 4

Описание

Имя поля

Тип поля

Свойства поля:

Размер поля

Индексирован

Код оценки (ключевое поле)

КодОценки

счетчик.

длинное целое

Установится автоматически

Код дисциплины (внешний ключ)

КодДисциплины

числовой

длинное целое

Да (Допускается)

Код студента (внешний ключ)

КодСтудента

числовой

длинное целое

Да (Допускается)

Оценка

Оценка

текстовый

8

Нет

Вид контроля (экзамен, зачет, рейтинг)

Вид контроля

текстовый

7

Нет

План выполнение работы:

Создайте новую базу данных.

Создайте необходимые таблицы, согласно предметной области.

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

Определите первичные ключи в созданных таблицах.

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

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

Заполните созданные таблицы данными (минимум 10 записей на таблицу).

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

Создать запрос на выборку. Отображать все фамилии студентов, которые получили оценки отл/A по всем дисциплинам (Успеваемость студентов).

Создать параметрический запрос. Создать запрос, в результате которого будет выводиться Фамилия студента, Название группы, Дисциплина и Оценка (отл/А), полученная студентом по дисциплине.

Оформите отчет о выполнении лабораторной работы.

23.4. Пошаговое выполнение работы

23.4.1. Загрузить Microsoft Access

Выполните следующие действия: Пуск—> Программы — Microsoft Access (или выполнив щелчок на соответствующей пиктограмме на панели Microsoft Office).

23.4.2. Создать новую базу данных

После загрузки MS Access на экране появится главное окно. При первом запуске Access в главном окне выводится область задач в режиме «Приступая к работе», с помощью которой можно открыть существующие БД и «Создать файл». 
При выборе команды «Создать файл» в области задач изменится режим на «Создание файла».

При выборе команды «Новая база данных» откроется окно диалога «Файл новой базы данных», в котором необходимо выбрать имя диска и директории для хранения БД, а также имя БД (тип файла устанавливается по умолчанию «Базы данных Microsoft Office Access») и щелкнуть на кнопке «Создать», будет сохранен файл с расширением .mdb

В главном окне приложения появится окно БД с назначенным именем, например «Деканат: база данных (формат Access 2000).

23.4.3. Создать структуры таблиц

В появившемся на экране окне БД Деканат: база данных выбрать вкладку Таблицы и щелкнуть на пиктограмме Конструктор на панели инструментов. Появится окно Конструктора таблиц. 

23.4.3.1. Создать структуру таблицы Группы студентов.

В окне Конструктора таблиц заполнить разделы Имя поля, Тип данных и Свойства поля в соответствии с таблицей 1. 
Для перехода от раздела к разделу использовать клавишу <ТаЬ> или щелчок мышью на нужной ячейке. 
В разделе Тип данных для изменения типа раскрыть окно выбора типа, выполнив щелчок по кнопке раскрытия списка, затем выполнить щелчок в строке, содержащей соответствующий тип.

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

После заполнения разделов необходимо задать ключевое поле. В качестве ключевого поля выбрать поле КодГруппы. 
Для создания ключевого поля выделить поле КодГруппы, выполнив щелчок слева от имени поля на полосе выделения. Выбрать в меню Правка — Ключевое поле или выполнить щелчок по пиктограмме Ключевое поле на панели инструментов приложения. Слева от имени поля появится изображение ключа.

После создания структуры таблицы необходимо сохранить ее. Файл. — Сохранить, или. Сохранить, как... В окне диалога Сохранение ввести имя для сохранения созданной таблицы: Группы студентов, затем ОК.

23.4.3.2. Создать структуру таблицы Студенты:

В окне Конструктора таблиц заполнить разделы Имя поля, Тип данных и Свойства поля в соответствии с таблицей 2.

Для поля КодГруппы выбрать тип Мастер подстановок. Это позволит облегчить заполнение данными этого поля, так как в таблице Студенты будут отображаться не коды группы, а их названия. После выбора типа Мастер подстановок откроется первое диалоговое окно Создание подстановки.

В этом окне выбирается способ, которым столбец подстановки получит свои значения: из таблицы или запроса, затем щелчок по кнопке Далее.

В следующем диалоговом окне выбирается таблица, содержащая столбец подстановки – Группа студентов, щелчок по кнопке Далее.

В следующем окне выбирается поле (Название), используемое в качестве столбца подстановки, и щелчком по кнопке  переносится в окно Выбранные поля. Щелчок по кнопке Далее .

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

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

В разделе Тип данных будет указан тип числовой, т.е. тип, соответствующий типу поля подстановки из таблицы Группа студентов.

Для поля КодГруппы установить свойство - Индексированное поле. Для этого в разделе Свойство поля выбрать строку Индексированное поле. Выполнить щелчок по кнопке раскрытия списка и выбрать строку - Да (Допускаются совпадения).

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

23.4.3.3. Создать структуру таблицы Дисциплины.

В окне Конструктора таблиц заполнить разделы Имя поля, Тип данных и Свойства поля в соответствии с таблицей 3.

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

23.4.3.4. Создать структуру таблицы Успеваемость.

В окне Конструктора таблиц заполнить разделы Имя поля, Тип данных и Свойства поля в соответствии с таблицей 4.

Для полей КодДисциплины и КодСтудента выбрать тип Мастер подстановок. Это позволит облегчить заполнение данными этих полей, так как в таблице Успеваемость будут отображаться не коды дисциплины и студента, а их названия.

В таблице необходимо выбрать поля КодДисциплины и КодСтудента в качестве индексированных полей. Для свойства Индексированное поле установить значение Да (Допускаются совпадения).

После создания структуры таблицы необходимо задать ключевое поле – КодОценки (можно отказаться от создания ключевого поля)
Сохранить структуру таблицы с именем Успеваемость.

23.4.4. Установить связи между таблицами:

Выбрать команду Сервис — Схема данных или выбрать пиктограмму Схема данных на панели инструментов. Появится окно Схема данных, содержащее диалоговое окно Добавление таблицы, в котором отображается список таблиц. Выделить все таблицы: Группы студентов, Студенты, Дисциплины и Успеваемость и выполнить щелчок на кнопке Добавить. В окне Схема данных появятся таблицы, после этого необходимо закрыть окно Добавление таблицы.

Далее необходимо связать таблицы Группы студентов и Студенты, отбуксировав поле КодГруппы таблицы Группы студентов, на соответствующее поле таблицы Студенты.

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

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

Закрыть окно Связи. При запросе на сохранение выполнить щелчок на кнопке Да.

23.4.5. Заполнение таблиц

Для  заполнения таблиц Группы студентов и Студенты данные выбираются самостоятельно, а для таблиц Дисциплины и Успеваемость данные представлены в таблицах 5 и 6.

Заполнение таблиц целесообразно начинать с таблицы Группы студентов, так как поле Код группы таблицы Студенты используется в качестве столбца подстановки для заполнения соответствующего поля таблицы Студенты.

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

На экране появится структура таблицы БД в режиме таблицы. Заполнение производится по записям, т.е. вводится информация для всей строки целиком. При заполнении текущей строки появится новая пустая строка. Переход к следующему полю осуществляется нажатием клавиши <Таb>.

Для заполнения поля MEMO в таблице Студенты нажать комбинацию клавиш , предварительно установив курсор в поле MEMO. Откроется текстовое окно «Область ввода». После ввода или редактирования данных в этом окне щелкнуть по кнопке ОК.

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



Таблица-объект Дисциплины Таблица 5

№ п/п

Название дисциплины

Количество часов

1

Иностранный язык

108

2

История  Украины

108

3

Культурология

72

4

Математика

180

5

Политэкономия

108

6

Микроэкономика

180

7

Физкультура

36

8

Эконом. информатика

180

Данные для заполнения таблицы Успеваемость Таблица 6


п/п

Оценка 
Национальная/ECTS

Описание

1

5/A

Отлично - без ошибок

2

5/B

Отлично - с незначительными ошибками

3

4/B

Очень хорошо – с несколькими ошибками

4

4/C

Хорошо - с несколькими значительными ошибками

5

3/D

Удовлетворительно – со значительными недостатками

6

3/E

Удовлетворительно – удовлетворяет минимальному критерию оценки

7

2/FX

неудовлетворительно с возможностью повторной сдачи экзамена

8

2/F

неудовлетворительно с обязательным повторным курсом

6. Проверка обеспечения целостности данных (каскадное удаление).

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

7. Формирование запросов

1) Создание запроса на выборку.

Задание: создать запрос «Успеваемость студентов» (отображать все фамилии студентов, которые получили оценки отл/A по дисциплинам), содержащий поля: Группы студентов, Фамилия, Имя, Отчество, Дисциплины, Оценка. Список должен быть отсортирован по фамилии по возрастанию. Указать условия отбора в поле оценка: отл/A

Для этого необходимо выполнить следующую последовательность действия:

В окне базы данных необходимо выбрать вкладку Запросы и дважды щелкнуть на пиктограмме Создание запроса в режиме конструктора. Появится активное окно Добавление таблицы на фоне неактивного окна «Запрос 1: запрос на выборку». В окне Добавление таблицы следует выбрать таблицы (Группы студентов; Студенты; Успеваемость; Дисциплины), на основе которых будет проводиться выбор данных, и щелкнуть на кнопке Добавить. После этого закрыть окно Добавление таблицы, окно «Запрос 1: запрос на выборку» станет активным.

Переместить имена полей с источника в Бланк запроса. Из таблицы Группы студентов отбуксировать поле Название в первое поле Бланка запросов, из таблицы Студенты отбуксировать поле Фамилии во второе поле Бланка запросов, а из таблицы Успеваемость отбуксировать поле Оценка в третье поле и из таблицы Дисциплины отбуксировать поле Название в четвертое поле Бланка запросов.

Задать принцип сортировки. Курсор мыши переместить в строку Сортировка для поля Фамилии, появится кнопка открытия списка режимов сортировки: по возрастанию и по убыванию. Установить в поле Фамилия режим сортировки – по возрастанию.

В строке Условия отбора необходимо ввести критерии поиска. В поле Оценка ввести  - "отл/A", т.е. отображать все фамилии студентов, которые получили оценки отл/A.

После завершения формирования запроса закрыть окно Запрос на выборку. Откроется окно диалога Сохранить – ответить Да (ввести имя созданного запроса: Успеваемость студентов), и щелкнуть ОК. Вернуться в окно базы данных. В окне базы данных при выбранной вкладке Запросы появится созданный запрос.

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


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

2) Создать параметрический запрос

Задание: создать запрос, в результате которого будет выводиться Фамилия студента, Название группы, Дисциплина и Оценка (отл/А), полученная студентом по дисциплине.

Для этого необходимо выполнить следующую последовательность действия:

задать запрос в режиме конструктора или открыть существующий запрос: «Успеваемость студентов» в режиме конструктора;

в Бланк запроса в строке Условия отбора ввести условие отбора в виде приглашения в квадратных скобках, например [Введите фамилию];

закрыть окно Запрос на выборку, на вопрос о сохранении изменения ответить – Да. Вернуться в окно базы данных, где будет отображен созданный запрос;

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

на экране появится таблица с данными о выбранном студенте.

23.4.6. Завершение работы

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

Access SQL. Основные понятия, лексика и синтаксис

Для извлечения данных из базы данных используется язык SQL (Structured Query Language — язык структурированных запросов). SQL — это язык программирования, который очень напоминает английский, но предназначен для программ управления базами данных. Каждый выполняемый запрос на самом деле основан на языке SQL.

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

Это статья из цикла статей о языке Access SQL. В ней описаны основы использования SQL для выборки данных и приведены примеры синтаксиса SQL.

SQL — это язык программирования, предназначенный для работы с наборами фактов и отношениями между ними. В программах управления реляционными базами данных, таких как Microsoft Office Access, язык SQL используется для работы с данными. В отличие от многих языков программирования SQL удобочитаем и понятен даже новичкам. Как и многие языки программирования, SQL является международным стандартом, признанным такими комитетами по стандартизации, как ISO и ANSI.


"Язык SQL удобочитаем и понятен даже новичкам".

На языке SQL описываются наборы данных, помогающие получить ответы на вопросы. При использовании SQL необходимо применять правильный синтаксис. Синтаксис — это набор правил, позволяющих правильно сочетать элементы языка. Синтаксис SQL основан на синтаксисе английского языка и имеет много общих элементов с синтаксисом языка Visual Basic для приложений (VBA).

Например, простая инструкция SQL, извлекающая список фамилий контактов с именем Mary, может выглядеть следующим образом:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

ПРИМЕЧАНИЕ   Язык SQL используется не только для выполнения операций над данными, но еще и для создания и изменения структуры объектов базы данных, например таблиц. Та часть SQL, которая используется для создания и изменения объектов базы данных, называется языком описания данных DDL. Язык DDL не рассматривается в этом разделе. Дополнительные сведения см. в статье 

Инструкции SELECT

Инструкция SELECT служит для описания набора данных на языке SQL. Она содержит полное описание набора данных, которые необходимо получить из базы данных, включая следующее:


  • таблицы, в которых содержатся данные;

  • связи между данными из разных источников;

  • поля или вычисления, на основе которых отбираются данные;

  • условия отбора, которым должны соответствовать данные, включаемые в результат запроса;

  • необходимость и способ сортировки.

Предложения SQL

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



Предложение SQL

Описание

Обязательное

SELECT

Определяет поля, которые содержат нужные данные.

Да

FROM

Определяет таблицы, которые содержат поля, указанные в предложении SELECT.

Да

WHERE

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

Нет

ORDER BY

Определяет порядок сортировки результатов.

Нет

GROUP BY

В инструкции SQL, которая содержит статистические функции, определяет поля, для которых в предложении SELECT не вычисляется сводное значение.

Только при наличии таких полей

HAVING

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

Нет

Термины SQL

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



Термин SQL

Сопоставимая часть речи

Определение

Пример

идентификатор

существительное

Имя, используемое для идентификации объекта базы данных, например имя поля.

Клиенты.[НомерТелефона]

оператор

глагол или наречие

Ключевое слово, которое представляет действие или изменяет его.

AS

константа

существительное

Значение, которое не изменяется, например число или NULL.

42

выражение

прилагательное

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

>= Товары.[Цена]

Основные предложения SQL: SELECT, FROM и WHERE

Общий формат инструкции SQL:

SELECT field_1
FROM table_1
WHERE criterion_1
;

ПРИМЕЧАНИЯ   


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

  • Каждая инструкция SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять как в конце последнего предложения, так и на отдельной строке в конце инструкции SQL.

Пример в Access

В приведенном ниже примере показано, как в Access может выглядеть инструкция SQL для простого запроса на выборку.



вкладка объекта sql с инструкцией select

1. Предложение SELECT

2. Предложение FROM

3. Предложение WHERE

Эту инструкцию SQL следует читать так: «Выбрать данные из полей "Адрес электронной почты“ и "Компания“ таблицы "Контакты“, а именно — те записи, в которых поле "Город“ имеет значение "Сиэтл“».

Разберем пример по предложениям, чтобы понять, как работает синтаксис SQL.

Предложение SELECT

SELECT [E-mail Address], Company

Это предложение SELECT. Оно содержит оператор (SELECT), за которым следуют два идентификатора ([Адрес электронной почты] и Организация).

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

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

В инструкции SELECT предложение SELECT всегда стоит перед предложением FROM.

Предложение FROM

FROM Contacts

Это предложение FROM. Оно содержит оператор (FROM), за которым следует идентификатор (Контакты).

В предложении FROM не указываются поля для выборки.

Предложение WHERE

WHERE City="Seattle"

Это предложение WHERE. Оно содержит оператор (WHERE), за которым следует выражение (Город="Ростов").

ПРИМЕЧАНИЕ   В отличие от предложений SELECT и FROM предложение WHERE является необязательным элементом инструкции SELECT.

С помощью предложений SELECT, FROM и WHERE можно выполнять множество действий. Дополнительные сведения об использовании этих предложений см. в статьях, указанных ниже.

Сортировка результатов: предложение ORDER BY

Как и в Microsoft Office Excel, в Access можно сортировать результаты запроса в таблице. Используя предложение ORDER BY, в запросе также можно указать способ сортировки результатов при выполнении запроса. Если используется предложение ORDER BY, оно должно находиться в конце инструкции SQL.

Предложение ORDER BY содержит список полей, для которых нужно выполнить сортировку, в том же порядке, в котором будут применена сортировка.

Предположим, например, что результаты сначала нужно отсортировать по убыванию значения поля «Организация», а затем, если присутствуют записи с одинаковым значением поля «Организация», отсортировать их по возрастанию значения поля «Адрес электронной почты». Предложение ORDER BY будет выглядеть следующим образом:

ORDER BY Company DESC, [E-mail Address]

ПРИМЕЧАНИЕ   По умолчанию в Access выполняется сортировка по возрастанию (от А до Я, от наименьшего к наибольшему). Чтобы вместо этого выполнить сортировку значений по убыванию, необходимо указать ключевое слово DESC.

Дополнительные сведения о предложении ORDER BY см. в статье

Работа со сводными данными: предложения GROUP BY и HAVING

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

SELECT COUNT([E-mail Address]), Company

Задание полей, которые не используются в статистической функции: предложение GROUP BY

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

Предложение GROUP BY должно следовать сразу же за предложением WHERE или FROM, если предложение WHERE отсутствует. В предложении GROUP BY поля указываются в том же порядке, что и в предложении SELECT.

Продолжим предыдущий пример. Пусть в предложении SELECT статистическая функция применяется только к полю [Адрес электронной почты], тогда предложение GROUP BY будет выглядеть следующим образом:

GROUP BY Company

Дополнительные сведения о предложении GROUP BY см. в статье 

Ограничение статистических значений с помощью условий группировки: предложение HAVING

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

Предположим, например, что к первому полю в предложении SELECT применяется функция AVG (которая вычисляет среднее значение):

SELECT COUNT([E-mail Address]), Company

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

HAVING COUNT([E-mail Address])>1

ПРИМЕЧАНИЕ   Запрос может включать и предложение WHERE, и предложение HAVING, при этом условия отбора для полей, которые не используются в статистических функциях, указываются в предложении WHERE, а условия для полей, которые используются в статистических функциях, — в предложении HAVING.

Объединение результатов запроса: оператор UNION

Оператор UNION используется для одновременного просмотра всех данных, возвращаемых несколькими сходными запросами на выборку, в виде объединенного набора.

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



ПРИМЕЧАНИЕ   В запросах на объединение числовой и текстовый типы данных являются совместимыми.

Используя оператор UNION, можно указать, должны ли в результаты запроса включаться повторяющиеся строки, если таковые имеются. Для этого следует использовать ключевое слово ALL.

Запрос на объединение двух инструкций SELECT имеет следующий базовый синтаксис:

SELECT field_1


FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

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

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Запрос SQL. Примеры в MS Access. SELECT: 1-10

Примеры запросов SQL могут использованы для изучения и практикума написания запросов SQL в MS Access.

В запросе SQL оператор SELECT используется для осуществления выборки из таблиц базы данных.



Запрос SQL Q001. Пример запроса SQL для получения только нужных полей в нужной последовательности:

SELECT dt, product_id, amount


FROM m_income;

Запрос SQL Q002. В этом примере запроса SQL символ звездочки (*) использован для вывода всех столбцов таблицы m_product, иначе говоря, для получения всех полей отношения m_product:

SELECT *
FROM m_product;



Запрос SQL Q003. Инструкция DISTINCT используется для исключения повторяющихся записей и получения множества уникальных записей:

SELECT DISTINCT product_id


FROM m_income;

Запрос SQL Q004. Инструкция ORDER BY используется для сортировки (упорядочивания) записей по значениям определенного поля. Имя поля указывается за инструкцией ORDER BY:

SELECT *
FROM m_income


ORDER BY price;

Запрос SQL Q005. Инструкция ASC используется как дополнение к инструкции ORDER BY и служит для определения сортировки по возрастанию. Инструкция DESC используется как дополнение к инструкции ORDER BY и служит для определения сортировки по убыванию. В случае, когда ни ASC, ни DESC не указаны, подразумевается наличие ASC (default):

SELECT *
FROM m_income


ORDER BY dt DESC , price;

Запрос SQL Q006. Для отбора необходимых записей из таблицы пользуются различными логическими выражениями, которые выражают условие отбора. Логическое выражение приводится после инструкции WHERE. Пример получения из таблицы m_income всех записей, для которых значение amount больше 200:

SELECT *
FROM m_income


WHERE amount>200;

Запрос SQL Q007. Для выражения сложных условий пользуются логическими операциями AND (конъюнкция), OR (дизъюнкция) и NOT (логическое отрицание). Пример получения из таблицы m_outcome всех записей, для которых значение amount равно 20 и значение price больше или равно 10:

SELECT dt, product_id, amount, price


FROM m_outcome
WHERE amount=20 AND price>=10;

Запрос SQL Q008. Для объединения данных двух или более таблиц пользуются инструкциями INNER JOIN, LEFT JOIN, RIGHT JOIN. В следующем примере извлекаются поля dt, product_id, amount, price из таблицы m_income и поле title из таблицы m_product. Запись таблицы m_income соединяется с записью таблицы m_product при равенстве значения m_income.product_id значению m_product.id:

SELECT dt, product_id, title, amount, price


FROM m_income INNER JOIN m_product
ON m_income.product_id=m_product.id;

Запрос SQL Q009. В этом запросе SQL нужно обратить внимание на две вещи: 1) искомый текст заключен в одинарные кавычки ( ' ); 2) дата приведена в формате #Месяц/День/Год#, что верно для MS Access. В других системах формат написания даты может быть другим. Пример вывода информации о поступлении молока 12-го июня 2011 года. Обратите внимание на формат даты #6/12/2011#:

SELECT dt, product_id, title, amount, price


FROM m_income INNER JOIN m_product
ON m_income.product_id=m_product.id
WHERE title='Молоко' And dt=#6/12/2011#;

Запрос SQL Q010. Инструкция BETWEEN используется для проверки принадлежности некоторому диапазону значений. Пример запроса SQL, выводящий информацию о товарах, поступивших между 1-м и 30-м июнем 2011 года:

SELECT *
FROM m_income INNER JOIN m_product


ON m_income.product_id=m_product.id
WHERE dt BETWEEN #6/1/2011# And #6/30/2011#;
Каталог: download -> student
student -> Лабораторная работа по теме: «Химические свойства металлов»
student -> Лабораторная работа по теме: «Электролиз солей»
student -> Вопросы для дифференцированного зачета по мдк 03. 01 Эксплуатация объектов сетевой
student -> Занятие по теме: «Химические источники тока»
student -> Конспект лекций для студентов по специальностям 190302 «Вагоны» 190303 «Электрический транспорт железных дорог»
student -> Лабораторная работа по теме: «Окислительно-восстановительные реакции в электрохимических процессах»
student -> Лабораторная работа по теме: «Гальванические элементы»
student -> Лабораторная работа по теме: Окислительно–восстановительные
student -> Методическое пособие для студентов всех специальностей Издание 2-е, исправленное и дополненное Челябинск 2014

Скачать 255.5 Kb.

Поделитесь с Вашими друзьями:




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница