Разделы презентаций


Базы данных и СУБД SQL

Содержание

Запрос на выборкуSELECT smthИнформатика. 1 семестр. Тема 13. Применение SQL

Слайды и текст этой презентации

Слайд 1Базы данных и СУБД
Информатика. 1 семестр. Тема 13. Применение SQL

Применение

SQL
Университет машиностроения
Кафедра «Автоматика и процессы управления»
Дисциплина
Информационные технологии
Тема 13
1 семестр

Базы данных и СУБДИнформатика. 1 семестр. Тема 13. Применение SQLПрименение SQLУниверситет машиностроенияКафедра «Автоматика и процессы управления»ДисциплинаИнформационные технологииТема

Слайд 2Запрос на выборку
SELECT smth

Информатика. 1 семестр. Тема 13. Применение SQL

Запрос на выборкуSELECT smthИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 3Запрос на выборку
SELECT smth.
Информатика. 1 семестр. Тема 13. Применение SQL

SELECT

expr1,..., exprN
FROM source1,..., sourceN
[ [ INNER ] JOIN othersource [ON

join_predicate1 ] ]
[ WHERE predicate2 ]
[ GROUP BY group_expr1,..., group_exprN ]
[ HAVING group_predicate ]
[ ORDER BY field1,..., fieldN [ ASC | DESC ] ]
[ LIMIT [ offset, ] rowcount ]
Запрос на выборкуSELECT smth.Информатика. 1 семестр. Тема 13. Применение SQLSELECT expr1,..., exprNFROM source1,..., sourceN[ [ INNER ]

Слайд 4Запрос на выборку
SELECT smth.
Оператор WHERE
Информатика. 1 семестр. Тема 13. Применение

SQL

Запрос на выборкуSELECT smth.Оператор WHEREИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 5Информатика. 1 семестр. Тема 13. Применение SQL

WHERE
Условный оператор в

SQL
Используется для отбора записей – указывает оператору языка управления

данными (DML) записи, на которые он действует
Не обязательный в SQL (DML) выражениях
В выражениях с SELECT, DELETE, UPDATE предваряет критерии отбора данных
Критерии отбора должны быть записаны в форме предикатов булевского вида (TRUE, FALSE или NULL)
Действует на исходный набор записей (до группировки)
Информатика. 1 семестр. Тема 13. Применение SQLWHERE Условный оператор в SQL Используется для отбора записей – указывает

Слайд 6Информатика. 1 семестр. Тема 13. Применение SQL

Применение WHERE
SQL-DML-выражение
FROM table_name
WHERE

predicate
Все записи, для которых значением предиката является истина – будут

задействованы (возвращены)

Записи, для которых значением предиката является ложь или неопределённость (NULL) – будут исключены из обработки (выборки)

DELETE
FROM mytable
WHERE mycol IS NULL OR mycol = 100

Информатика. 1 семестр. Тема 13. Применение SQLПрименение WHERESQL-DML-выражение FROM table_nameWHERE predicateВсе записи, для которых значением предиката является

Слайд 7Запрос на выборку
SELECT smth.
Оператор HAVING
Информатика. 1 семестр. Тема 13. Применение

SQL

Запрос на выборкуSELECT smth.Оператор HAVINGИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 8Информатика. 1 семестр. Тема 13. Применение SQL

HAVING
Условный оператор (параметр)

в SQL
Указывает условия на результат агрегатных функций (MAX, SUM,

AVG,…)
Предикаты строятся только из выражений, указанных в разделе GROUP BY и значений агрегатных функций, вычисленных для каждой группы, образованной GROUP BY
Необходимо, чтобы в SELECT были заданы только столбцы, перечисленные в GROUP BY и/или агрегированные значения
Если параметр GROUP BY не указан в SELECT, HAVING дублирует WHERE
Информатика. 1 семестр. Тема 13. Применение SQLHAVING Условный оператор (параметр) в SQL Указывает условия на результат агрегатных

Слайд 9Информатика. 1 семестр. Тема 13. Применение SQL

SELECT DeptID, SUM(SaleAmount)
FROM

Sales
WHERE SaleDate = ‘01-Jan-2000’
GROUP BY DeptID
HAVING SUM(SaleAmount) > 1000
SELECT d.DeptName,

COUNT(*)
FROM employee e, departament d
WHERE e.DeptID = d.DeptID
GROUP BY d.DeptName
HAVING COUNT (*) > 1000

Получение
идентификаторов отделов, продажи которых превысили 1000 за 1 января 2000 года

Получение
списка отделов, в которых работает более чем один сотрудник

Информатика. 1 семестр. Тема 13. Применение SQLSELECT DeptID, SUM(SaleAmount) FROM SalesWHERE SaleDate = ‘01-Jan-2000’GROUP BY DeptIDHAVING SUM(SaleAmount)

Слайд 10Запрос на выборку
SELECT smth
WHERE predicate
Построение логических предикатов
Информатика. 1 семестр.

Тема 13. Применение SQL

Запрос на выборкуSELECT smth WHERE predicateПостроение логических предикатовИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 11Информатика. 1 семестр. Тема 13. Применение SQL

Построение предиката для WHERE

Условный предикат – выражение, которое должно возвращать значения TRUE, FALSE

или NULL
Значение NULL возвращается если арифметическая, логическая операция или операция сравнения выполняется над операндом со значением NULL), за исключением операций проверки на пустое значение (EXISTS, IS NULL)
Выражения, используемые для построения предиката могут использовать парные круглые скобки [ ( , ) ] любой степени вложенности
Для выполнения логических операций над частями предиката используются операторы AND, OR и NOT
Информатика. 1 семестр. Тема 13. Применение SQLПостроение предиката для WHERE Условный предикат – выражение, которое должно возвращать

Слайд 12Информатика. 1 семестр. Тема 13. Применение SQL

Построение предиката для WHERE

Условный предикат может включать подзапросы
В выражениях могут использоваться функции

определённые в SQL (NOW, YEAR etc.) или определённые в базе данных (CREATE FUNCTION…)
Для проверки значения можно использовать: LIKE –для сравнения с шаблоном, IS – для специальных значений, IN – для вхождения в список
Контроль вхождения значения в заданный диапазон выполняется с использованием BETWEEN … AND …
(в Access) Для построения выражений в роли констант могут использоваться статистические функции по подмножеству для вычисления вспомогательных числовых значений (DSum , DAvg, DMax, DMin, Dcount etc.)

(2)

Информатика. 1 семестр. Тема 13. Применение SQLПостроение предиката для WHERE Условный предикат может включать подзапросы В выражениях

Слайд 13Информатика. 1 семестр. Тема 13. Применение SQL

SELECT ProductID, Name, Color
FROM

Production
WHERE Name IN (''Blade'', ''Crown Race'', ''Spokes'');
Наличие в списке значений
SELECT

ProductID, Name, Color
FROM Production
WHERE ProductID BETWEEN 725 AND 734;

Вхождение в диапазон между двумя значениями

SELECT ProductID, Name, Color
FROM Production
WHERE Name LIKE (''%Frame%'')
AND ProductID <= 12
AND Color = ''Red'' ;

Совпадение с шаблоном, сравнение, объединение условий

Информатика. 1 семестр. Тема 13. Применение SQLSELECT ProductID, Name, ColorFROM ProductionWHERE Name IN (''Blade'', ''Crown Race'', ''Spokes'');Наличие

Слайд 14Запрос на выборку
SELECT smth
Оператор LIKE
Информатика. 1 семестр. Тема 13. Применение

SQL

Запрос на выборкуSELECT smthОператор LIKEИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 15Информатика. 1 семестр. Тема 13. Применение SQL

LIKE
match_expression [ NOT ]

LIKE pattern ESCAPE esc_char
Проверяет символьную строку на совпадение с

заданным шаблоном
Используется как часть выражения WHERE smth
Информатика. 1 семестр. Тема 13. Применение SQLLIKEmatch_expression [ NOT ] LIKE pattern ESCAPE esc_char Проверяет символьную строку

Слайд 16Информатика. 1 семестр. Тема 13. Применение SQL

SELECT p.FirstName, p.LastName, ph.PhoneNumber
FROM

Person.PersonPhone AS ph
INNER JOIN Person.Person AS p
ON ph.BusinessEntityID = p.BusinessEntityID
WHERE

ph.PhoneNumber LIKE '415%'
ORDER BY p.LastName;

Получение
списка телефонных номеров с кодом города 415

FirstName LastName Phone
-------------- ------------------- ------------
Ruben Alonso 415-555-124
Shelby Cook 415-555-0121
Karen Hu 415-555-0114
John Long 415-555-0147
David Long 415-555-0123

Информатика. 1 семестр. Тема 13. Применение SQLSELECT p.FirstName, p.LastName, ph.PhoneNumberFROM Person.PersonPhone AS phINNER JOIN Person.Person AS pON

Слайд 17Запрос на выборку
SELECT smth
Операции с множествами
Информатика. 1 семестр. Тема 13.

Применение SQL

Запрос на выборкуSELECT smthОперации с множествамиИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 18Информатика. 1 семестр. Тема 13. Применение SQL

Операции с множествами в

WHERE
Множества (списки значений) в предикатах оператора WHERE могут использоваться

для проверки наличия заданного значения (в списке) или для выполнения однотипной операции сравнения с элементами списка
Для проверки наличия значения в списке можно использовать оператор IN (…)
Проверка списка на наличие элементов выполняется предикатом EXISTS (…)
Операция сравнения значения со всеми элементами списка составляется с использованием предикатов ANY (…), SAME (…) и ALL (…). ANY эквивалентно объединению выражений посредством OR, а ALL – с помощью AND
В некоторых случаях пустой список может выступать эквивалентом «пустого» значения (NULL)
Информатика. 1 семестр. Тема 13. Применение SQLОперации с множествами в WHERE Множества (списки значений) в предикатах оператора

Слайд 19Информатика. 1 семестр. Тема 13. Применение SQL

SELECT ProductID, Name, Color
FROM

Production
WHERE Vendor IN (''Toyota'', ''Nissan'', ''Mitsubishi'', ''Mazda'');
Совпадение со значением из

списка

SELECT ProductID, Name, Color
FROM Production
WHERE ProductID = ANY ( 725 , 730 , 734 );

Равенство любому значению из списка

SELECT ProductID, Name, Color
FROM Production
WHERE EXISTS ( SELECT ProductID
FROM Production
WHERE Vendor =''Ford'');

Наличие в списке значений

Информатика. 1 семестр. Тема 13. Применение SQLSELECT ProductID, Name, ColorFROM ProductionWHERE Vendor IN (''Toyota'', ''Nissan'', ''Mitsubishi'', ''Mazda'');Совпадение

Слайд 20Запрос на выборку
SELECT smth
Вложенные
запросы
(подзапросы)
Информатика. 1 семестр. Тема 13. Применение SQL

Запрос на выборкуSELECT smthВложенныезапросы(подзапросы)Информатика. 1 семестр. Тема 13. Применение SQL

Слайд 21Информатика. 1 семестр. Тема 13. Применение SQL

Использование подзапросов в WHERE

Условный предикат может включать подзапрос
В составе предиката подзапрос заключается

в круглые скобки [ ( , ) ]
Вложенный запрос (подзапрос) должен возвращать скалярное (одно) логическое значение (или NULL) либо выступать операндом в операции, возвращающем подобное значение
Операции с подзапросами, возвращающими список значений, должны использовать предикаты ANY (SOME) и ALL для группового сопоставления, EXISTS для проверки наличия результатов или IN для анализа вхождения значения
Информатика. 1 семестр. Тема 13. Применение SQLИспользование подзапросов в WHERE Условный предикат может включать подзапрос В составе

Слайд 22Информатика. 1 семестр. Тема 13. Применение SQL

SELECT ProductID, Name, Color
FROM

Production
WHERE Cost >= ( SELECT AVG( Cost )
FROM Production );
Сравнение

с единственным возвращаемым значением

SELECT Name, NCost
FROM ( SELECT Name, Cost * 1.15 AS NCost
FROM Production )
WHERE ProductID >= 725 );

Использование подзапроса как источника данных

SELECT ProductID, Name, Color
FROM Production
WHERE EXISTS ( SELECT ProductID
FROM Production );

Наличие в списке хотя бы одного результата

