Методические указания по их использованию. Пособие содержит большое количество примеров на использование операторов sql, которые могут быть полезны как на этапе освоения материала, так и выступать в качестве вопросов для самопроверки


Глава 4. Подзапросы и производные таблицы



Download 441,57 Kb.
bet24/71
Sana15.01.2023
Hajmi441,57 Kb.
#899634
TuriМетодические указания
1   ...   20   21   22   23   24   25   26   27   ...   71
Bog'liq
Методичка SQL(14) (оптимизация)



Глава 4. Подзапросы и производные таблицы


С помощью SQL вы можете вкладывать запросы внутрь друг друга. В этом случае говорят о запросе с подзапросом.

4.1.Производная таблица.


Синтаксис SQL позволяет в предложении FROM кроме базовых таблиц использовать любое выражение, генерирующее табличную структуру. Рассмотрим пример
Пример 24.
Выдать меню на 02-01-2011.
SELECT a.Блюдо, cast(a. Стоимость as numeric(6,2)) as [Цена за порцию]
FROM
(SELECT b.Блюдо, b.ID_блюда,
SUM(s.Вес*n.Цена/1000)+b.Труд as Стоимость
FROM (Блюда b JOIN Состав s ON b.ID_блюда = s.Блюдо )
JOIN Наличие n ON s.Продукт = n.Продукт
GROUP BY b.Блюдо, b.ID_блюда, b.Труд ) a
JOIN Меню m ON m.Блюдо = a.ID_блюда
WHERE Дата = '2011-01-02'
ORDER BY Вид;

Результат




Блюдо

Цена за порцию

Салат летний

25.00

Салат мясной

38.63

Паштет из рыбы

12.04

Суп харчо

48.50

Суп молочный

35.97

Бефстроганов

55.15

Судак по-польски

13.37

Суфле яблочное

40.93

Кофе на молоке

12.02



Производная таблица — это весь запрос SELECT, помещённый в скобках (скобки являются частью синтаксиса и предназначены для выделения запроса). В примере производная таблица имеет псевдоним а.
Производная таблица — это общий случай подзапроса, запроса, который вложен в другой запрос или зависит от него. Производные таблицы чрезвычайно полезны в SQL.
В запросе используется функция преобразования типа —
cast(a. Стоимость as numeric(6,2))
её синтаксис:
CAST ( выражение AS тип_данных [ (длина) ])


4.2. Вложенные подзапросы


Вложенный подзапрос - это подзапрос, заключенный в круглые скобки и вложенный в WHERE (HAVING) фразу предложения SELECT или других предложений, использующих WHERE фразу. Вложенный подзапрос создан для того, чтобы при отборе строк таблицы, сформированной основным запросом, можно было использовать данные из других таблиц (например, при отборе блюд для меню использовать данные о наличии продуктов в кладовой ресторана).
Существуют простые и соотнесенные вложенные подзапросы.
Они включаются в WHERE (HAVING) фразу с помощью предикатов IN, EXISTS или одного из условий сравнения ( = | <> | < | <= | > | >= ). Простые вложенные подзапросы обрабатываются системой "снизу вверх". Первым обрабатывается вложенный подзапрос самого нижнего уровня. Множество значений, полученное в результате его выполнения, используется при реализации подзапроса более высокого уровня и т.д.
Запросы с соотнесенными вложенными подзапросами обрабатываются системой в обратном порядке. Сначала выбирается первая строка рабочей таблицы, сформированной основным запросом, и из нее выбираются значения тех столбцов, которые используются во вложенном подзапросе (вложенных подзапросах). Если эти значения удовлетворяют условиям вложенного подзапроса, то выбранная строка включается в результат. Затем выбирается вторая строка и т.д., пока в результат не будут включены все строки, удовлетворяющие вложенному подзапросу (последовательности вложенных подзапросов).
Следует отметить, что SQL обладает большой избыточностью в том смысле, что он часто предоставляет несколько различных способов формулировки одного и того же запроса. Поэтому во многих примерах мы будем использовать уже знакомые формулировки запросов. Кроме того, разные формулировки одного и того же запроса требуют для своего выполнения различных ресурсов памяти и могут значительно отличаться по времени реализации в разных СУБД.

Download 441,57 Kb.

Do'stlaringiz bilan baham:
1   ...   20   21   22   23   24   25   26   27   ...   71




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish