Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы дополнено.docx
Скачиваний:
10
Добавлен:
19.09.2019
Размер:
1.4 Mб
Скачать

Intersect [all] select-команда

INTERSECT используется для того, чтобы объединять результаты двух или более команд SELECT, при этом в резултат включаются только строки содержащиеся в первой команде SELECT, как и во второй. Поля всех результирующих таблиц должны быть совместимыми. Если ALL не использовано, то дупликаты исключаются из объединения результатов.

Пример:

SELECT vnum, vname

FROM tverkauf

WHERE stadt='Berlin'

INTERSECT

SELECT knum, kname

FROM tkunden

WHERE stadt='Berlin'

ORDER BY 1;

Здесь интересуют все строки первой результирующей таблицы, которые так же содержатся и во второй. Дупликаты исключаются из результата.

EXCEPT [ALL] SELECT-команда

Важно: в некоторых диалектах SQL используется вместо EXCEPT MINUS или DIFFERENCE, синтаксис же от этого не меняется

EXCEPT используется для того, чтобы объединять результаты двух или более команд SELECT, при этом в результат включаются только строки, содержащиеся в первой команде SELECT и не содержащиеся во второй. Поля всех результирующих таблиц должны быть совместимыми. Если ALL не использовано, то дупликаты исключаются из объединения результатов.

Пример:

SELECT vnum, vname

FROM tverkauf

WHERE stadt='Berlin'

EXCEPT

SELECT knum, kname

FROM tkunden

WHERE stadt='Berlin'

ORDER BY 1;

Здесь интересуют все строки первой результирующей таблицы, которые не имеют дупликатов во второй.

Into { temp | scratch } таблица

INTO TEMP используется для создания вспомогательных таблиц в активной базе данных, которые автоматически удаляются из последней после окончания связи с ней. Часто используется для оптимизации команд SQL. INTO SCRATCH отличается от INTO TEMP тем, что временная таблица фрагментируется по всем дискам.

9.Использование предикатов BETWEEN, IN и LIKE при формировании запроса к БД.

Предикат BETWEEN

Синтаксис:

BETWEEN::=

<Проверяемое выражение> [NOT] BETWEEN

<Начальное выражение> AND <Конечное выражение>

Предикат BETWEEN проверяет, попадают ли значения проверяемого выражения в диапазон, задаваемый пограничными выражениями, соединяемыми служебным словом AND. Естественно, как и для предиката сравнения, выражения в предикате BETWEEN должны быть совместимы по типам.

Предикат IN

Синтаксис:

IN::=

<Проверяемое выражение> [NOT] IN (<подзапрос>)

| (<выражение для вычисления значения>,...)

Предикат IN определяет, будет ли значение проверяемого выражения обнаружено в наборе значений, который либо явно определен, либо получен с помощью табличного подзапроса. Здесь табличный подзапрос это обычный оператор SELECT, который создает одну или несколько строк для одного столбца, совместимого по типу данных со значением проверяемого выражения. Если целевой объект эквивалентен хотя бы одному из указанных в предложении IN значений, истинностное значение предиката IN будет равно TRUE. Если для каждого значения Х в предложении IN целевой объект <> X, истинностное значение будет равно FALSE. Если подзапрос выполняется, и результат не содержит ни одной строки (пустая таблица), предикат принимает значение FALSE. Когда не соблюдается ни одно из упомянутых выше условий, значение предиката равно UNKNOWN.

Предикат LIKE

Синтаксис:

LIKE::=

<Выражение для вычисления значения строки>

[NOT] LIKE <Выражение для вычисления значения строки>

[ESCAPE <символ>]

Предикат LIKE сравнивает строку, указанную в первом выражении, для вычисления значения строки, называемого проверяемым значением, с образцом, который определен во втором выражении для вычисления значения строки. В образце разрешается использовать два трафаретных символа:

символ подчеркивания (_), который можно применять вместо любого единичного символа в проверяемом значении;

символ процента (%) заменяет последовательность любых символов (число символов в последовательности может быть от 0 и более) в проверяемом значении.

Если проверяемое значение соответствует образцу с учетом трафаретных символов, то значение предиката равно TRUE. Ниже приводится несколько примеров написания образцов.

10.Многотабличные запросы. Понятие внешнего и внутреннего объединения.

Многотабличный запрос

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

По умолчанию формируется результат, в котором выводятся только записи из таблиц с совпадающими значениями. Это внутренние связи. Для получения внешних связей надо изменить тип связи в схеме данных запроса двойным нажатием мышью на линию связи и нажатия кнопкиОбъединение. В соответствующем окне надо выбрать вид связи. В результате поиска содержание выводимой информации выборки изменится.

Внешнее и внутреннее объединение.