Summary: in this tutorial, you’ll how to learn how to use the Oracle UPDATE statement to modify data in a table.
Introduction to the Oracle UPDATE statement #
To changes existing values in a table, you use the following Oracle UPDATE statement:
UPDATE table_name SET column1 = value1, column2 = value2, column3 = value3, ... WHERE condition; Code language: SQL (Structured Query Language) (sql) In this syntax:
- First, specify the name of the table which you want to update.
- Second, provider the name of the column and its news value you want to modify. If you update more than two columns, you separate each expression
column = valueby a comma. Thevalue1,value2, orvalue3can be literals or a subquery that returns a single value. Note that theUPDATEstatement allows you to update as many columns as you want. - Third, specify which row to update in the condition of the
WHEREclause. TheWHEREclause is optional. If you omit it, theUPDATEstatement will update all rows of the table.
Oracle UPDATE examples #
Let’s create a new table with some sample data for the demonstration.
First, create a new table named parts:
CREATE TABLE parts ( part_id NUMBER GENERATED BY DEFAULT AS IDENTITY, part_name VARCHAR(50) NOT NULL, lead_time NUMBER(2,0) NOT NULL, cost NUMBER(9,2) NOT NULL, status NUMBER(1,0) NOT NULL, PRIMARY KEY (part_id) ); Code language: SQL (Structured Query Language) (sql) Second, insert some sample data to the parts table:
INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('sed dictum',5,134,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('tristique neque',3,62,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('dolor quam,',16,82,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('nec, diam.',41,10,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('vitae erat',22,116,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('parturient montes,',32,169,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('metus. In',45,88,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('at, velit.',31,182,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('nonummy ultricies',7,146,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('a, dui.',38,116,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('arcu et',37,72,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('sapien. Cras',40,197,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('et malesuada',24,46,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('mauris id',4,153,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('eleifend egestas.',2,146,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('cursus. Nunc',9,194,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('vivamus sit',37,93,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('ac orci.',35,134,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('arcu. Aliquam',36,154,0); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('at auctor',32,56,1); INSERT INTO parts (part_name,lead_time,cost,status) VALUES ('purus, accumsan',33,12,1); Code language: SQL (Structured Query Language) (sql) Third, retrieve data from the parts table:
SELECT * FROM parts ORDER BY part_name; Code language: SQL (Structured Query Language) (sql) 
Updating one column of a single row #
The following UPDATE statement changes the cost of the part with id 1:
UPDATE parts SET cost = 130 WHERE part_id = 1;Code language: SQL (Structured Query Language) (sql) To verify the update, you use the following query:
SELECT * FROM parts WHERE part_id = 1; Code language: SQL (Structured Query Language) (sql) 
Updating multiple columns of a single row #
The following statement uses the UPDATE statement to update the lead time, cost, and status of the part whose id is 5.
UPDATE parts SET lead_time = 30, cost = 120, status = 1 WHERE part_id = 5; Code language: SQL (Structured Query Language) (sql) 
Updating multiple rows example #
The following uses the UPDATE statement to increase the costs of all parts in the parts table by 5%:
UPDATE parts SET cost = cost * 1.05;Code language: SQL (Structured Query Language) (sql) Here is the result:

Summary #
- Use the Oracle
UPDATEstatement to change existing values in a table.