Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
27.04.2015
Размер:
433.66 Кб
Скачать

Запросы:

Имя вычисляемого поля

Подсчитать и вывести

 

 

 

(псевдоним)

SELECT COUNT(*) AS kol

 

 

 

 

 

kol

FROM student

 

 

 

10

Определить среднее значение

 

 

 

стипендии

SELECT AVG (stip) AS sredn

 

 

 

sredn

FROM student

 

 

 

 

 

 

1250

 

 

 

 

 

 

 

 

 

Вычисляемые поля

SELECT Fam, Stip, Stip*1.5

FROM student

GROUP BY – группирование результатов. SELECT и GROUP BY тесно связаны между собой.

Если в запросе есть группировка, то каждый элемент списка SELECT должен иметь единственное

значение для всей группы. В SELECT могут включаться:

имена столбцов,

агрегатные функции,

константы,

выражения.

GROUP BY позволяет определить подмножество значений в особом поле в терминах другого поля и применить агрегирующую функцию к подмножеству.

Запросы:

Вывести количество студентов в каждой группе. SELECT Gruppa, COUNT(*) AS kol

FROM student

GROUP BY Gruppa

Вывести сумму стипендии, выдаваемой каждой группе.

SELECT Gruppa, SUM(Stip) AS stipend FROM student

GROUP BY Gruppa

Вывести среднее значение стипендии по группам:

SELECT Gruppa, AVG(Stip) AS sredn FROM student

GROUP BY Gruppa

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

Стандарт языка позволяет в тело одного оператора SELECT внедрять другой оператор SELECT .

Получается внешний и внутренний (внедряемый) операторы запроса.

Обычно внутренний запрос генерирует значение, который проверяется в предикате внешнего запроса (в предложении WHERE или HAVING), определяющего, верно оно или нет.

Виды подзапросов:

-скалярный подзапрос возвращает одно значение,

-строковый подзапрос возвращает значения в виде одной строки,

-табличный подзапрос возвращает данные в виде таблицы.

Накладываемые ограничения:

-нельзя использовать в подзапросах ORDER BY (только в основном запросе),

-список в SELECT может включать только имена столбцов и выражения из них,

-по умолчанию имена столбцов в подзапросе относятся к таблице, указанной в FROM,

-подзапрос может быть только правым операндом,

-подзапросы, возвращающие более одной записи, могут использоваться только с многозначными операторами,

-в основном запросе нельзя использовать between.

Вывести фамилии и стипендии тех, у которых она > средней.

SELECT fam, stip FROM student

WHERE stip > (SELECT avg(stip) FROM student)

В стандарте языка операторы сравнения расширены до многократных сравнений с использованием слов ANY и ALL.

Слово ANY, поставленное в предикате сравнения, означает, что предикат будет TRUE, если хотя бы для одного значения из подзапроса, предикат сравнения =TRUE.

Слово ALL требует, чтобы предикат сравнения был TRUE при сравнении со всеми строками подзапроса