Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Oracle ОТВЕТЫ К ЭКЗАМЕНУ_с нашими вопросами.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
131 Кб
Скачать
☆
  1. Синтаксис команды truncate: обязательно с практическими примерами.

Truncate — в языках, подобных SQL, DML-операция очистки всех строк в таблице. Логически эквивалентна операции DELETE без оператора WHERE, однако часто выполняется быстрее и требует меньших ресурсов системы.

Синтаксис

Общий синтаксис команды:

TRUNCATE TABLE <Имя Таблицы>

Последствием выполнения такой команды является полное удаление всех строк таблицы <Имя Таблицы>.

Отличия от оператора delete

Основные отличия операторов TRUNCATE и DELETE, которые могут присутствовать в различных реализациях СУБД:

  • Операция TRUNCATE не записывает в журнал событий удаление отдельных строк. Вследствие чего не может активировать триггеры.

  • После операции TRUNCATE для некоторых СУБД (например, Oracle) следует неявная операция COMMIT. Поэтому удаленные в таблице записи нельзя восстановить операцией ROLLBACK. Но существуют и СУБД, в которых операция TRUNCATE может участвовать в транзакциях, например, Microsoft SQL Server.

  • Операция DELETE блокирует каждую строку, а TRUNCATE - всю таблицу.

  • Операция TRUNCATE не возвращает какого-то осмысленного значения (обычно возвращает 0) в отличие от DELETE, которая возвращает число удаленных строк.

Вообще говоря, реализация оператора TRUNCATE может зависеть от выбора конкретной СУБД. Поэтому в каждом случае рекомендуется смотреть документацию выбранной системы.

  1. Виды запросов: обязательно с практическими примерами.

Все запросы делятся на простые и сложные.

Простые - это запросы к одной таблице.

Сложные – запросы объединения (соединения), это запросы к двум и более таблицам.

  1. Независимые подзапросы: обязательно с практическими примерами.

  2. Обзоры. Что это за объекты? Для чего и как они создаются? Привести пример из нашей практики. Как можно было решить проблему заполнения поля PAYMENT без предварительного создания обзора?

  3. Подзапросы. Всё, что Вы знаете. Приведите примеры на данных из наших таблиц.

Подзапросы различаются:

Скалярные – возвращают одну строку и один столбец

Многострочные – возвращают список значений по какому-то столбцу

Многостолбцовые – возвращают несколько полей одной строки

Ещё различают связанные с основным запросом (коррелированные) не связанные.

Пример:

Имена клиентов, у которых значение счёта >= среднему значению по всем счетам. Подзапрос – скалярный, возвращает среднее значение.

Несвязанный подзапрос выполняется сначала.

Пример:

Select name клиент, acc счёт

From clients

Where acc >= (select avg (acc) from clients);

  • Имя клиента и его счёт больше среднего значения.

Select a.name, a.city, a.acc

From clients a

Where a.acc >= (select avg (b.acc) from clients b

Where a.city = b.city);

  • Клиенты одного города и их счета

  1. Структура блока pl/sql

Базовой единицей в PL/SQL является блок. Различают анонимные (безымянные) блоки и анонимные блоки с метками (неименованные).

Безымянные блоки не хранятся в БД, а создаются для разового применения (не объекты БД).

Подпрограммы (именованные блоки) – процедуры, функции, модули (пакеты), триггеры это все объекты БД.

1 – Секция – описание переменных (Declare). Эта секция может быть не обязательна. В PL/SQL установлена ранняя привязка.

2 – Секция исполняемых операторов Begin, обязательна.

3 – Секция Exception- секция обработки исключений.

4 – end;

Возможны вложенные блоки.

Блочно-структурируемая PL/SQL. Преимущества блоков PL/SQL в отличии от отдельных SQL-операторов, кроме дополнительной функциональности обеспечивает более высокую производительность обработки данных и значительное уменьшение сетевого трафика. Ещё более значительно сокращает сетевой трафик использование хранимых процедур.