Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также

Структуризированный язык запросов (SQL)

Глава 3. Запросы с использованием нескольких таблиц

3.1. О средствах одновременной работы с множеством таблиц
3.2. Запросы, использующие соединения
3.3. Вложенные подзапросы
3.4. Объединение (UNION)
3.5. Реализация операций реляционной алгебры предложением SELECT
3.6. Резюме

3.5. Реализация операций реляционной алгебры предложением SELECT.

С помощью предложения SELECT можно реализовать любую операцию реляционной алгебры.

Селекция (горизонтальное подмножество) таблицы создается из тех ее строк, которые удовлетворяют заданным условиям. Пример:

SELECT *
FROM Блюда
WHER Основа = 'Молоко'
AND Выход > 200;

Проекция (вертикальное подмножество) таблицы создается из указанных ее столбцов (в заданном порядке) с последующим исключением избыточных дубликатов строк. Пример:

SELECT DISTINCT Блюдо, Выход, Основа
FROM Блюда;

Объединение двух таблиц содержит те строки, которые есть либо в первой, либо во второй, либо в обеих таблицах. Пример:

SELECT Блюдо, Основа, Выход
FROM Блюда
WHER Основа = 'Овощи'
UNION
SELECT Блюдо, Основа, Выход
FROM Блюда
WHER В = 'Г';

Пересечение двух таблиц содержит только те строки, которые есть и в первой, и во второй. Пример:

SELECT БЛ
FROM Состав
WHERE БЛ IN
( SELECT БЛ
FROM Меню);

Разность двух таблиц содержит только те строки, которые есть в первой, но отсутствуют во второй. Пример:

SELECT БЛ
FROM Состав
WHERE БЛ NOT IN
( SELECT БЛ
FROM Меню);

Декартово произведение таблиц и различные виды соединений были подробно рассмотрены в п.3.2.1-3.2.6.

Здесь опущено лишь достаточно нудное описание редко встречаемой операция деления, которая также может быть реализована предложением SELECT с коррелированными вложенными подзапросами.











helloworld.ru © 2001-2021
Все права защищены