Коллективная работа

Содержание

Слайд 2

Коллективная работа

Урок 2C / Слайд of 22

Соединения вложенных циклов
При соединении вложенных

Коллективная работа Урок 2C / Слайд of 22 Соединения вложенных циклов При
циклов, поиск выполняется во внутренней таблице для каждой соответствующей строки внешней таблицы. Этот поиск производится при помощи индекса. Соединение вложенных циклов также известно как вложенная итерация.
Соединение вложенных циклов используется в ситуациях, когда внешний ввод незначителен, а внутренний ввод прединдексирован и значителен. В небольших транзакциях это влияет только на небольшой набор строк, индексированное соединение вложенных циклов быстрое.

Слайд 3

Коллективная работа

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

Коллективная работа Перекрестные и внутренние соединения Использование перекрестных соединений без оператора WHERE
дает перенос результата таблиц, вовлеченных в соединение. Размер этого перенесенного результирующего множества равен числу строк первой таблицы, умноженному на число строк второй таблицы.
Использование перекрестных соединений с выражением WHERE
Если CROSS JOIN содержит выражение WHERE, то CROSS JOIN будет работать как внутреннее соединение.
Использование внутреннего соединения
Когда таблица соединена с самой собой, соединение называется внутренним. Рассмотрим пример. Необходимо найти авторов из Окленда, штат Калифорния, которые проживают в пределах одного почтового индекса. Для подобного запроса, необходимо соединить таблицу авторов с нею самой. В связи с этим, таблица авторов выступит в двух разных ролях. Для различия ролей, необходимо назначить таблице авторов два разных псевдонима.

Урок 1C / Слайд 3 из 22

Слайд 4

Коллективная работа

Нулевые значения и соединения
При соединении столбцов таблицы, содержащих значения NULL, эти

Коллективная работа Нулевые значения и соединения При соединении столбцов таблицы, содержащих значения
значения не сравниваются.
Однако, значения NULL возвращаются во множестве запроса, если внешнее соединение используется для сравнения столбцов таблицы (если только выражение WHERE не исключает нулевые значения).
Есть два типа значений NULL: Значение NULL, возвращенное из основной таблицы и значение, возвращенное внешним запросом. Для недопущения такого смешения, лучше исключить значения NULL из результирующего множества при помощи регулярного соединения.

Урок 1C / Слайд 4 из 22

Слайд 5

Коллективная работа

Коррелированные подзапросы с псевдонимами
Во внешних запросах для обращения к таблице можно

Коллективная работа Коррелированные подзапросы с псевдонимами Во внешних запросах для обращения к
использовать коррелированные подзапросы. Для использования подзапроса для обращения к таблице во внешнем запросе, необходимо указать корреляционное имя или псевдоним таблицы. Псевдонимы таблиц актуальны, когда одна таблица выступает в двух разных ролях. Эти роли различаются по именам псевдонимов.

Урок 1C / Слайд 5 из 22

Слайд 6

Коллективная работа

Урок 2C / Слайд of 22

Слово эксперта
В данном разделе даны ответы

Коллективная работа Урок 2C / Слайд of 22 Слово эксперта В данном
на следующие вопросы:
Использование подзапросов с EXISTS и NOT EXISTS для поиска пересечения и различия
Наглядные примеры по применению подзапросов, используемых вместо выражения
Советы по правилам подзапрса
Использование команды UNION ALL вместо команды UNION
Советы по использованию данных в формате unicode
FAQ по таблицам

Слайд 7

Коллективная работа

Урок 2C / Слайд of 22

Наглядные примеры
Использование подзапросов с EXISTS и

Коллективная работа Урок 2C / Слайд of 22 Наглядные примеры Использование подзапросов
NOT EXISTS для поиска пересечения и различия
Использование подзапросов с EXISTS и NOT EXISTS для поиска пересечения и различия.
Пересечение двух результирующих множеств состоит из первоначальных элементов обоих результирующих множеств. Различие двух результирующих множеств состоит в элементах, принадлежащих только первому из двух результирующих множеств.

Слайд 8

Коллективная работа

Урок 2C / Слайд of 22

Наглядные примеры (продолжение..)
Пример
Рассмотрим пример, в котором

