Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум SQL.rtf
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
929.07 Кб
Скачать

Решение

SELECT [Академичекая справка].№зк, [Академичекая справка].ФИОпреподавателя, [Академичекая справка].фак, [Академичекая справка].фиоСтудента, [Академичекая справка].предм, [Академичекая справка].оценка, [Академичекая справка].Семестр INTO [Успеваемость за второй семестр]

FROM [Академичекая справка]

WHERE ((([Академичекая справка].Семестр)=2));

Инструкция update (запрос на обновление)

В указанной таблице или запросе обновляет выбранные столбцы (присваивая шачение заданного выражения либо Null) во всех строках, удовлетворяющих условию отбора. Если в инструкции не используется предложение WHERE, то )бновляются все строки таблицы или запроса.

Синтаксис:

UPDATE {{ имя-таблицы [[AS] псевдоним ] |

имя--запроса-на-выборку [ [AS] псевдоним ] } | <таблица-объединения>},... [IN <спецификация-источника~данных>] SET {имя-столбца = {выражение | NULL}},... [WHERE условие-отбора]

где таблица-объединения есть

{{имя-таблицы [[AS] псевдоним ] |

имя-запроса-на-выборку [[AS] псевдоним ] \

<таблица-объединения>} {INNER | LEFT | RIGHT} JOIN -^ {имя-таблицы [[AS] псевдоним ] \

имя-запроса-на-выборку [[AS] псевдоним ]

<таблица-объединения>} ON <условие-объединения>)

Пояснения: Если в инструкции указано более одного имени таблицы, то изменять содержи­мое столбцов можно только в таблице, находящейся на стороне «многие» отношения «один-ко-многим», либо в любой из таблиц, между которыми установлена связь «один-к-одному». Microsoft Access должен иметь возможность определить связь между запросами, чтобы он мог обновить значения столбцов в запросе. Если некоторая таблица связана с запросом по ее первичному ключу, то можно изменять содержимое столбцов в запросе (так как первичный ключ указывает на то, что в этом случае таблица находится на стороне «один» объединения), но нельзя обновлять таблицу. Если же вы хотите обновить таблицу, используя для этого результаты некоторого запроса, то вставьте их во временную таблицу и определите для нее связь «один-ко-многим» или «один-к-одному» с обновляемой таблицей. После этого для обновления нужной таблицы можно использовать временную.

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

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

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

Пример № 24. В таблице Сведения о сотрудниках проиндексировать поле Ставка в 1,5 раза, а Доплаты увеличить на 20%

Решение.

UPDATE [Сведения о сотрудниках] SET [Сведения о сотрудниках].Ставка = [Сведения о сотрудниках]![Ставка]*1.5, [Сведения о сотрудниках].[%доплат] = [Сведения о сотрудниках]![%доплат]*1.2;