Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Связывание таблиц






Раздел WHEREможет быть использован для связывания таблиц. В этом случае условие связывания должно присоединяться к логическому выражению с помощью логической операции AND(логическое умножение).

Рассмотрим пример, уточняющий один из представленных выше:

 

SELECT Наименование, Семестр, Количество _часов

FROM Учебный_ план, INNER 7011 Дисциплины ON

Учебный_ план. ID_ Дисциплина Дисциплины ID_ Дисциплина

WHERE (Количество_ часов > 60) AND (Семестр = 1)

 

Перенесём условие, связывания в. логическое выражение:

SELECT Наименование, Семестр, Количество_ часов

FROM Учебный_ план, Дисциплины

WHERE (Учебный_ план.ID_ Дисциплина

Дисциплины, ID_ Дисциплина) AND

(Количество_ часов > 60) AND (Семестр =1)

 

Результат выполнения обоих запросов одинаков (рис. 7.17).

 

 

Использование только условия связывания в разделе WHEREаналогично связыванию ключевым словом INNERв разделе FROM.Например, результаты следующих запросов одинаковы (рис. 7.18):

 

SELECT ТOP 10 Наименование, Семестр, Количество_ часов

FROM Учебный_ план Дисциплины.

WHERE (Учебный_ план. ID_Дисциплина

Дисциплины. ID_ Дисциплина)

 

SELECT TОP 10 Наименование, Семестр, Количество_ часов

FROM Учебный_ план INNER JOIN Дисциплины ON

Учебный_ план. ID_ Дисциплина Дисциплины. ID_ Дисциплина

 

Содержимое обеих таблиц можно посмотреть с помощью следующих запросов:

 

SELECT TOP 10 *

FROM Учебный_ план

 

Результат примера — на рис. 7.19.

 

 

SELECT TOP 10 *

FROM Дисциплины

 

Результат примера — на рис. 7.20.

 

 

 

Аналогом использования ключевых слов 1.EFT OUTER JOINявляется указание в разделе WHEREусловия с помощью символов *=. Приведенные примеры возвращают одинаковый набор данных:

 

SELECT Наименование, Семестр, Отчетность

FROM Дисциплины LEFT OUTER JDXN Учебный_ план ON

Учебный план. ID_ Дисциплина Дисциплины. ID_ Дисциплина

WHERE (Наименование KXKE '%информатик %')

 

SELECT. Наименование, Семестр, Отчетность

FROM Дисциплины, Учебный_ план

WHERE (Учебный план. ID_ Дисциплина *=

Дисциплины. ID_ Дисциплина)

AND (Наименование. LIKE, '% информатик %')

 

Аналогом использования ключевых слов RIGHT OUTER JOIN является указание условия с помощью символов =*. Приведенные примеры возвращают одинаковый набор данных:

 

SELECT Отчетность, Семестр, Наименование

FROM Учебный_ план RIGHT OUTER JOIN Дисциплины ON

Учебный план. ID_ Дисциплина = Дисциплины. ID_ Дисциплина

 

WHERE (Наименование LXKE '%информатик %').

SELECT Отчетность, Семестр, Наименование

FROM Учебный_ план, Дисциплины

WHERE (Учебный план. ID_Дисциплина =*

Дисциплины. ID_ Дисциплина)

AND (Наименование LIKE '% информатик %)

 

Следует отметить, что при использовании специальных ключевых ядов INNER / {LEFT / RIGHT / FULL } [OUTER ] данные представляются по-иному, чем при указании условия WHERE.Скорость выполнения запроса в первом случае оказывается выше, поскольку организуется связывание данных, тогда как при использовании конструкции WHEREпроисходит их фильтрация. При выполнении запросов на небольших наборах данных это не играет существенной роли, поэтому удобнее обращаться к конструкции WHEREиз-за наглядности и простоты синтаксиса этого варианта, но при построении сложных запросов, выполняющих обработку тысяч строк, все же лучше использовать конструкцию связывания.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.