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

  1. Синтаксис команды update.

Синтаксис

UPDATE таблица

SET {поле = значение}[,...]

[{WHERE условие}];

Описание:

UPDATE используется для того, чтобы заменять определенные значения в элементах таблицы данных другими.

SET {поле = значение}[,...]

С помощью SET заменяют значения полей в таблице указанными в списке.

UPDATE — оператор языка SQL, позволяющий обновить значения в заданных столбцах таблицы.

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

UPDATE [top(x)] <объект>

SET <присваивание1 [, присваивание2, ...]>

[WHERE <условие>]

[OPTION <хинт1 [, хинт2, ...]>]

  • top(x) — команда выполнится только х раз

  • <объект> — объект, над которым выполняется действие (таблица или представление(views))

  • <присваивание> — присваивание, которое будет выполняться при каждом выполнении условия <условие>, или для каждой записи, если отсутствует раздел where

  • <условие> — условие выполнения команды

  • <хинт> — инструкция программе как исполнить запрос

Пример:

UPDATE top(10) tbl_books SET price = 0 WHERE quantity = 0

OPTION (force GROUP, hash JOIN, force ORDER)

UP­DA­TE Per­sons SET ADD­ress='Nis­sesti­en 67', Ci­ty='Sand­nes' WHE­RE Last­Na­me='Tjes­sem' AND Firs­tNa­me='Ja­kob'

  1. Синтаксис команды insert

Insert into [схема.] {имя_таблицы}| (select…) [@строка_связи]

[(Список_столбцов)] [value (список_выражений) select_2]

INSERT — оператор языка SQL, который позволяет добавить строки в таблицу, заполняя их значениями. Значения можно вставлять перечислением с помощью слова values и перечислив их в круглых скобках через запятую или оператором select.

Примеры использования

Используя перечисление значений, с указанием столбцов:

INSERT INTO <название таблицы> ([<Имя столбца>, ...]) VALUES (<Значение>,...)

Используя перечисление значений, без указания столбцов:

INSERT INTO <название таблицы> VALUES (<Значение>,...)

Используя select:

INSERT INTO <название таблицы> SELECT <имя столбца>,... FROM <название таблицы>

В последнем случае, в таблицу может вставиться более одной записи. Если в таблице есть другие поля требующие заполнения, но не указанные в операторе insert, для них будет установлено значение по умолчанию, либо null, если значение по умолчанию не указано.

  1. Виды параметров. Способы передачи параметров, в том числе при вызове процедуры (функции) из SQL*PLUS

  2. Подзапросы: связанные и несвязанные подзапросы. Встроенные представления

Различают связанные с основным запросом (коррелированные) не связанные. Подзапрос – скалярный, возвращает среднее значение. Несвязанный подзапрос выполняется сначала.

  1. Операторы управления в PL/SQL

  2. Использование языка SQL внутри PL/SQL

  3. Что такое SQL?, PL/SQL?

PL/SQL разработан основе языка третьего поколения ADA. Достоинства:

Объектные типы и методы

Вложенные таблицы и изменяемые массивы

Внешние процедуры

Усовершенствованные LOB-объекты

  1. Правила целостности в базе данных ORACLE

  2. PL/SQL и предопределённые исключения. Примеры использования на наших занятиях

  3. Прагма exception_init. Назначение и использование в PL/SQL

Обработка исключений в PL/SQL. ПРАГМА – это директива (указание) компилятору. Прагмы (называемые также ПСЕВДОИНСТРУКЦИЯМИ) обрабатываются во время компиляции, а не во время выполнения. Они не изменяют смысла программы, а лишь поставляют информацию компилятору. В PL/SQL, предопределенная прагма EXCEPTION_INIT сообщает компилятору имя исключения, которое вы ассоциируете с конкретным кодом ошибки ORACLE. Это позволяет вам обращаться к любому внутреннему исключению по имени, написав для него специальный обработчик.

Синтаксис:

PRAGMA EXCEPTION_INIT(имя_исключения, код_ошибки_ORACLE);

  1. Переменные подстановки и переменные привязки в SQL*PLUS. Назначение и правила использования.

  2. Технология - « Клиент-Сервер»: системная архитектура СУБД ORACLE (серверные и клиентские процессы, примеры)

Архитектура Клиент-Сервер. Согласно этой архитектуре, функциональная логика сосредоточена на персональном компьютере. Технология Клиент-Сервер является реализацией распределённой обработки данных.

  1. Два вида конфигурации сервера Oracle. Какая из них предусмотрена именно для эффективной поддержки одновременной работы большого числа пользователей б.д.

  2. Логическая и физическая структура базы данных ORACLE

  3. Что такое SQL*PLUS?

  4. Что такое транзакция? Какую роль играют транзакции в базе данных? Примеры из нашей практики.

Транзакция - это группа последовательно выполняемых операторов SQL, которые либо должны быть выполнены все, либо не должен быть выполнен ни один из них. Главная задача транзакций - обеспечить целостность данных в случаях, когда несколько SQL-операторов выполняют зависящие друг от друга изменения данных. Классический пример, приводимый, наверно, во всех учебниках по базам данных - перевод денег с одного счета на другой:

UPDATE accounts SET AccSum = AccSum - 1000 WHERE AccNumber = 12345;

UPDATE accounts SET AccSum = AccSum + 1000 WHERE AccNumber = 67890;

Что будет, если первый оператор выполнится, а второй по какой-то причине - нет (сбой сервера, неправильный номер счета, переполнение... - мало ли какая может быть ошибка)? Деньги с одного счета списаны, а на другой не поступили...

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

Стандарт SQL-92 предусматривает, что транзакция в текущей сессии начинается неявно при выполнении первого из SQL-операторов, изменяющих данные, а завершена может быть либо явно - операторами COMMIT [WORK] или ROLLBACK (COMMIT [WORK] подтверждает транзакцию и фиксирует внесенные изменения, ROLLBACK транзакцию откатывает и возвращает данные в базе к тому состоянию, в каком они были до начала транзакции), либо неявно - при завершении текущей сессии или при системном сбое. К сожалению, стандарт SQL-92 не определяет, что должно делаться по умолчанию при завершении текущей сессии - подтверждение транзакции или откат, и в разных СУБД (и даже, бывает, в разных клиентах для одной СУБД) это реализуется по-разному. Поэтому на действия по умолчанию лучше не полагаться и всегда делать COMMIT / ROLLBACK явно.