Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

Съставяне на подзаявки


Информационни технологии | 2009-12-04 | 63 сваляния

7


Съставяне на подзаявки


SQL предоставя възможност за влагане на заявки една в друга. Например:

1) Заявка, извеждаща данните за продуктите с минимална доставна цена.

SELECT * FROM Products

WHERE price = ( SELECT MIN(price) FROM Products );

2) Заявка, извеждаща данните за продуктите с доставна цена, по-голяма от средната доставна цена на всички продукти.

SELECT * FROM Products

WHERE price > ( SELECT AVG(price) FROM Products );

В тези примери трябва подзаявката да връща една стойност един ред и една колона, в противен случай се получава съобщение за грешка. За да се осигури връщане на точно една стойност, се използват обобщаващи функции или условие за стойността на колоната (колоните) на първичния ключ или на колона (колони) с ограничение за уникалност. Когато подзаявката не върне резултат, конструкцията няма да върне грешка, но и основната заявка няма да върне резултат.

Разширение на стандартния SQL позволява извеждане на резултата от подзаявката в списъка с полета на главната заявка. Например:

3) Заявка, извеждаща име на продукт и брой на продажбите на съответния продукт.

SELECT ProductName, ( SELECT COUNT(*)

FROM SaleDetails sd

WHERE sd.ProductID = p.ProductID )

AS CountOfProductsSales

FROM Products p;

Тази заявка е еквивалентна на следната:

SELECT ProductName,

COUNT(sd.ProductID) AS CountOfProductsSales

FROM Products p

LEFT JOIN SaleDetails sd ON sd.ProductID = p.ProductID

GROUP BY ProductName;

За подзаявки, генериращи произволен брой редове, се използва специалния оператор IN. Например:

4) Заявка, извеждаща данните за продажбите на служителите с дадена фамилия.

SELECT *

FROM Sales

WHERE EmployeeID IN ( SELECT EmployeeID FROM Employees

WHERE LastName = "Име" );

Тази заявка е еквивалентна на следната:

SELECT s.*

FROM Sales s

INNER JOIN Employees e ON e.EmployeeID = s.EmployeeID

WHERE LastName = "Име";

Едно съединение може да се напише като подзаявка, но обратното не винаги е вярно. Съединението в повечето случаи се изпълнява по-бързо, отколкото еквивалентната подзаявка, но целта на заявката е по-ясно определена, когато даден въпрос бъде решен чрез подзаявка.

5) Заявка, извеждаща данните за клиентите, намиращи се в градове, в които има доставчици.

SELECT * FROM Customers

Съставяне на подзаявки

Добави своя коментар:



Тагове от реферата: ,


Подобни материали


Създаване на етикети за пощенски пликове Информационни технологии | 2010-11-19 | 123 прочитания
Условна ентропия и съвместна ентропия на съобщения с непрекъснато разпределение на състоянията Информационни технологии | 2010-11-19 | 142 прочитания
МОДЕЛИ НА ДАННИ.ЙЕРАРХИЧНИ,МРЕЖОВИ И РЕЛАЦИОННИ МОДЕЛИ НА ДАННИ.СУБД Информационни технологии | 2010-11-19 | 35 прочитания
УУ с съхранима микропрогр. firmwareУУ с съхранима микропрогр. firmware Информационни технологии | 2010-11-19 | 38 прочитания
Операционна система WINDOWS XP Информационни технологии | 2010-11-19 | 58 прочитания
CISC (Complex Instruction Set Computer) Информационни технологии | 2010-11-19 | 43 прочитания
ПРЕДСТАВЯНЕ НА ДАННИТЕ В ЕЗИКА SCHEME Информационни технологии | 2010-11-19 | 34 прочитания
Система за обслужване на разплащания с банкови карти БОРИКА Информационни технологии | 2010-11-19 | 68 прочитания
Обхожодане на графи. Екстремални пътища в графи Информационни технологии | 2010-11-19 | 176 прочитания
ЗА КОМПЮТЪРНИТЕ СИСТЕМИ Информационни технологии | 2010-11-19 | 37 прочитания