Реляционная модель данных


Download 372 Kb.
bet18/21
Sana28.12.2022
Hajmi372 Kb.
#1023068
1   ...   13   14   15   16   17   18   19   20   21
Bog'liq
Conn&Begg


Раздел WHERE оператора SELECT может содержать вложенный запрос (или подзапрос). Результат выполнения этого внутреннего запроса используется для получения окончательного результата.

Например, список всех преподавателей, которые получают зарплату выше средней, формируется с помощью следующего запроса:
SELECT ФИО, Должность
FROM ПРЕПОДАВАТЕЛИ
WHERE Зарплата > (SELECT AVG(Зарплата) FROM ПРЕПОДАВАТЕЛИ)

  1. Для получения информации из нескольких таблиц применяется механизм соединения этих таблиц. Исходные таблицы перечисляются через запятую в разделе FROM, а раздел WHERE должен содержать условие, по которому происходит соединение строк из отдельных таблиц. Для сокращенного обозначения рассматриваемых таблиц разрешается использование псевдонимов.

Пусть, например, требуется сформировать список преподавателей университета с указанием названия кафедры, на которой работает преподаватель, и телефона этой кафедры. Выполняем следующий запрос:
SELECT ФИО, Название, Телефон
FROM ПРЕПОДАВАТЕЛИ a, КАФЕДРЫ b
WHERE a.Код_каф = b.Код_каф

  1. При связывании таблиц конструкция в разделе FROM может выглядеть так:



ON

В этой конструкции элемент может принимать следующие значения:



    • [INNER] JOIN — внутреннее соединение (применяется по умолчанию). Результат содержит только те пары связанных строк из и , которые удовлетворяют условию соединения .

    • LEFT [OUTER] JOIN — левое внешнее соединение. Результат будет обязательно содержать все строки из . Если для некоторой строки этой таблицы ни одна из строк в не удовлетворяет условию соединения, то соответствующие поля записи, включаемой в результат запроса, заполняются значениями NULL.

    • RIGHT [OUTER] JOIN — правое внешнее соединение.

    • FULL [OUTER] JOIN — полное внешнее соединение, что равносильно одновременному применению правил для LEFT [OUTER] JOIN и RIGHT [OUTER] JOIN.

8.2.5. Язык PL/SQL


Язык PL/SQL — это процедурное расширение к языку SQL для СУБД Oracle. По своей организации язык PL/SQL аналогичен современным языкам программирования, в нем предусмотрены:

  • объявление переменных и констант;

  • управляющие структуры;

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

  • модульная организация.

PL/SQL — это язык с блочной структурой, при которой блоки могут быть полностью независимыми или вложенными друг в друга. Основными модулями, которые составляют программу на PL/SQL, являются процедуры, функции и анонимные (неименованные) блоки.
Управляющие структуры языкаPL/SQL поддерживают обычные условные операторы (IF-THEN-ELSE-END IF), а также механизмы управления циклическим выполнением (LOOP-EXIT, WHEN-END LOOP, FOR-END LOOP и WHILE-END LOOP).
Подпрограммы в PL/SQL — это именованные блоки, которые могут принимать параметры и вызываться на выполнение. Имеется два типа подпрограмм — хранимые процедуры и функции.
Процедуры и функции PL/SQL очень похожи на аналогичные конструкции большинства языков программирования высокого уровня и обладают такими же преимуществами: обеспечивают модульность и расширяемость, стимулируют повторное использование и упрощают сопровождение, а также позволяют перейти от применения простейших операций к более сложным операциям, которые создаются самим пользователем.



Download 372 Kb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling