Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД ответы на экз вопросы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
6.66 Mб
Скачать

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

  1. Выбрать строку из таблицы, имя которой указано в главном запросе.

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

  3. Вычислить условия поиска главного запроса с учетом результатов вложенного запроса, выполненного на шаге 2. Если условие поиска – истина, то выбранная строка из таблицы главного запроса включается в таблицу результатов. Иначе выбранная стока не включается в таблицу результатов.

  4. Повтор шагов 1-3 для строк таблиц или таблицы главного запроса, пока не будут проверены все строки.

33. Условия поиска с вложенным запросом.

1) Сравнение с результатом вложенного запроса.

2) Проверка на принадлежность результатам вложенного запроса.

3) Проверка на существование результатов вложенного запроса.

4) Многократное сравнение.

1) Сравнение с результатом вложенного запроса.

=

< >

>=

<=

<

...

2) Проверка на принадлежность результатам вложенного запроса.

SELECT * FROM FLAT WHERE ADR NOT IN (SELECT ADR FROM TPHONE).

3) Проверка на существование результатов вложенного запроса.

SELECT *FROM PERSON

WHERE EXISTS (SELECT ID FROM HAVE_D, PROVIT

WHERE PROVIT.ID = HAVE_D.ID

AND MONEYS > 100

AND PERSON.NOM = HAVE_D.NOM ), где PERSON.NOM – внешняя ссылка

4

=

< >

>=

<=

<

...

) Многократное сравнение.

При наличии слова ANY проверяемое выражение(значение) поочередно сравнивается с каждым значением, содержащемся в столбце, который сформирован вложенным запросом. Если какое-либо из этих сравнений дает результат TRUE, то проверка ANY возвращает результат TRUE. Еcли все сравнения ложные, то проверка ANY возвращает значение FALSE.

Проверка ALL поочередно сравнивается с каждым значением, содержащимся в столбце, который сформирован вложенным запросом. Если все значения в результате сравнения дают значение TRUE, то проверка ALL возвращает TRUE, если хотя бы 1 проверка будет ложной, то ALL возвращает FALSE.

34. Внесение изменений в бд: добавление, удаление и обновление данных. Добавление новых элементов.

Наименьшей единицей информации, которую можно добавить в базу данных, является одна строка.

Существует 2 способа добавления новых строк:

  1. однострочный оператор INSERT, включающий в таблицу 1 строку

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

1Insert into имя таблицы, в которую добавляется строка )

INSERT INTO FLAT VALUES(‘Зеленоград, 8.12.04 1101-12’, 40, 3, ‘Н’)- вставляет строку в таблицу FLAT.

При добавлении новой строки в таблицу всем столбцам, имена которых отсутствуют в списке оператора INSERT, СУБД автоматически присваивает нулевое значение, либо значение, заданное по умолчанию при описании структуры таблицы.

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

2) Многострочный оператор

Он добавляет в целевую таблицу 1 или несколько строк. Источником новых строк является запрос на чтение, содержащейся внутри оператора INSERT.

INSERT INTO PERSON(FIO, RDATE, POL,SUMD, ADR)

SELECT ‘Алов Наум Наумович’, ’01-JAN-1970’, ‘М’, SUMD, ‘Зеленоград, 1001 - 51’

FROM PERSON

WHERE NOM = 16.

При отсутствии строки под номером 16, СУБД выдаст сообщение об ошибке, т.к. невозможно совершить преобразование пустой строки.