- •Лекция 18
- •Связывание таблиц
- •Выборка данных из таблиц «Дисциплины» и «Учебный_план» (таблицы связаны по ключевому полю ID_Дисциплина)
- •Использование ключевого слова LEFT [OUTER]
- •Использование ключевого слова RIGHT [OUTER]
- •Использование раздела WHERE для связывания таблиц
- •Раздел GROUP BY
- •COUNT
- •Примеры запросов с группировкой
- •Ключевое слово ALL в разделе GROUP BY
- •Раздел COMPUTE
- •Использование команды SELECT...INTO
- •Работа с таблицей «Контакты»
- •Вставка одной строки
- •Команда INSERT
- •Вставка результата запроса
- •Вставка результата запроса
- •Изменение данных – команда UPDATE
- •Удаление данных – команда DELETE
Лекция 18
Многотабличные запросы. Группировка данных. Запросы на создание и
обновление данных
Связывание таблиц
<связка_таблиц> ::= <левая_таблица><тип_связывания><правая_таблица>
ON <условие_связывания>
<тип_связывания> ::=
[INNER | {{LEFT | RIGHT | FULL } [OUTER] } ] JOIN
<условие_связывания> |
=, <, >, <=, >=, !-, <> |
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина
Выборка данных из таблиц «Дисциплины» и «Учебный_план» (таблицы связаны по ключевому полю ID_Дисциплина)
SELECT Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE Количество_часов > 60
Использование ключевого слова LEFT [OUTER]
SELECT Наименование, Семестр, Отчетность
FROM Дисциплины LEFT OUTER JOIN Учебный_план
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Наименование LIKE '%информатик%')
Использование ключевого слова RIGHT [OUTER]
SELECT Отчетность, Семестр, Наименование
FROM Учебный_план RIGHT OUTER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Наименование LIKE '%информатик%')
Использование раздела WHERE для связывания таблиц
SELECT Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Количество_часов > 60) AND (Семестр = 1)
SELECT Наименование, Семестр, Количество_часов FROM Учебный_план, Дисциплины
WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) AND (Количество_часов > 60) AND (Семестр = 1)
LEFT OUTER JOIN |
*= |
RIGHT OUTER JOIN |
=* |
Раздел GROUP BY
GROUP BY [ALL] <условие_группировки> [,...,n]
AVG() - вычисляет среднее значение для указанного столбцаCOUNT() - подсчитывает количество строк в группе (при
выполнении группировки) или количество строк результата запросаМАХ() - возвращает максимальное значение в указанном диапазоне
MIN() - возвращает минимальное значение в указанном диапазоне
SUM() - выполняет обычное суммирование значений в казанном диапазоне
AVG
ф
у
н
к
ц
и
я
COUNT
ф
у
н
к
ц
и
я
МАХ MIN
ф
у
н
к
ц
и
я
SUM
ф
у
н
к
ц
и
я