Построение запросов к БД оператор select презентация

Содержание

Цель занятия Научиться строить как простые, так и сложные запросы к БД с помощью оператора SELECT

Слайд 1Алексей Кузьмин
Руководитель Учебного центра филиала в г. Саратове, компания «Неофлекс»
ВАШ СОЮЗНИК

В РАЗВИТИИ

ПОСТРОЕНИЕ ЗАПРОСОВ К БД. ОПЕРАТОР SELECT


Слайд 2Цель занятия
Научиться строить как простые, так и сложные запросы к

БД с помощью оператора SELECT

Слайд 3Простые запросы select

select from

В oracle запрещены запросы без

источника данных
выход – использование в качестве источника данных таблицу-заглушку dual

Select <выражение> from dual

Примеры:

select (123+45)/56 from dual - получение значения вычисляемого выражения
select sysdate from dual – получение текущей даты
select ‘Место жительства: ’ from dual – использование строкового литерала

Слайд 4Основные операторы


Слайд 5Использование регулярных выражений
regexp_like (строка, регулярное_выражение)
В регулярном выражении используются обозначения:



Слайд 6Простые запросы select


Слайд 7Простые запросы select





Слайд 8Использование агрегатных функций
Агрегатная функция – функция, принимающая неопределённое кол-во аргументов и

возвращающая одно значение



Слайд 9Использование агрегатных функций

select avg (Зарплата) as ‘средняя зп’ from Сотрудники


Слайд 10Использование группировки
Группировка – объединение исходного набора записей в группы записей по

указанному критерию и вывода по одной итоговой строке для каждой группы

select Отдел, avg (Зарплата) as “средняя зп” from Сотрудники group by Отдел


Слайд 11Использование группировки
Группировка возможна по нескольким столбцам

select Фамилия, Отдел, count (*) as

кол-во from Сотрудники group by Отдел, Фамилия

Слайд 12Фильтрация групп
оператор having – задаёт условие отбора групп
select Фамилия, Отдел, count

(*) as кол-во from Сотрудники group by Отдел, Фамилия having кол-во >1

Слайд 13Включение подитогов
Предложение rollup
Включает в итоговый набор итоговое значение по каждому

из уровню группировки и по всем уровням группировки

Предложение cube
Включает в итоговый набор итоговое значение по каждому из уровню группировки и по каждой комбинации уровней группировки

Синтаксис:
select ….
group by rollup(<уровни группировки>)
select ….
group by cube(<уровни группировки>)


Слайд 14Использование множественных операторов
select…..
union | union all || intersect || minus
select…..


Слайд 15Соединения
Соединения необходимы для вывода в одном итоговом наборе согласованных данных из

нескольких связанных таблиц


+

=





Слайд 16Виды соединений


Слайд 17Внутреннее соединение
Выводит в итоговый набор только те записи, у которых есть

соответствующая запись в связанной таблице

+

=

select Фамилия, Расположение, Телефон
from Сотрудники inner join Отделы
on Отделы.Отдел = Сотрудники.Отдел


Слайд 18Внешнее левое соединение
Выводит в итоговый набор все записи из левой (подчинённой)

таблицы и только соответствующие записи из правой (главной) таблицы

+

=

select Отделы.Отдел, Расположение, Телефон
from Сотрудники left outer join Отделы
on Отделы.Отдел = Сотрудники.Отдел


Слайд 19Внешнее правое соединение
Выводит в итоговый набор все записи из правой (главной)

таблицы и только соответствующие из левой (подчинённой) записи из таблицы

+

=

select Фамилия, Расположение, Телефон
from Сотрудники right outer join Отделы
on Отделы.Отдел = Сотрудники.Отдел


Слайд 20Внешнее полное соединение
Комбинация внешнего правого и внешнего левого соединения
+
=
select Отделы.Отдел, Расположение,

Телефон
from Сотрудники full outer join Отделы
on Отделы.Отдел = Сотрудники.Отдел

Слайд 21Перекрёстное соединение (декартово произведение)
Всевозможные комбинации записей правой и левой таблицы
+
=
select

Отделы.Отдел, Расположение, Телефон
from Сотрудники cross join Отделы

Слайд 22Самосоединение (соединение таблицы с копией себя)
Всевозможные комбинации записей правой и левой

таблицы

+

=

select сотрудники_подчин.Фамилия, ‘подчиняется: ’, сотрудники_нач.Фамилия
from Сотрудники as сотрудники_подчин inner join Сотрудники as сотрудники_нач




Слайд 23Иерархические (рекурсивные) запросы
Используются для вывода записей, состоящих в иерархических отношениях
Операторы, используемые

при построении иерархических запросов:

select level, ID_сотрудника, Подчиняется from Сотрудники
start with Подчиняется is null
connect by prior ID_сотрудника = Подчиняется


Слайд 24Вложенные запросы
в условии отбора записи фигурирует значение, вычисляемое подзапросом
select

from <имя_т> where ст <оператор><подзапрос>

select Название_должности from Должности
where Оклад > (select avg (Оклад) from Должности)

в качестве источника данных служит итоговый набор подзапроса
select <список_ст> from (<подзапрос> )

select count(*) from
(select Фамилия from Сотрудники inner join Отделы
on Сотрудники.ID_отдела = Отделы.ID_отдела)




Слайд 25Вложенные коррелированные запросы
Внутренний подзапрос обращается к данным внешнего запроса;
Внутренний подзапрос выполняется

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

select * from отделы as внешняя_табл
where exists(select * from Сотрудники as внутренняя_табл
where внутренняя_табл.ID_Отдела=внешняя_табл.ID_Отдела);

ссылка на внешнюю таблицу

Для дифференциации внешних и внутренних таблиц с одинаковыми именами используются псевдонимы



Слайд 26Дополнительная литература
(!!!) http://download.oracle.com/docs/cd/ B19306_01/server.102/b14200/queries.htm#i2068094

http://sql-language.ru/

http://habrahabr.ru/blogs/sql/43955/

http://www.oracloid.ru/index.php?t=169


Слайд 27Алексей Кузьмин
Руководитель Учебного центра филиала в г. Саратове, компания «Неофлекс»
БЛАГОДАРЮ ЗА

ВНИМАНИЕ Задавайте, пожалуйста, вопросы

www.neoflex.ru
Телефон: 8 -962-62-11-431
E-mail: alkuzmin@neoflex.ru


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика