Язык SQL Применение агрегатных функций и вложенных запросов в операторе выбора.

Презентация:



Advertisements
Похожие презентации
Язык SQL Операторы манипулирования данными. Операции манипулирования данными DELETE операция удаления записей INSERT операция добавления или ввода новых.
Advertisements

1 БАЗЫ ДАННЫХ Создание сложных запросов. Запросы на нескольких таблицах. ЗАНЯТИЕ 7 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа.
СУБД Access Запросы Автор: Тутыгин В.С.. Назначение запросов Запросы обеспечивают простой доступ к определенному подмножеству записей одной или нескольких.
1 Лекция 6 Команды категории извлечения данных языка структурированных запросов SQL План лекции Выборка определенных столбцов таблицы Устранение избыточных.
1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
СУБД Microsoft Access 2003 Элементы языка SQL. Язык SQL SQL (Structured Query Language) – структурированный язык запросов Язык SQL применяется во многих.
Бланк запроса. Создание списка специальностей Вид при конструирования запросов.
Язык QBE Язык QBE -общая характеристика Табличный двумерный язык, основанный на реляционном исчислении. Декларативный язык. Язык четвертого поколения (4.
Презентация на тему: Ключевое слово TOP n [PERCENT] [WITH TIES]
Базы данных Язык запросов SQL. Команда SELECT (продолжение)
Объединение таблиц Подзапросы. Оператор SELECT дает возможность выборки информации сразу из нескольких таблиц, которые перечислены в списке FROM. Такая.
ACCESS Вложенные запросы. Основные и вложенные запросы Вложенным называется запрос, результат которого используется как условие отбора в основном запросе.
Языки манипулирования данными. Общая характеристика Язык, в котором можно (по крайней мере) моделировать исчисление с переменными- кортежами, либо, что.
Тема 6. Технология разработки реляционной модели данных Вопросы 1.Объекты реляционных БД, терминология 2.Разработка структуры БД 3.Нормализация отношений.
Базы данных Язык запросов SQL. Команда SELECT. Команда SELECT – выборка данных Общий синтаксис: SELECT [{ ALL | DISTINCT }] { список_вывода | * } FROM.
Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR)
РЕЛЯЦИОННАЯ АЛГЕБРА. Элементы РМД и формы их представления Сущность – это объект любой природы. Данные о сущности хранятся в отношении (таблице). Атрибуты.
СУБД MySQL - клиент-серверная СУБД Числовые(целые,действительные) Существует несколько разных типов целых чисел, различающихся количеством байтов данных,
Язык SQL Вложенные запросы и внешние объединения.
Язык SQL
Транксрипт:

Язык SQL Применение агрегатных функций и вложенных запросов в операторе выбора

Агрегатные функции

Рассмотрим базу данных, которая моделирует сдачу сессии в некотором учеб­ном заведении, Пусть она состоит из трех отношении R1, R2, Rз- Будем считать, что они представлены таблицами R1, R2 и R3 соответственно. R1 =(ФИО, Дисциплина, Оценка); R2 = (ФИО, Группа); R3 = (Группы, Дисциплина ) R1 =(ФИО, Дисциплина, Оценка); R2 = (ФИО, Группа); R3 = (Группы, Дисциплина )

Пример

Пример с Count() Посчитать количество 2-к за экзамен «базы данных» Посчитать количество 2-к за экзамен «базы данных» SELECT количество 2-к = count(*) FROM R1 WHERE Дисциплина =Базы данных AND Оценка = 2 Результат Результат Количесто 2-к = 2

Группировки

Рассмотрим подробно, как работает этот запрос

Результат

определить для каждой груп­пы и каждой дисциплины количество успешно сдавших экзамен и средний балл по дисциплине.

Результат

Отбор групп Построим запрос, который выводит группы, в которых по одной дисциплине на экзаменах получено больше одной двойки Построим запрос, который выводит группы, в которых по одной дисциплине на экзаменах получено больше одной двойки

БД Банк F = (N, ФИО, Филиал, ДатаОткрытия, ДатаЗакрытия, Остаток); F = (N, ФИО, Филиал, ДатаОткрытия, ДатаЗакрытия, Остаток); Q = (Филиал, Город); Q = (Филиал, Город); Например, предположим, что мы хотим найти суммарный остаток на счетах филиалах. Например, предположим, что мы хотим найти суммарный остаток на счетах филиалах. SELECT SUM(Oстаток) FROM F SELECT SUM(Oстаток) FROM F GROUP BY Филиал; GROUP BY Филиал;

Особенности HAVING Аргументы в предложении HAVING подчиняются тем же самым правилам, что и в предложении SELECT, где используется GROUP BY. Они должны иметь одно значение на группу вывода. Аргументы в предложении HAVING подчиняются тем же самым правилам, что и в предложении SELECT, где используется GROUP BY. Они должны иметь одно значение на группу вывода. Пример неправильного запроса SELECT Филиал, SUM(Остаток) FROM F GROUP ВУ Филиал HAVING ДатаОткрытия = 27/12/1999:

Особенности Having предложение HAVING должно ссылаться только на агрегаты и поля, выбранные GROUP BY. Имеется правильный способ сделать вышеупомянутый запрос: предложение HAVING должно ссылаться только на агрегаты и поля, выбранные GROUP BY. Имеется правильный способ сделать вышеупомянутый запрос: SELECT Филиал, SUM(Остаток) - FROM F WHERE ДатаОткрытия = '27/12/1999' GROUP BY Филиал; Смысл данного запроса следующий: найти сумму остатков по каждому филиалу счетов, открытых 27 декабря 1999 года.

Пример суммарные остатки на счетах филиалов в Санкт-Петербурге, Пскове и Урюпинске: суммарные остатки на счетах филиалов в Санкт-Петербурге, Пскове и Урюпинске: SELECT Филиал, SUM(Ocтaток) FROM F, Q WHERE F.Филиал = Q.Филиал GROUP BY Филиал HAVING Филиал IN («Санкт-Петербург». «Псков», «Урюпинск»);