Параметры объединения в инструкциях SQL




Практическое занятие № 5

МНОГОТАБЛИЧНЫЕ ЗАПРОСЫНА ВЫБОРКУ ДАННЫХ

Цели занятия:

1. Изучить возможности СУБД ACCESS по формированию запросов и поиску информации на их основе.

2. Получить навыки работы с запросами.

1. Учебные вопросы

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

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

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

Методические указания по подготовке к работе

1. Изучить материал темы по конспекту и рекомендованной литературе.

2. Изучить настоящее задание и сделать необходимые выписки.

Методические рекомендации по выполнению работы

Объединение записей в многотабличном запросе

Для любой пары связных таблиц может быть выбран один из трех способов объединения записей:

· способ 1 – объединение только тех записей, в которых связные поля обеих таблиц совпадают;

· способ 2 – объединение тех записей, в которых связные поля обеих таблиц совпадают, а также объединение всех записей из первой таблицы, для которых нет связных во второй, с пустой записью второй таблицы;

· способ 3 – объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из второй таблицы, для которых нет связанных в первой, с пустой записью первой таблицы.

3.1.1. Первый способ объединения:

1. Откройте схему данных. Если между таблицами СТУДЕНТ и УСПЕВАЕМОСТЬ ранее была установлена связь, установите курсор на линию связи и щелкните правой кнопкой мыши. В контекстном меню выполните команду Изменить связь.

2. Если в окне Изменение связей отмечен параметр Обеспечение целостности данных, откажитесь от него. Это позволит Вам ввести в таблицу УСПЕВАЕМОСТЬ подчиненные записи, для которых нет главной.

3. Закройте схему данных.

4. Выберите объект Запросы Þ Создание запроса с помощью мастера Þ Создать.

5. В окне Новый запрос Þ.выберите Простой запрос Þ ОК.

6. В окне Создание простых запросов выберите таблицу СТУДЕНТ и ее поля НГ, НС, ФИО и таблицу УСПЕВАЕМОСТЬ и ее поля КП, ТАБН, ВИДЗ, ОЦЕНКА. После чего дважды нажмите кнопку Далее>>

7. Сохраните запрос под именем Успеваемость студентов 1.

8. Откройте запрос для просмотра данных. Проанализируйте полученные результаты.

3.1.2. Второй способ объединения:

1. Для изменения способа объединения таблиц откройте запрос Успеваемость студентов в режиме конструктора.

2. Щелкните правой кнопкой мыши на линии связи таблиц и выполните команду Параметры объединения контекстного меню.

3. В окне Параметры объединения выберите второй способ объединения записей таблиц.

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

3.1.3. Третий способ объединения:

1. Для изменения способа объединения таблиц откройте запрос Успеваемость студентов в режиме конструктора.

2. Щелкните правой кнопкой мыши на линии связи таблиц и выполните команду Параметры объединения контекстного меню.

3. В окне Параметры объединения выберите третий способ объединения записей таблиц.

4. Выполните те же действия для второй линии связи. Как видно для третьего способа направление стрелок объединения изменят свое направление. Сохраните запрос под именем Успеваемость студентов 3.

Параметры объединения в инструкциях SQL

1. Откройте в режиме конструктора созданный в предыдущем упражнении запрос Успеваемость студентов 2, где для исходных таблиц выбран второй способ объединения.

2. Перейдите в режим SQL, выбрав его из списка Вид. Инструкция SQL для этого запроса будет иметь вид:

SELECT СТУДЕНТ.НГ, СТУДЕНТ.НС, СТУДЕНТ.ФИО, УСПЕВАЕМОСТЬ.КП, УСПЕВАЕМОСТЬ.ТАБН, УСПЕВАЕМОСТЬ.ВИДЗ, УСПЕВАЕМОСТЬ.ОЦЕНКА FROM СТУДЕНТ LEFT JOIN УСПЕВАЕМОСТЬ ON (СТУДЕНТ.НС = УСПЕВАЕМОСТЬ.НС) AND (СТУДЕНТ.НГ = УСПЕВАЕМОСТЬ.НГ);

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

(СТУДЕНТ.НС = УСПЕВАЕМОСТЬ.НС) AND (СТУДЕНТ.НГ = УСПЕВАЕМОСТЬ.НГ);

Операция LEFT JOIN используется для создания левого внешнего объединения. Левое внешнее объединение включает все записи из первой (левой) таблицы, даже если нет совпадающих записей для записей из второй (правой) таблицы.

3. Вернитесь в режим конструктора и измените способ объединения таблиц запроса, выбрав вместо второго параметра объединения третий. Инструкция SQL для этого запроса будет иметь вид:

SELECT СТУДЕНТ.НГ, СТУДЕНТ.НС, СТУДЕНТ.ФИО, УСПЕВАЕМОСТЬ.КП, УСПЕВАЕМОСТЬ.ТАБН, УСПЕВАЕМОСТЬ.ВИДЗ, УСПЕВАЕМОСТЬ.ОЦЕНКА FROM СТУДЕНТ RIGHT JOIN УСПЕВАЕМОСТЬ ON (СТУДЕНТ.НС = УСПЕВАЕМОСТЬ.НС) AND (СТУДЕНТ.НГ = УСПЕВАЕМОСТЬ.НГ);

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: