Помощь в написании студенческих работ
Антистрессовый сервис

Обновление существующих данных

РефератПомощь в написанииУзнать стоимостьмоей работы

В операторе указывается целевая таблица, которая должна быть модифицирована. Предложение WHERE отбирает строки таблицы, подлежащие обновлению. В предложении SET указывается, какие столбцы в выбранных строках таблицы должны быть обновлены, и для них задаются новые значения. Этот оператор выполняется следующим образом: все строки таблицы PERSON по очереди проверяются на соответствие условию поиска… Читать ещё >

Обновление существующих данных (реферат, курсовая, диплом, контрольная)

Наименьшей единицей информации, которую можно обновить в реляционной БД является значение одного столбца в одной строке. Обновлять информацию требуется, когда изменяются значения атрибутов у объектов рассматриваемой предметной области. На примере учебной БД это выглядит следующим образом:

  • 1) если в квартире изменяется номер установленного телефона, то соответствующей строке таблицы TPHONE должно быть обновлено значение столбца NTEL;
  • 2) если жители одной квартиры переезжают в другую квартиру, го столбец ADR таблицы PERSON для этих жителей необходимо обновить, чтобы учесть адрес их нового места жительства.

Для обновления значения одного или нескольких столбцов в выбранных строках одной таблицы предназначен оператор UPDATE (рис. 3.19).

Синтаксическая диаграмма оператора UPDATE.

Рис. 3.19. Синтаксическая диаграмма оператора UPDATE.

В операторе указывается целевая таблица, которая должна быть модифицирована. Предложение WHERE отбирает строки таблицы, подлежащие обновлению. В предложении SET указывается, какие столбцы в выбранных строках таблицы должны быть обновлены, и для них задаются новые значения.

Следующий оператор UPDATE изменяет номер и категорию телефона, установленного в квартире с заданным адресом:

UPDATE TPHONE SET NTEL = '111−0000', TCATEGORY = 'Д'.

WHERE ADR = 'Зеленоград. 1001−45'.

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

UPDATE PERSON SET ADR = 'Зеленоград, 1801−12'.

WHERE ADR = 'Зеленоград, 1001−45'.

Этот оператор выполняется следующим образом: все строки таблицы PERSON по очереди проверяются на соответствие условию поиска. Строки, для которых условие поиска имеет значение TRUE, обновляются, а строки, для которых условие поиска имеет значение FALSE или NULL, не обновляются.

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

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

Если выражение содержит ссылку на один из столбцов целевой таблицы, то для вычисления выражения используется значение этого столбца в текущей етроке, которое было перед обновлением. То же самое справедливо для ссылок на столбцы в предложении WHERE. Например:

UPDATE FLAT SET NR00MS = 5,.

SKV = NROOMS + 1 WHERE NROOMS = 3.

Для строк таблицы FLAT, в которых столбец NROOMS содержит значение, равное 3, оператор UPDATE запишет в столбец NROOMS значение 5, а в столбец SKV — значение 4 (3 + 1 !). Таким образом, порядок операций присваивания в предложении SET не влияет на результат.

Если предложение WHERE отсутствует в записи оператора UPDATE, то обновляются все строки целевой таблицы, например:

UPDATE PERSON SET SUMD = SUMD/1000.

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

UPDATE PERSON SET SUMD=SUMD+500 WHERE 1 >= (SELECT COUNT (*) FROM HAVE_D WHERE PERSON. NOM = HAVE_D.NOM).

Показать весь текст
Заполнить форму текущей работой