Структурированный язык запросов презентация

Содержание

Вопросы: Структура запросов Операторы выборки и фильтрации Агрегатные функции Сортировка данных

Слайд 1Лекция №6 Структурированный язык запросов


Слайд 2Вопросы:
Структура запросов
Операторы выборки и фильтрации
Агрегатные функции
Сортировка данных


Слайд 3Структура запросов
SELECT T1.FAM,SUM(T2.WORK)
FROM T1, T2
WHERE T1.ID=T2.ID_T1
GROUP BY T1.FAM
HAVING SUM(T2.WORK)>1
ORDER BY T1.FAM


Слайд 4БД Abonets.mdb


Слайд 5Запросы, реализующие операцию проекции

SELECT * FROM TPOL;

SELECT ФИО, Адрес FROM

TAbonents;






Слайд 6Запросы, поясняющие исключение дубликатов
SELECT DISTINCT Дата_установки
FROM TAbonents;

SELECT ALL Дата_установки
FROM

TAbonents;




Слайд 7Запросы, поясняющие выполнение операции фильтрации в одной таблице
SELECT * FROM TAbonents
WHERE

ПАСПОРТ = 679237

SELECT * FROM TAbonents
WHERE ПАСПОРТ=679237 OR
ФИО="Жуйченко Женя";



Слайд 8Выборка данных из двух связанных таблиц
SELECT TAbonents.ФИО, TPol.ПОЛ
FROM TAbonents, TPol

WHERE (TAbonents.Pol_ID = TPol.ID) AND (TPol.ПОЛ = “м”) ;



Слайд 9Выборка данных из трех связанных таблиц
SELECT TAbonents.ФИО, Tpol.ПОЛ, NomTel.НОМЕР_ТЕЛЕФОНА
FROM Tpol, TAbonents,

NomTel
WHERE TNomTel.id = TAbonents.NomTel_ID and
Tpol.id = TAbonents.Pol_ID and
TAbonents.ДАТА_УСТАНОВКИ=#12/5/1997#;



Слайд 10Операторы сравнения
> Больше чем
< Меньше чем
>= Больше чем или

