 
        
        - •Лекция 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
ф
у
н
к
ц
и
я
