Совокупные характеристики


Для вычисления совокупных характеристик выборки используют специальные функции:

COUNT (<Условие>)

Пример

SELECT COUNT (*) FROM Pers;

Кроме того, есть функции, вычисляющие минимум, максимум и сумму.

Min (<поле>), Max (<поле>), Sum(<поле>);

Пример

SELECT min (Year_b), max (Year_b) FROM Pers;

Смешивание характеристик в одном операторе возможно при использовании GROUP BY;

Пример

SELECT Dep, COUNT (*) FROM Pers GROUP BY Dep

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

SELECT может включать в себя другой SELECT

Пример 1

SELECT Fam, Year_b FROM PersWHERE Year_b>= ALL (SELECT Year_b from Pers1)

Поиск сотрудников в таблице Pers не старше любого из Pers1.

Пример 2

SELECT Fam, Year_b FROM PersWHERE Year_b >= ANY (SELECT Year_b from Pers1)

Поиск сотрудников в таблице Pers моложе хотя бы одного из Pers1.

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

· EXISTS (SELECT …) – вложенный запрос возвращает True, если возвращено непустое множество значений;

· SINGULAR (SELECT …) – вложенный запрос возвращает True, если при отборе возвращено только одно значение.

Объединения таблиц основаны на взаимно однозначном соответствии записей в этих таблицах. Можно строить запрос сразу по нескольким таблицам.

Пример 1

SELECT p1.Fam, p2.Fam, p1.Year_b FROM Pers p1, Pers p2WHERE(p1.Year_b= p2.Year_b) and (p1.Fam: = p2.Fam)

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

Пример 2

SELECT * FROM Pers, DepWHERE (Pers.Dep = Dep.Dep) AND (Dep.Proizv <> 'п');

Внешние объединения

1. Левое объединение LEFT OUTER join … on включает все записи первой таблицы.

Пример

SELECT * FROM Pers LEFT OUTER joinChef on Pers.Fam=Chef.Fam;

2. Правое объединение RIGHT OUTER join … on включает все записи второй таблицы, если даже в первой их нет.

Пример

SELECT * FROM Pers RIGHT OUTER joinChef on Pers.Fam = Chef.Fam;

3. Полное объединение FULL OUTER join … on включает объединение записи обеих таблиц, независимо от их соответствия.

Пример

SELECT * FROM Pers FULL OUTER joinChef on Pers.Fam=Chef. Fam;

Выполнение SCRIPT-файлов (файлы сценария)

Операторы создания БД, таблиц, процедур, триггеров можно хранить и выполнять из файла. Файл создается в текстовом редакторе, по мере необходимости редактируется, а запускается из утилиты WISQL через основное меню File/Run SQL Script.

Тогда в начале файла необходимо использовать оператор SET TERM. Этот оператор используется для назначения нового разделителя вместо ";".

Пример

SET TERM ###;CREATE PROCEDURE FIND_MAX_KOL(IN_TOVAR VARCHAR(20))BEGINSELECT MAX (KOL) FROM RASHODWHERE TOVAR = :IN_TOVARINTO: MAX_KOL;SUSPEND;END###SET TERM ; ## #

 

Тема 3.3.Запросы на изменение данных в БД



Дата добавления: 2021-09-25; просмотров: 271;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.