Слайд 2Извлечение результирующих множеств
Урок 1B / Слайд из 53
СРС 4_1
Определить арифметический оператор
получения остатка целочисленного деления
Что такое приоритет оператора ?
Перечислить операторы сравнения ?
Перечислить операторы диапазона ?
5. Перечислить операторы списка ?
Слайд 3Извлечение результирующих множеств
Урок 1B / Слайд из 53
Извлечение строк таблицы на
основе сравнения с образцом
Формулировка задачи
Должен быть подписан контракт с Jackson Demello из газеты Texas Times. Но есть три газеты, содержащие слова “Texas Times” и другие слова. Для обеспечения контракта с нужной газетой, нужно отобразить такие данные, как названия газет, контактные лица и номера телефонов газет, в названиях которых есть “Texas Times”.
Слайд 4Извлечение результирующих множеств
Урок 1B / Слайд из 53
Решение
Создать формат выхода запроса
Составить
запрос
Выполнить запрос
Проверить, что выход запроса соответствует требуемым результатам
Слайд 5Извлечение результирующих множеств
Урок 1B / Слайд из 53
Создать формат выхода запроса
Результат:
Требуемые
выходные данные отчета – это название газеты, контактное лицо и номера телефонов
Заголовки столбцов, требуемые в отчете, - это cNewspaperName, vContactPerson и cPhone
Название газеты должно быть с фразой “Texas Times”
Формат отчета:
Слайд 6Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос
Оператор строковой операции
Можно применить ключевое слово LIKE для поиска строки с подстановочным знаком
LIKE выбирает те строки таблицы, которые соответствуют заданной части символьной строки.
Результат:
Требуемая информация доступна в таблице Newspaper (Газета)
Т.к. в названии газеты должно быть "Texas Times", и перед и после него может быть любой символ, должен применяться подстановочный знак %.
Слайд 7Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос (Продолжение)
Т.е. запрос,
использующий команду SELECT, должен быть следующим:
SELECT cNewspaperName, vContactPerson, cPhone
FROM Newspaper
WHERE cNewspaperName
LIKE '%Texas Times%'
Слайд 8Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выполнить запрос
Действие:
В окне Query
Analyzer набрать запрос
Выполнить запрос
Слайд 9Извлечение результирующих множеств
Урок 1B / Слайд из 53
Проверить, что выход запроса
соответствует требуемым результатам
Проверить, что:
Отображены требуемые столбцы.
Отображены все строки, отвечающие условию выражения WHERE
Слайд 10Извлечение результирующих множеств
Урок 1B / Слайд из 53
Отображение строк с отсутствующими
значениями
Формулировка задачи
Требуется список кандидатов, собеседование с которыми еще не запланировано.
Слайд 11Извлечение результирующих множеств
Урок 1B / Слайд из 53
Решение
Создать формат выхода запроса
Составить
запрос
Выполнить запрос
Проверить, что выход запроса соответствует требуемым результатам
Слайд 12Извлечение результирующих множеств
Урок 1B / Слайд из 53
Создать формат выхода запроса
Результат:
Требование
к отчету - имена кандидатов, собеседование с которыми еще не запланировано
Слайд 13Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос
Ключевые слова IS
NULL и IS NOT NULL
NULL – неизвестное значение или значение, для которого нет данных
Синтаксис
SELECT column_list FROM table_name
WHERE column_name unknown_value_operator
Результат:
Информация имеется в табл. ExternalCandidate (внешний кандидат)
Условие - дата теста должна быть NULL
Слайд 14Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос (Продолжение)
Т.е. запрос,
использующий команду SELECT, должен быть следующим:
SELECT vFirstName, vLastName, dInterviewDate
FROM ExternalCandidate
WHERE dInterviewDate IS NULL
Слайд 15Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выполнить запрос
Действие:
В окне Query
Analyzer набрать запрос
Выполнить запрос
Слайд 16Извлечение результирующих множеств
Урок 1B / Слайд из 53
Проверить, что выход запроса
соответствует
требуемым результатам
Проверить, что:
Отображены требуемые столбцы
Отображены все строки с NULL значением в атрибуте dInterviewDate
Слайд 17Извлечение результирующих множеств
Урок 1B / Слайд из 53
Отображение данных в особом
порядке
Формулировка задачи
Требуется отчет о всех должностях как исходные данные для дальнейшего анализа числа вакансий. Будет создан отчет в порядке возрастания должности.
Слайд 18Извлечение результирующих множеств
Урок 1B / Слайд из 53
Решение
Создать формат выхода запроса
Составить
запрос
Выполнить запрос
Проверить, что выход запроса соответствует требуемым результатам
Слайд 19Извлечение результирующих множеств
Урок 1B / Слайд из 53
Создать формат выхода запроса
Результат:
Требуемый
выход в отчете – код должности и описание имеющейся должности
Формат отчета:
Слайд 20Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос
Выражение ORDER BY
Синтаксис
SELECT список_столбцов
FROM имя_таблицы
[ORDER BY имя_столбца | номер_списка_выбора | выражение
[ASC|DESC][, имя_столбца | номер_списка_выбора | выражение
[ASC|DESC]...]
Слайд 21Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос (Продолжение)
Результат:
Информация имеется
в табл. Position (должность)
Т.е. запрос, использующий команду SELECT, должен быть следующим:
SELECT cPositionCode, vDescription
FROM Position
ORDER BY vDescription ASC
Слайд 22Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выполнить запрос
Действие:
В окне Query
Analyzer набрать запрос
Выполнить запрос
Слайд 23Извлечение результирующих множеств
Урок 1B / Слайд из 53
Проверить, что выход запроса
соответствует требуемым результатам
Проверить, что:
Отображены требуемые столбцы
Все строки отображены по vDescription в порядке возрастания
Слайд 24Извлечение результирующих множеств
Урок 1B / Слайд из 53
Отображение нескольких верхних строк
Формулировка
задачи
По тестовым оценкам требуется краткий список из 3 первых внешних кандидатов
для собеседования. тесты пройдены в марте 20010.
Требуются все подробности об этих кандидатах.
Слайд 25Извлечение результирующих множеств
Урок 1B / Слайд из 53
Решение
Создать формат выхода запроса
Составить
запрос
Выполнить запрос
Проверить, что выход запроса соответствует требуемым результатам
Слайд 26Извлечение результирующих множеств
Урок 1B / Слайд из 53
Создать формат выхода запроса
Результат:
Требуемый
выход запроса - особые подробности о 3 первых кандидатах
Требуемые заголовки столбцов в отчете – имена атрибутов таблицы ExternalCandidate
Слайд 27Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос
Ключевое слово TOP
ТОР
ограничивает количество строк, возвращенных в результирующем множестве
Синтаксис
SELECT [TOP n [PERCENT]] имя_столбца
[,имя_столбца…]
FROM имя_таблицы
WHERE условия_поиска
[ORDER BY [имя_столбца[,имя_столбца…]
Слайд 28Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос (Продолжение)
Результат:
Требуемая информация
доступна в таблице ExternalCandidate
Требуются все подробности о кандидатах
Т.е. запрос, использующий команду SELECT, должен быть следующим:
SELECT TOP 3 *
FROM ExternalCandidate
WHERE dTestDate >= '3/1/10'
AND dTestDate <= '3/31/10'
ORDER BY siTestScore DESC
Слайд 29Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выполнить запрос
Действие:
В окне Query
Analyzer набрать:
Выполнить запрос
Слайд 30Извлечение результирующих множеств
Урок 1B / Слайд из 53
Проверить, что выход запроса
соответствует требуемым результатам
Проверить, что:
выход запроса соответствует требуемому результату
строки - в порядке убывания оценок теста
Слайд 31Извлечение результирующих множеств
Урок 1B / Слайд из 53
Ключевое слово DISTINCT
DISTINCT удаляет
дублирующие строки из результирующего множества
Синтаксис
SELECT [ALL|DISTINCT] имена_столбцов
FROM имя_таблицы WHERE условие_поиска
Слайд 32Извлечение результирующих множеств
Урок 1B / Слайд из 53
Отображение обобщенных функций
Формулировка задачи
Требуется
общее число газет, где опубликованы объявления о приеме на работу
Слайд 33Извлечение результирующих множеств
Урок 1B / Слайд из 53
Решение
Создать формат выхода запроса
Составить
запрос
Выполнить запрос
Проверить, что выход запроса соответствует требуемым результатам
Слайд 34Извлечение результирующих множеств
Урок 1B / Слайд из 53
Создать формат выхода запроса
Выход
Результат:
Требуется в отчете отобразить общее число газет, где опубликованы объявления о приеме на работу
Применяемый заголовок “No. of Newspapers”
Формат отчета:
Слайд 35Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос
Обобщенные функции
Свести значения
в один или несколько столбцов одной таблицы и получить единственное значение
Результат:
Информация имеется в табл. Newspaper (Газета).
Применяемая обобщенная функция - COUNT
Т.е. запрос, использующий команду SELECT, должен быть следующим:
SELECT 'No.Of Newspapers’ =
COUNT(cNewspaperCode)
FROM Newspaper
Слайд 36Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выполнить запрос
Действие:
В окне Query
Analyzer набрать:
Выполнить запрос
Слайд 37Извлечение результирующих множеств
Урок 1B / Слайд из 53
Проверить, что выход запроса
соответствует требуемым результатам
Проверить отображение верного числа газет
Слайд 38Извлечение результирующих множеств
Урок 1B / Слайд из 53
Группировка результирующих множеств
Для группировки
результирующих множеств применяются выражения :
GROUP BY: Сводит результирующее множество в группы, определенные в запросе, по обобщенным функциям
Оператор CUBE: Создает обобщенные строки в результирующем множеств
GROUP BY ALL: Ключевое слово ALL выражения GROUP BY отображает все группы, включая исключенные из выражения WHERE
COMPUTE и COMPUTE BY: Выражение COMPUTE с командой SELECT генерирует суммарные строки по обобщенным функциям в результатах запроса. Выражение COMPUTE BY далее сводит результирующее множество по столбцам
Слайд 39Извлечение результирующих множеств
Урок 1B / Слайд из 53
Создание итогового отчета
Формулировка задачи
Эффективность
объявлений о приеме на работу в различных газетах должна быть проанализирована. Сначала требуется число объявлений в каждой газете в следующем формате:
Слайд 40Извлечение результирующих множеств
Урок 1B / Слайд из 53
Решение
Составить запрос
Выполнить запрос
Проверить, что
выход запроса соответствует требуемым результатам
Слайд 41Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос
Выражение GROUP BY
Синтаксис
SELECT список_столбцов
FROM имя_таблицы
WHERE условие
GROUP BY [ALL] выражение [, выражение]
[HAVING условие_поиска]
Слайд 42Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос (Продолжение)
Ключевое слово
HAVING в запросе SELECT можно применить для выбора строк из промежуточного результирующего множества
Результат:
Информация имеется в табл. NewsAd (Объявления в газетах).
Требуется количество объявлений в каждой газете
Выход должен группироваться в виде газеты, поэтому приходится применять GROUP BY
Слайд 43Извлечение результирующих множеств
Урок 1B / Слайд из 53
Составить запрос (Продолжение)
Т.е. запрос,
использующий команду SELECT, должен быть следующим:
SELECT 'Newspaper Code' = cNewspaperCode,
'No. Of Advts. Placed' = COUNT(cNewspaperCode)
FROM NewsAd
GROUP BY cNewspaperCode
Слайд 44Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выполнить запрос
Действие
В окне
Query Analyzer набрать запрос
Выполнить запрос
Слайд 45Извлечение результирующих множеств
Урок 1B / Слайд из 53
Проверить, что выход запроса
– в следующем формате:
Проверить, что:
Отображены требуемые столбцы
количество объявлений в каждой газете правильное
Слайд 46Извлечение результирующих множеств
Урок 1B / Слайд из 53
Оператор CUBE
В результирующее
множество вводятся обобщенные строки, если в выражении GROUP BY есть оператор CUBE
CUBE работает со всеми обобщенными функциями (AVG, SUM, MAX, MIN, COUNT и т.д.)
Пример
SELECT Type,Pub_id, 'Sum' = sum(Ytd_Sales)
FROM Titles
GROUP BY Type,Pub_id with cube
Слайд 47Извлечение результирующих множеств
Урок 1B / Слайд из 53
GROUP BY ALL
Ключевое
слово ALL выражения GROUP BY отображает все группы, включая исключенные из выражения WHERE
Пример
SELECT Type, Advance = SUM (Advance)
FROM Titles
WHERE Type IN ('business', 'mod_cook', 'trad_cook')
GROUP BY ALL Type
Слайд 48Извлечение результирующих множеств
Урок 1B / Слайд из 53
COMPUTE и COMPUTE BY
Выражение COMPUTE в команде SELECT генерирует суммарные строки по обобщенным функциям в результатах запроса
COMPUTE BY может применяться для вычисления суммарных значений результирующего множества по группе данных
Синтаксис
SELECT список_столбцов FROM имя_таблицы
ORDER BY имя_столбца
COMPUTE обобщенная_функция (имя_столбца) [, обобщенная_функция (имя_столбца)...] [,имя_столбца…]
[BY имя_столбца [, имя_столбца]...]
Слайд 49Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выводы
Из этого урока
Вы узнали, что:
SQL Server дает метод соответствия образцу для строковых выражений, применяя ключевое слово LIKE с подстаночными знаками
LIKE выбирает те строки таблицы, которые соответствуют заданной части символьной строки.
В терминах SQL Server, NULL – неизвестное значение или значение, для которого нет данных
Значения NULL можно извлекать из таблицы, применяя ключевое слово IS NULL в операторе WHERE
Для отправки или получения сообщений по электронной почте, запросите адрес электронной почты и доступ к программе-клиенту работы с почтой.
Интернет предоставляет различные услуги:
электронная почта (e-mail)
конференции
передача файлов
(Missing text)
A Web site address uniquely identifies a Web site.
You can navigate to the other pages on the site through links on the home page, which are also known as hyperlinks.
Слайд 50Извлечение результирующих множеств
Урок 1B / Слайд из 53
Выводы (продолжение)
Ключевое слово
DISTINCT в команде SELECT применяется для исключения одинаковых строк
Выражение ТОР ограничивает количество строк, возвращенных в результирующем множестве
Выражение GROUP BY организует итоговое результирующее множество в группы, определенные в таблице с помощью обобщенных функций
Выражение HAVING ограничивает результирующее множество для получения данных по условию
При использовании оператора CUBE с оператором GROUP BY, в результирующее множество вводятся обобщенные строки