равно
<= Меньше чем или равно
<> Не равно
SELECT * FROM TAbonents WHERE (ДАТА_ВЫДАЧИ <> #6/1/1997#);

Слайд 11Оператор Not предиката Where
SELECT * FROM TAbonents
WHERE NOT (ФИО =

“Иванов Иван Иванович”);
или
SELECT * FROM TAbonents
WHERE Not (ФИО="Иванов Иван Иванович" and id=1)



Слайд 12Оператор IN предиката Where
SELECT * FROM TAbonents
WHERE ФИО In ("Иванов Иван

Иванович","Петров");


SELECT * FROM TAbonents
WHERE ПАСПОРТ In (675537,326757,656729);



Слайд 13Оператор BETWEEN предиката Where
SELECT * FROM TAbonents
WHERE ПАСПОРТ Between 628513 and

679237;


SELECT * FROM TAbonents WHERE ФИО Between "А" and "К";


Слайд 14Оператор LIKE предиката Where
SELECT * FROM TAbonents
WHERE АДРЕС Like "ул.*";


SELECT

* FROM TAbonents
WHERE АДРЕС Like "*ма*";



Слайд 15Оператор IS Null предиката Where
SELECT *FROM TAbonents WHERE АДРЕС iS Null;
SELECT

* FROM TAbonents
WHERE Not АДРЕС Is Null;




Слайд 16АГРЕГАТНЫЕ ФУНКЦИИ
COUNT- подсчет количества (не NULL значений полей) записей;
SUM- подсчет арифметической

суммы всех значений поля;
AVG- усреднение всех выбранных значений данного поля;
MAX- нахождение наибольшего из всех выбранных значений;
MIN- нахождение наименьшее из всех выбранных значений.

Слайд 17Примеры использования агрегатов
SELECT SUM (Объем) as Сумма
FROM TWork;


SELECT Avg(TWork.Объем) AS Среднее
FROM

TWork;



SELECT Max(TWork.Объем) AS Max_V
FROM Twork,Tday
WHERE TWork.День=Tday.id and
Tday.День Like "п*";

SELECT Count(id) AS Количество
FROM Twork,TFIO
WHERE TFIO.id=Twork.Смена and
TFiO.ФИО Like "*ов";




Слайд 18Структура БД Work.mdb


Слайд 19Примеры использования агрегатов
Найдем наибольшую долю брака при работе токаря Иванова.
SELECT MAX(Twork.Брак

/ (Twork.Объем + Twork.Брак ))
FROM Twork, TFIO
WHERE (TFIO.ID = Twork.Смена) AND (TFIO.ФИО = “Иванов” )



Результат

Шаг №1


Слайд 20Примеры использования агрегатов
Найдем максимальную стоимость деталей произведенных за первые

три дня недели токарем в фамилии которого присутствуют сочетание «ро».

SELECT Max(TWork.Объем*TWork.Цена) AS Стоимость
FROM TFIO,TDay,TWork
WHERE TDay.ID = TWork.День and TFIO.id = TWork.Смена
And TDay.День In ("понедельник","вторник","среда“) and TFIO.ФИО) Like "*ро*”;



Результат

Шаг №1


Слайд 21Упорядочивание данных
Найдем отсортированную таблицу о величине брака
ФИО

– ДЕНЬ – БРАК

SELECT TFIO.ФИО, TDay.День, TWork.Брак
FROM TFIO, TDay, TWork
WHERE TDay.ID=TWork.День AND TFIO.id=TWork.Смена
ORDER BY TFIO.ФИО, TDay.День DESC , TWork.Брак;




Слайд 22Упорядочивание данных
Найдем отсортированную таблицу о величине брака
ДЕНЬ -

ФИО – Объем

SELECT TDay.День, TFIO.ФИО, TWork.ОБЪЕМ
FROM TFIO, TDay, TWork
WHERE TDay.ID=TWork.День AND TFIO.id=TWork.Смена
ORDER BY TDay.День, TFIO.ФИО, TWork.ОБЪЕМ;




Слайд 23Проектирование запросов с использованием конструктора


Слайд 24Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет, которые в течение последних 5 лет получили выговор за опоздание

Слайд 25Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет

Слайд 26Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет

Вариант №1
SELECT Т_Работник.ФИО, Т_подразделение.МестоРаботы,
Т_должность.Должность, Format(DateDiff("m“,Т_Работник.ДатаРождения,Now())/12,”##0.00”) AS Возраст
FROM Т_подразделение INNER JOIN
(Т_должность INNER JOIN Т_Работник ON Т_должность.id =
Т_Работник.id_должность) ON Т_подразделение.id =
Т_Работник.id_подразделение
WHERE Т_подразделение.МестоРаботы Like "цех*“ AND
Т_должность.Должность)="рабочий" AND
DateDiff("m“,Т_Работник.ДатаРождения,Now())/12
Between 20 And 45;


Слайд 27Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет

Вариант №2
SELECT Т_Работник.ФИО, Т_подразделение.МестоРаботы,
Т_должность.Должность, Format(DateDiff("m“,Т_Работник.ДатаРождения,Now())/12,”##0.00”) AS Возраст
FROM Т_подразделение, T_должность, Т_Работник
WHERE Т_должность.id =Т_Работник.id_должность) AND
Т_подразделение.id = Т_Работник.id_подразделение AND
Т_подразделение.МестоРаботы Like "цех*“ AND
Т_должность.Должность="рабочий" AND
DateDiff("m“,Т_Работник.ДатаРождения,Now())/12
Between 20 And 45));


Слайд 28Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет
Результат

Слайд 29Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет, которые в течение последних 5 лет получили выговор за опоздание

Слайд 30Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет, которые в течение последних 5 лет получили выговор за опоздание

Слайд 31Проектирование запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий в

возрасте от 20 до 45 лет, которые в течение последних 5 лет получили выговор за опоздание

SELECT DISTINCT Т_Работник.ФИО, Т_подразделение.МестоРаботы, Т_должность.Должность, Format(DateDiff("m",[Т_Работник]![ДатаРождения],Now())/12,"Fixed") AS Возраст
FROM (Т_подразделение INNER JOIN (Т_должность INNER JOIN Т_Работник ON Т_должность.id = Т_Работник.id_должность) ON Т_подразделение.id = Т_Работник.id_подразделение) INNER JOIN Т_Выговоры ON Т_Работник.ID = Т_Выговоры.ID_Работник
WHERE Т_подразделение.МестоРаботы Like "цех*” AND
Т_должность.Должность="рабочий” AND
DateDiff("m",[Т_Работник]![ДатаРождения],Now())/12
Between 20 And 45 AND
Т_Выговоры.Выговор="опоздание» AND
Year(Now())-Year([Т_Выговоры]![Дата]<=5;


Слайд 32Проектирование динамических запросов с использованием конструктора
Определить работников цехов занимающих должность рабочий

в возрасте от 20 до 45 лет, которые в течение последних N лет получили выговор за опоздание

SELECT DISTINCT Т_Работник.ФИО, Т_подразделение.МестоРаботы, Т_должность.Должность, Format(DateDiff("m",[Т_Работник]![ДатаРождения],Now())/12,"Fixed") AS Возраст
FROM (Т_подразделение INNER JOIN (Т_должность INNER JOIN Т_Работник ON Т_должность.id = Т_Работник.id_должность) ON Т_подразделение.id = Т_Работник.id_подразделение) INNER JOIN Т_Выговоры ON Т_Работник.ID = Т_Выговоры.ID_Работник
WHERE Т_подразделение.МестоРаботы Like "цех*” AND
Т_должность.Должность="рабочий” AND
DateDiff("m",[Т_Работник]![ДатаРождения],Now())/12
Between 20 And 45 AND
Т_Выговоры.Выговор="опоздание» AND
Year(Now())-Year([Т_Выговоры]![Дата]<=CINT([Укажите N]);


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

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

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

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

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


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

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