Здавалка
Главная | Обратная связь

Выборка (A WHERE F)

Абдурахмонов А

Принял: Мадибрагимов

Душанбе 2015

Теоретическая сведения.

Определение реляционного объединения следующее:

Объединением двух отношений А и В одного и того же типа называется новое отношение (A UNION B) того же типа с телом, состоящим из множества всех кортежей t, которые принадлежат либо отношению А, либо отношению В, либо обоим отношениям одновременно. Например, имеются отношения А и В представленные в таблицах 3.1 и 3.2

S# ИМЯ Статус Город
S1 Сергей Москва
S2 Иван Киев
S4 Юрий Киев

Таблица 3.1 Таблица 3.2

S# ИМЯ Статус Город
S1 Сергей Москва
S4 Николай Москва

 

Тогда объединением этих таблиц будет таблица 3.3:

A UNION B

S# ИМЯ Статус Город
S1 Сергей Москва
S2 Иван Киев
S3 Юрий Киев
S4 Николай Москва

 

 

Пересечение (A INTERSECT B)

Пересечением двух совместимых по типу отношений называется отношение (AINTERSECTB) того же типа с телом ,состоящим из множества всех кортежей t, которые принадлежат одновременно отношениям А и В. Так для таблиц 3.1 и 3.2 пересечением таблиц будет таблица 3.4:

S# ИМЯ Статус Город
S1 Сергей Москва

(AINTERSECTB)

 

 

Вычитание или разность (A MINUS B)

Вычитанием двух совместимых по типу отношений называется отношением (AMINUSB) того же типа с телом, состоящим их множества всех кортежей t, которые принадлежат отношению А, но не принадлжеат отношению В. Так, для тех же таблиц 3.1 и 3.2 вычитанием таблиц будет таблица 3.5:

S# ИМЯ Статус Город
S4 Николай Москва

 

Разность между В и А представлена ниже в таблице 3.6:

 

S# ИМЯ Статус Город
S2 Иван Киев
S3 Юрий Киев

 

 

Декартово произведение (A TIMES B)

Декартовым произведением двух отношений А и В, где А и В не имеют общих атрибутов называется отношение (A TIMES B) с заголовком, представляющим собой объединение заголовков двух отношений А и В с телом, состоящим из множества всех кортежей t , представляющих собой объединение двух кортежей, один их которых принадлежит отношению А, а другой – отношению В. При этом кардинальность нового отношения равно произведению кардинальностей исходных отношений А и В, а степень равна сумме их степеней. Например, имеются два отношения, представленные в виде таблицы поставщиков А (таблица 3.7) и таблицы детале (таблица 3.8)

 

 

P# ДЕТАЛЬ
P1 Втулка
P2 Планка
P3 Муфта
P4 Брусок

Таблица 3.7 (А)

S# ИМЯ
S1 Иванов
S2 Петров

 

Таблица 3.8 (В)

 

Тогда декартовым произведением будет таблица 3.9:

S# Имя P# Деталь
S1 Иванов Р1 Втулка
S1 Иванов Р2 Планка
S1 Иванов Р3 Муфта
S1 Иванов Р4 Брусок
S2 Петров Р1 Втулка
S2 Петров Р2 Планка
S2 Петров Р3 Муфта
S2 Петров Р4 Брусок

 

Выборка (A WHERE F)

Выборкой из отношения А по условию F называется новое отношение (A WHERE F), имеющее тот же заголовок, что и А и тело, содержащее множество кортежей t отношения А, для которых условие Fявляетсяистинным.Для записи условий используются операнды, в качестве которых могут быть использованны имена атрибутов (или номера столбцов), константы, операторы сравнения (=, >,<…), логические операции (AND, OR, NOT), соединенные скобками.

Например, для таблицы 3.3, если взять выборку: SWHERE Город = ‘Киев’, то получим таблицу 3.10:

S# Имя Статус Город
S2 Иван Киев
S3 Юрий Киев

 

Для выборки S WHERE Статус >=15 из таблицы 3.2 получим таблицу 3.11:

S# Имя Статус Город
S1 Сергей Москва
S2 Иван Киев

 

Для таблицы 3.9, если ее обработать через SP и взять выборку S WHERE S#=’S1’ AND P#=’P3’,

То получаем таблицу 3.12:

S# Имя Р# Деталь
S2 Иванов Р3 Муфта

 

В качестве условий выборки могут быть использованны составные логические выражения:

1) A WHERE C1 AND C2=(AWHEREC1) INTERSECT (AWHEREC2);

2) A WHERE C1 OR C2 = (AWHEREC1) UNION (AWHEREC2);

3) A WHERE NOT C=A MINUS (AWHEREC).

На основе приведенных операций реляционной алгебры формируются различные запросы к базе данных. Для этого на языке структурированных запросов SQL в СУБД My SQL используется оператор SELECT, основная конструкция которого имеет вид:

SELECT <список атрибутов>

FROM <список таблиц>

WHERE <условие>

 

 

Задача 8.

Оклад <= 1600 Специальность=’Кассир’ Оклад=2000

Первый запрос:

SELECT [Кафедра].[Имя], [Кафедра].[Специальность], [Кафедра].[Оклад]

FROM Кафедра

WHERE (Оклад <= 1600);

В результате получаем следующую таблицу:

 

 

Второй запрос:

SELECT [Кафедра].[Имя], [Кафедра].[Специальность], [Кафедра].[Оклад]

FROM Кафедра

WHERE (Специальность="Кассир");

В результате получаем следующую таблицу:

 

 

Третий запрос:

 

SELECT [Кафедра].[Имя], [Кафедра].[Специальность], [Кафедра].[Оклад]

FROM Кафедра

WHERE (Оклад=2000);

В результате получаем следующую таблицу:

 

 





©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.