Коллективная работа Урок 2C / Слайд of 22 Наглядные примеры (продолжение..) Пример
Рональд Левис – менеджер издательского
дома. Издательский дом хочет основать отделение в штатах, где есть авторы,
но нет издателей. Это поможет им расширить рынок.
При таком сценарии, вы можете создать запрос для поиска различий между авторами
и издателями по столбцу штата. Разница будет установлена для штатов, в которых проживают авторы, но не расположены издательства.

Слайд 9

Коллективная работа

Урок 2C / Слайд of 22

Наглядные примеры (продолжение..)
USE pubs
SELECT DISTINCT

Коллективная работа Урок 2C / Слайд of 22 Наглядные примеры (продолжение..) USE
state
FROM author
WHERE NOT EXISTS
(SELECT *
FROM publishers
WHERE authors.state = publishers.state)
Result
state
_____
CA
(1 row(s) affected)

Слайд 10

Коллективная работа

Урок 2C / Слайд of 22

Наглядные примеры (продолжение..)
Пример
В продолжении

Коллективная работа Урок 2C / Слайд of 22 Наглядные примеры (продолжение..) Пример
данного примера, различия между авторами и издателями
по столбцу штатов установлена для штатов, в которых проживают авторы, но не расположены
издательва.
USE pubs
SELECT DISTINCT state
FROM authors
WHERE NOT EXISTS
(SELECT *
FROM publishers
WHERE authors.state = publishers.state)

Слайд 11

Коллективная работа

Урок 2C / Слайд of 22

Наглядные примеры (продолжение..)
Результат
state
--------
IN
KS
MD
MI
OR
TN
UT
(7 row(s) affected)
В результирующем

Коллективная работа Урок 2C / Слайд of 22 Наглядные примеры (продолжение..) Результат
множестве выведены все штаты, кроме Калифорнии (CA).

Слайд 12

Коллективная работа

Наглядные примеры (продолжение..)
Подзапросы, используемые вместо выражения
Эдд Янг хочет вывести название, цену,

Коллективная работа Наглядные примеры (продолжение..) Подзапросы, используемые вместо выражения Эдд Янг хочет
среднюю цену и различия
между ценой на книгу и средней ценой в одном запросе.
Пример
USE pubs
SELECT title, price,
(SELECT AVG(price) FROM titles) AS average,
price-(SELECT AVG(price) FROM titles) AS difference
FROM titles
WHERE type='popular_comp‘

Урок 1C / Слайд 12 из 22

Слайд 13

Коллективная работа

Наглядные примеры (продолжение..)
Результат
title price average difference
------------------------ -------------- -------------- ----------------
But Is

Коллективная работа Наглядные примеры (продолжение..) Результат title price average difference ------------------------ --------------
It User Friendly? 22.95 14.77 8.18
Secrets of Silicon Valley 20.00 14.77 5.23
Net Etiquette (null) 14.77 (null)
(3 row(s) affected)

Урок 1C / Слайд 13 из 22

Слайд 14

Коллективная работа

Советы
Правила подзапроса
Если выражение WHERE внешнего запроса включает имя столбца, оно

Коллективная работа Советы Правила подзапроса Если выражение WHERE внешнего запроса включает имя
должно быть совместимо на соединение со столбцом в списке выбора подзапроса.
На подзапрос, введенный с EXISTS, распространяются те же правила, что и на стандартный список выбора. Это потому, что подзапрос с EXISTS составляет проверку на существование и возвращает значение TRUE или FALSE.
Вы не можете:
Использовать ключевое слово DISTINCT с подзапросами, включающими GROUP BY.
Использовать выражения COMPUTE и INTO в подзапросах.
Использовать ORDER BY в подзапросе, если только не задано TOP.
Обновлять представление, созданное подзапросом.
Использовать типы данных ntext, text и image в списке выбора подзапросов.

Урок 1C / Слайд 14 из 22

Слайд 15

Коллективная работа

Советы (Продолжение..)
Правила подзапроса
Вы не можете:
Включать выражения GROUP BY и

Коллективная работа Советы (Продолжение..) Правила подзапроса Вы не можете: Включать выражения GROUP
HAVING в подзапросы, введенные немодифицированным оператором сравнения, кроме ключевых слов ANY или ALL.
Включать более чем одно выражение или имя столбца в список выбора подзапроса, введенного с оператором сравнения. Хотя выражения с EXISTS и IN, которые работают на SELECT * или список, могут быть включены в подзапрос.

