Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД вопросы.doc
Скачиваний:
42
Добавлен:
26.03.2015
Размер:
424.96 Кб
Скачать
                  1. 17. Подзапросы: (not)in, (not)exists, all, any, some.

Подзапросы, внутренние или вложенные запросы - это запрос внутри запроса.

NOT - отрицание

IN – эквивалетно значению любого элемента из подзапроса

ANY – сравнивает значение со всеми значениями из подзапроса, возвращая true если сравнение верно для любого ОДНОГО значения из списка

ALL – сравнивает значение со всеми значениями из подзапроса, возвращая true если сравнение верно для ВСЕХ значений из списка

EXISTS берет подзапрос, как аргумент, и оценивает его как верный, если подзапрос возвращает какие-либо записи и неверный, если тот не делает этого.

SOME - Тоже самое что и ANY

Синтаксис:

SELECT * FROM salespeople

WHERE city = ANY[ALL/IN] (SELECT city FROM customers);

Синтаксис:

SELECT productid,

productname

FROM products p

WHERE NOT EXISTS (SELECT *

FROM [order details] od

WHERE p.productid = od.productid)

                  1. 18. Представления: создание, применение, order by в представлении, with check option, dml-операции c представлениями.

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

Создание представления:

CREATE VIEW abc

AS

SELECT *

FROM table .

Назначение представления — упрощение селект запроса. Не хранится в базе данных, а каждый раз вычисляется.

With check option — cпециальная опция, которая указывается при создании представлений. Она приводит к созданию ограничения, условием которому служит условие where. Т.е. ограничение условия берется из where.

CREATE VIEW abc

AS

SELECT *

FROM table

WHERE age >= 20 .

В представлениях можно выполнять все DML-операции: select, insert, update, delete. При этом, так как представления каждый раз вычисляются, все изменения представления будут затрагивать таблицу на основе которой было создано представление.

При использовании предложения ORDER BY в представления, встроенной функции, производной таблицы или вложенный запрос, необходимо также указать оператор Top.

CREATE VIEW abc

AS

SELECT TOP 3 *

FROM table

ORDER BY name

                  1. 19. Агрегатные функции: sum, count, avg.

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

  • COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос.

  • SUM - производит арифметическую сумму всех выбранных значений данного поля

  • AVG - производит усреднение всех выбранных значений данного поля

  • MAX - производит наибольшее из всех выбранных значений данного поля

  • MIN - производит наименьшее из всех выбранных значений данного поля

SELECT Sum (amt)

FROM orders;

                  1. 20. T-SQL: DECLARE, локальные переменные, присвоение инициализация, глобальные переменные, оператор PRINT, оператор IF-ELSE, операторные скобки BEGIN/END, оператор RETURN, конкатенация строк, преобразование типов CAST, конструкции CASE, WHILE, WAITFOR,TRY/CATCH, процедура RAISEERROR.

Declare — объявление переменной.

Переменная – область памяти. Всегда начинается с @.

Есть 3 способа присвоения: declare @s=1, set @s = 1, select @s = 1.

Инициализация: Declare @имя_переменной тип_данных.

Переменные бывают:

  1. Локальные – переменные, которые используются для временного хранения данных во время запуска пакета инструкций SQL;

  2. Глобальные – переменные, обозначенные @@ (стандартные, системные).

Print — оператор для вывода значений переменных или обычного текста.

if-else — конструкция, которая представляет собой условие (если, иначе).

BEGIN-END: блок операторов. Содержит команды, которые выполняются вместе.

Оператор return возвращает значение.

Конкатенация строк — операция «склеивания» строк. Выполняется при помощи оператора +. Print ‘a’ + ’b’.

Cast — оператор, с помощью которого осуществляется преобразование типов. cast(<переменная или значение> as <требуемый тип>).

Case — оператор выбора.

While – оператор цикла;

Waitfor – оператор, который блокирует выполнение пакета, хранимой процедуры или транзакции до наступления указанного времени или интервала времени.

Try-catch — конструкция исключения.

Raiseerror — cоздает сообщение об ошибке и запускает обработку ошибок для сеанса.