Информатика. 1 семестр. Тема 13. Применение SQLSELECT ProductID, Name, ColorFROM ProductionWHERE Cost >= ( 	SELECT AVG( Cost

Слайд 23Запрос на выборку
SELECT smth
Оператор JOIN
Информатика. 1 семестр. Тема 13. Применение

SQL

Запрос на выборкуSELECT smthОператор JOINИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 24Информатика. 1 семестр. Тема 13. Применение SQL

JOIN
Оператор SQL реализующий

операцию соединения реляционной алгебры для раздела FROM
В схему таблицы-результата

входят столбцы обеих таблиц-операндов («сцепление» схем операндов)
Каждая строка таблицы-результата является «сцеплением» строк таблиц-операндов
Результирующий набор строк зависит от типа операции соединения и условия соединения
При необходимости соединения нескольких таблиц операция соединения применяется несколько раз (последовательно)
Информатика. 1 семестр. Тема 13. Применение SQLJOIN Оператор SQL реализующий операцию соединения реляционной алгебры для раздела FROM

Слайд 25Информатика. 1 семестр. Тема 13. Применение SQL

SELECT expessions [,... n]
FROM

table1
[ INNER | [ LEFT | RIGHT | FULL ]

OUTER | CROSS ] JOIN
table2
[ ON condition ]

SELECT expessions [,... n]
FROM table1,…, tableN

Для перекрёстного соединения (декартова произведения) CROSS JOIN можно использовать (,)

Информатика. 1 семестр. Тема 13. Применение SQLSELECT expessions [,... n]FROM table1[ INNER | [ LEFT | RIGHT

Слайд 26Информатика. 1 семестр. Тема 13. Применение SQL

Person
Виды оператора JOIN
City

Address
Book
INNER

JOIN – внутреннее соединение таблиц
OUTER JOIN – внешнее соединение

таблиц
LEFT OUTER JOIN – левое внешнее соединение таблиц (несимметричное)
RIGHT OUTER JOIN – правое внешнее соединение таблиц (несимметричное)
FULL OUTER JOIN – полное внешнее соединение таблиц

CROSS JOIN – перекрёстное соединение таблиц

Исходные данные

Информатика. 1 семестр. Тема 13. Применение SQLPersonВиды оператора JOINCityAddressBook INNER JOIN – внутреннее соединение таблиц OUTER JOIN

Слайд 27Информатика. 1 семестр. Тема 13. Применение SQL

Person
INNER JOIN
City

Address
Book
Внутреннее соединение таблиц
Симметричный

оператор
Результат – таблица из соединённых строк таблиц-операндов по предикату
Person-City
SELECT *

FROM Person
INNER JOIN City
ON Person.CityId = City.Id







Информатика. 1 семестр. Тема 13. Применение SQLPersonINNER JOINCityAddressBookВнутреннее соединение таблицСимметричный операторРезультат – таблица из соединённых строк таблиц-операндов

Слайд 28Информатика. 1 семестр. Тема 13. Применение SQL

Person
LEFT OUTER JOIN
City

Address
Book
Левое внешнее

соединение таблиц
Несимметричный оператор
Результат – таблица из соединённых строк таблиц-операндов по

предикату дополненных оставшимися строками левой таблицы (дополняются NULL)

SELECT * FROM Person
LEFT OUTER JOIN City
ON Person.CityId = City.Id

Информатика. 1 семестр. Тема 13. Применение SQLPersonLEFT OUTER JOINCityAddressBookЛевое внешнее соединение таблицНесимметричный операторРезультат – таблица из соединённых

Слайд 29Информатика. 1 семестр. Тема 13. Применение SQL

Person
RIGHT OUTER JOIN
City

Address
Book
Правое внешнее

соединение таблиц
Несимметричный оператор
Результат – таблица из соединённых строк таблиц-операндов по

предикату дополненных оставшимися строками правой таблицы (дополняются NULL)

SELECT * FROM Person
RIGHT OUTER JOIN City
ON Person.CityId = City.Id

Информатика. 1 семестр. Тема 13. Применение SQLPersonRIGHT OUTER JOINCityAddressBookПравое внешнее соединение таблицНесимметричный операторРезультат – таблица из соединённых

Слайд 30Информатика. 1 семестр. Тема 13. Применение SQL

Person
FULL OUTER JOIN
City

Address
Book
Полное внешнее

соединение таблиц
Симметричный оператор
Результат – таблица из соединённых строк таблиц-операндов по

предикату дополненных оставшимися строками обеих таблиц (дополняются NULL)

SELECT * FROM Person
FULL OUTER JOIN City
ON Person.CityId = City.Id

Информатика. 1 семестр. Тема 13. Применение SQLPersonFULL OUTER JOINCityAddressBookПолное внешнее соединение таблицСимметричный операторРезультат – таблица из соединённых

Слайд 31Информатика. 1 семестр. Тема 13. Применение SQL

Person
CROSS JOIN
City

Address
Book
Перекрёсное соединение таблиц
Симметричный

оператор
Результат – таблица из соединённых строк таблиц-операндов, давая все возможные

сочетания строк двух таблиц

SELECT * FROM Person
CROSS JOIN City
[ WHERE predicate ]

Информатика. 1 семестр. Тема 13. Применение SQLPersonCROSS JOINCityAddressBookПерекрёсное соединение таблицСимметричный операторРезультат – таблица из соединённых строк таблиц-операндов,

Слайд 32Информатика. 1 семестр. Тема 13. Применение SQL

INNER JOIN
Схемы объединения множеств
LEFT

OUTER JOIN
LEFT OUTER JOIN с фильтрацией

Информатика. 1 семестр. Тема 13. Применение SQLINNER JOINСхемы объединения множествLEFT OUTER JOINLEFT OUTER JOIN с фильтрацией

Слайд 33Запрос на выборку
SELECT smth
Оператор UNION
Информатика. 1 семестр. Тема 13. Применение

SQL

Запрос на выборкуSELECT smthОператор UNIONИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 34Информатика. 1 семестр. Тема 13. Применение SQL

UNION
Оператор объединения результатов двух

SQL-запросов в единую таблицу, состоящую их схожих строк
Оба запроса должны

возвращать одинаковое число столбцов с совместимые типы данных

<запрос1>
UNION [ALL]
<запрос2>
UNION [ALL]
<запрос3>
.....;

В объединение не включаются (скрываются) повторяющиеся строки
Оператор ALL требует включение всех строк в результирующий набор

Информатика. 1 семестр. Тема 13. Применение SQLUNIONОператор объединения результатов двух SQL-запросов в единую таблицу, состоящую их схожих

Слайд 35Информатика. 1 семестр. Тема 13. Применение SQL

UNION
Пример

Информатика. 1 семестр. Тема 13. Применение SQLUNIONПример

Слайд 36Запрос на выборку
SELECT smth
Групповые запросы
Информатика. 1 семестр. Тема 13. Применение

SQL

Запрос на выборкуSELECT smthГрупповые запросыИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 37Запрос на выборку
SELECT smth
Статистические функции по подмножеству
Информатика. 1 семестр. Тема

13. Применение SQL

Запрос на выборкуSELECT smthСтатистические функции по подмножествуИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 38Информатика. 1 семестр. Тема 13. Применение SQL

Статистические функции по подмножеству
DAvg

- подсчет среднего арифметического значения столбца или выражения,
DCount - подсчет

количества записей,
DFirst - нахождение первого значения столбца из группы,
DLast - нахождение последнего значения столбца из группы,
DМах - определение максимального значения столбца или выражения,
DMin - определение минимального значения столбца или выражения,
DSum - подсчет суммы значений столбца или выражения.

Синтаксис операторов следующий:
<имя_функции> ("выражение";"источник";"критерий")

Информатика. 1 семестр. Тема 13. Применение SQLСтатистические функции по подмножествуDAvg - подсчет среднего арифметического значения столбца или

Слайд 39Информатика. 1 семестр. Тема 13. Применение SQL

Статистические функции по подмножеству
Select

fio, score, groupID
From students
Where score > DAvg ("God",
"students",
"groupID1")


and groupID <> 1 ;

Важно! Параметры запроса записываются как строковые литералы (в кавычках)

Информатика. 1 семестр. Тема 13. Применение SQLСтатистические функции по подмножествуSelect fio, score, groupIDFrom studentsWhere score > DAvg

Слайд 40Информатика. 1 семестр. Тема 13. Применение SQL

Недокументированная функциональность СФпП
Select fio,

score
From students
Where score >= DAvg (subject,"students”);
Существует возможность использования переменных выражений

в качестве параметров статистических функций по подмножеству
Информатика. 1 семестр. Тема 13. Применение SQLНедокументированная функциональность СФпПSelect fio, scoreFrom studentsWhere score >= DAvg (subject,

Слайд 41Запрос на выборку
SELECT smth
Перекрестные запросы
Информатика. 1 семестр. Тема 13. Применение

SQL

Запрос на выборкуSELECT smthПерекрестные запросыИнформатика. 1 семестр. Тема 13. Применение SQL

Слайд 42Информатика. 1 семестр. Тема 13. Применение SQL

Перекрестные запросы
Transform
Select


From
Group by

строк>
Pivot <заголовки столбцов>;

Transform Sum(God) As Sum-God
Select Izd, Sum(god) as SumGod, Count(*) asKolFirm
From Firm
Group by Izd
Pivot Nazf;
<итоговые функции>

Информатика. 1 семестр. Тема 13. Применение SQLПерекрестные запросыTransform Select From Group by Pivot ;Transform Sum(God) As Sum-GodSelect

Слайд 43Информатика. 1 семестр. Тема 13. Применение SQL

Университет машиностроения
Кафедра «Автоматика и

процессы управления»
Блок дисциплин
Далее:
Использование Access 2007
Табличные процессоры
Текстовые процессоры
Информатика и информационные технологии
Контакты:
mami.ru/index.php?id=466
timid@mami.ru
inform437@gmail.com

Информатика. 1 семестр. Тема 13. Применение SQLУниверситет машиностроенияКафедра «Автоматика и процессы управления»Блок дисциплинДалее:Использование Access 2007Табличные процессорыТекстовые процессорыИнформатика

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

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

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

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

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


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

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