Урок 1C / Слайд 15 из 22

Слайд 16

Коллективная работа

Советы (продолжение..)
Использование команды UNION ALL вместо команды UNION
Используйте команду UNION

Коллективная работа Советы (продолжение..) Использование команды UNION ALL вместо команды UNION Используйте
ALL вместо команды UNION Это потому, что команда UNION ALL работает быстрее команды UNION. UNION ALL команда работает быстрее, поскольку она не ищет дублирующие строки.

Урок 1C / Слайд 16 из 22

Слайд 17

Коллективная работа

Советы (продолжение..)
Использование данных в формате Unicode
IIC Corp. является транснациональной организацией,

Коллективная работа Советы (продолжение..) Использование данных в формате Unicode IIC Corp. является
чьи документы составляются для компаний по всему миру. Они имеют дело с данными на нескольких языках и им требуется набор символов, поддерживающий большое количество знаков.
В таких ситуациях применяют данные в формате unicode. Данные в формате Unicode используют пециальный набор символов, который может отображать и хранить 65,536 знаков в отличии от стандартного набора символов, который поддерживает 256 знаков. Данные в формате Unicode могут хранить большее количество символов, поскольку в формате Unicode используются 2 байта. Можно использовать unicode-функцию для возврата целого значения для первого символа выражения в формате Unicode. Возвращаемое целое значение основано на стандарте юникода.
Синтаксис
UNICODE ('nсимвольное_выражение')
где,
nсимвольное_выражение – nchar или nvarchar.

Урок 1C / Слайд 17 из 22

Слайд 18

Коллективная работа

FAQ
В. Я дал следующую команду для просмотра данных за 10 дней от

Коллективная работа FAQ В. Я дал следующую команду для просмотра данных за
текущей даты, но она выдала ошибку:
Print DATEADD('d',10,GetDate())
О. Константы даты и времени не строковые и, поэтому, не должны быть заключены в одиночные кавычки. Правильная SQL команда:
Print DATEADD(d,10,GetDate())
В. Функция SOUNDEX выдает ошибку:
Print SOUNDEX('Smith') & ' ' & SOUNDEX('Smythe')
О. Необходимо использовать оператор ‘+’ для соединения строк. Оператор & является логическим оператором AND. Правильная SQL команда:
Print SOUNDEX('Smith') + ' ' + SOUNDEX('Smythe')

Урок 1C / Слайд 18 из 22

Слайд 19

Коллективная работа

FAQs (продолжение..)
В. В чем разница между внутренним и внешним соединениями?
О. Внутреннее соединение может

Коллективная работа FAQs (продолжение..) В. В чем разница между внутренним и внешним
также передаваться в виде эквивалентного соединения (equi join ), поскольку оно возвращает равное число записей из каждой таблицы при объединении. Однако внутреннее соединение может применяться для возврата отдельных столбцов таблицы, поскольку equi join использует * в списке выбора.

Урок 1C / Слайд 19 из 22

Слайд 20

Коллективная работа

СРС 5_1
Дано число 16,7658. Функция возвращает 16. Установить используемую функцию.
Установить

Коллективная работа СРС 5_1 Дано число 16,7658. Функция возвращает 16. Установить используемую
истинность или ложность: Команда EXISTS должна буть перед именем столбца, константой или выражением.
Вывести фамилии всех авторов заглавными буквами.
(Для создания запроса обратитесь к базе данных pubs)
4. Удалите всех авторов, живущих в городе, в котором находится издательство New Moon Books.
(Для создания запроса обратитесь к базе данных pubs)
Поднимите цену всех книг с типом «business» на $10.
(Для создания запроса обратитесь к базе данных pubs)
Команда __________ применяется для сохранения результирующего множества в новую таблицу без процесса описания данных.
(Для создания запроса обратитесь к базе данных pubs)
Что значит ключевое слово ALL в подзапросах?

Урок 1C / Слайд 20 из 22

Имя файла: Коллективная-работа.pptx
Количество просмотров: 191
Количество скачиваний: 0