Вы находитесь на странице: 1из 3

UPDATE ОПЕРАТОР

Описание
Oracle оператор UPDATE используется для обновления существующих
записей в таблице в базе данных Oracle.
Есть 2 синтаксиса для UPDATE в Oracle в зависимости от того, что вы
выполняете, традиционное обновление или обновление одной таблицы с
данными из другой таблицы.
Синтаксис
Синтаксис оператора UPDATE при обновлении одной таблицы в
Oracle/PLSQL:
UPDATE table
SET column1 = expression1,
column2 = expression2,

column_n = expression_n
[WHERE conditions];
ИЛИ
Синтаксис Oracle оператора UPDATE при обновлении одной таблицы с
данными из другой таблицы:
UPDATE table1
SET column1 = (SELECT expression1
FROM table2
WHERE conditions)
[WHERE conditions];
Параметры или аргументы
column1, column2, … column_n
Столбцы, которые вы хотите обновить.
expression1, expression2,… expression_n
Новые значения, присвоенные для column1, column2, … column_n.
Так column1 будет присвоено значение expression1, column2 будет
присвоено значение expression2, и так далее.
WHERE conditions
Необязательный. Условия, которые должны быть выполнены для обновления
столбцов. Если не предусмотрено никаких условий, то все записи в таблице
будут обновлены.
Пример обновления одного столбца
Рассмотрим очень простой пример Oracle UPDATE.
UPDATE items
SET COLOR = 'Белый'
WHERE ITM_NUMBER = 'in06';
Этот Oracle UPDATE будет обновлять поле COLOR в ‘Белый’ в
таблице items, где ITM_NUMBER = in06.
Проверить
select * from items;
Пример обновления нескольких столбцов
Рассмотрим Oracle пример UPDATE, где вам потребуется обновить более
одного столбца с одним оператором UPDATE.
1. Вставить новую запись в таблицу PRICE_HISTORY
insert into PRICE_HISTORY
(PHY_START_DATE,PHY_START_TIME,PRICE, ITM_NUMBER) values
(current_date,'04-Apr-2020 12:30', 800, 'in09')
2. Увеличить цену товара с кодом in09 на 20%
UPDATE PRICE_HISTORY SET PRICE = price* 1.2 WHERE ITM_NUMBER
= 'in09';
Проверить информацию.
select * from PRICE_HISTORY;
3. Изменить описание и размер товара с кодом in06
UPDATE items
SET DESCRIPTION = 'Беговые женские',
RAZMER = 'M'
WHERE ITM_NUMBER = 'in06';
Пример обновления таблицы данными из другой таблицы
Рассмотрим Oracle пример UPDATE, который показывает, как обновить
таблицу данными из другой таблицы.
1. Создадим таблицу BRAK.
CREATE TABLE BRAK
( ITM_NUMBER VARCHAR2(10) NOT NULL references items
(ITM_NUMBER),
DESCRIPTION VARCHAR2(50) NOT NULL ,
CONSTRAINT BRAK_PK PRIMARY KEY ("ITM_NUMBER")
)
2. Добавить строку данных в таблицу BRAK.
insert into brak values ('in01', 'кривой шов')
insert into brak values ('in09', 'стертый логотип')

3. Вывести информацию из таблицы BRAK.


select * from brak
4. Обновить запись в таблице items товара под кодом in01 , который помечен
как бракованный. Заменить описание товара на описание, указанное в
таблице BRAK.
UPDATE ITEMS
SET DESCRIPTION = (SELECT DESCRIPTION FROM BRAK WHERE
brak.ITM_NUMBER= items.ITM_NUMBER)
where ITM_NUMBER= 'in01';