Реферат: Организация Web-доступа к базам данных с использованием SQL-запросов
Запросы, использующие соединения
Декартово произведение таблиц
Так как декартово произведение n таблиц – это таблица, содержащая все возможные строки r, такие, что r является сцеплением какой-либо строки из первой таблицы, строки из второй таблицы, … и строки из n-й таблицы (а мы уже научились выделять с помощью SELECT любое подмножество реляционной таблицы), то осталось лишь выяснить, можно ли с помощью SELECT получить декартово произведение. Для получения декартова произведения нескольких таблиц надо указать во фразе FROM перечень перемножаемых таблиц, а во фразе SELECT – все их столбцы.
Так, для получения декартова произведения Вид_блюд и Трапезы надо выдать запрос
SELECT Вид_блюд.*, Трапезы.*
FROM Вид_блюд, Трапезы;
Получим таблицу, содержащую 5 х 3 = 15 строк:
В |
Вид |
Т |
Трапеза |
З | Закуска | 1 | Завтрак |
З | Закуска | 2 | Обед |
З | Закуска | 3 | Ужин |
С | Суп | 1 | Завтрак |
С | Суп | 2 | Обед |
С | Суп | 3 | Ужин |
Г | Горячее | 1 | Завтрак |
Г | Горячее | 2 | Обед |
Г | Горячее | 3 | Ужин |
Д | Десерт | 1 | Завтрак |
Д | Десерт | 2 | Обед |
Д | Десерт | 3 | Ужин |
Н | Напиток | 1 | Завтрак |
Н | Напиток | 2 | Обед |
Н | Напиток | 3 | Ужин |
В другом примере, где перемножаются таблицы Меню, Трапезы, Вид_блюд, Блюда:
SELECT Меню.*, Трапезы.*, Вид_блюд.*, Блюда.*
FROM Меню, Трапезы, Вид_блюд, Блюда;
образуется таблица (рис 2.6), содержащая 21 х 3 х 5 х 33 = 10395 строк.
Эквисоединение таблиц
Если из декартова произведения убрать ненужные строки и столбцы, то можно получить актуальные таблицы, соответствующие любому из соединений.
Меню |
Трапезы |
Вид_блюд |
Блюда |
||||||||||||||||||||||||||||
Т |
В |
БЛ |
Т |
Трапеза |
В |
Вид |
БЛ |
Блюдо |
В |
Основа |
Выход |
Труд |
|||||||||||||||||||
1 | З | 3 | 1 | Завтрак | З | Закуска | 1 | Салат летний | З | Овощи | 200. | 3 | |||||||||||||||||||
1 | З | 3 | 1 | Завтрак | З | Закуска | 2 | Салат мясной | З | Мясо | 200. | 4 | |||||||||||||||||||
1 | З | 3 | 1 | Завтрак | З | Закуска | 3 | Салат витаминный | З | Овощи | 200. |
4 * |
|||||||||||||||||||
. . . |
|||||||||||||||||||||||||||||||
1 | З | 3 | 1 | Завтрак | З | Закуска | 12 | Суп молочный | С | Молоко | 500. | 3 | |||||||||||||||||||
1 | З | 3 | 1 | Завтрак | З | Закуска | 13 | Бастурма | Г | Мясо | 300. | 5 | |||||||||||||||||||
. . . |
|||||||||||||||||||||||||||||||
1 | З | 3 | 1 | Завтрак | З | Закуска | 32 | Кофе черный | Н | Кофе | 100. | 1 | |||||||||||||||||||
1 | З | 3 | 1 | Завтрак | З | Закуска | 33 | Кофе на молоке | Н | Кофе | 200. | 2 | |||||||||||||||||||
1 | З | 6 | 1 | Завтрак | З | Закуска | 1 | Салат летний | З | Овощи | 200. | 3 | |||||||||||||||||||
1 | З | 6 | 1 | Завтрак | З | Закуска | 2 | Салат мясной | З | Мясо | 200. | 4 | |||||||||||||||||||
1 | З | 6 | 1 | Завтрак | З | Закуска | 3 | Салат витаминный | З | Овощи | 200. | 4 | |||||||||||||||||||
1 | З | 6 | 1 | Завтрак | З | Закуска | 4 | Салат рыбный | З | Рыба | 200. | 4 | |||||||||||||||||||
1 | З | 6 | 1 | Завтрак | З | Закуска | 5 | Паштет из рыбы | З | Рыба | 120. | 5 | |||||||||||||||||||
1 | З | 6 | 1 | Завтрак | З | Закуска | 6 | Мясо с гарниром | З | Мясо | 250. |
3 * |
|||||||||||||||||||
. . . |
|||||||||||||||||||||||||||||||
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24