Set value based on a select statement : Update « Insert Update Delete « Oracle PL/SQL Tutorial






SQL> create table dept
  2  ( deptno        int primary key,
  3    sum_of_salary number
  4  );

Table created.

SQL>
SQL> create table emp
  2  ( empno      int primary key,
  3    deptno     references dept,
  4    salary     number
  5  );

Table created.

SQL>
SQL> insert into dept ( deptno ) values ( 1 );

1 row created.

SQL>
SQL> insert into dept ( deptno ) values ( 2 );

1 row created.

SQL> insert into emp ( empno, deptno, salary )
  2  values ( 100, 1, 55 );

1 row created.

SQL>
SQL> insert into emp ( empno, deptno, salary )
  2  values ( 101, 1, 50 );

1 row created.

SQL>
SQL>
SQL> update dept
  2     set sum_of_salary =
  3     ( select sum(salary)
  4         from emp
  5            where emp.deptno = dept.deptno )
  6   where dept.deptno = 1;

1 row updated.

SQL>
SQL> commit;

Commit complete.

SQL> select * from emp;

     EMPNO     DEPTNO     SALARY
---------- ---------- ----------
       100          1         55
       101                    50


SQL> select * from dept;

    DEPTNO SUM_OF_SALARY
---------- -------------
         1           105

         2


SQL>
SQL>
SQL>
SQL> drop table dept cascade constraint;

Table dropped.

SQL>
SQL> drop table emp cascade constraint;

Table dropped.








4.3.Update
4.3.1.Modifying Rows Using the UPDATE Statement
4.3.2.Change more than one column value in update statement
4.3.3.If the WHERE clause were omitted, all the rows would be updated.
4.3.4.Change multiple rows and multiple columns in the same UPDATE statement
4.3.5.Use function in set clause
4.3.6.Writing an UPDATE Statement Containing a Subquery
4.3.7.Use TO_DATE('December 31, 2005, 11:30 P.M.','Month dd, YYYY, HH:MI P.M.') in update statement
4.3.8.Set clause with math expression
4.3.9.Update with subquery
4.3.10.Update a subquery
4.3.11.Set value based on a select statement
4.3.12.Change department name to lower case
4.3.13.Update data from existing column
4.3.14.Update four columns
4.3.15.Update one row
4.3.16.Update salary based on average salary
4.3.17.Update the emp table, converting emp names to uppercase
4.3.18.subquery in update statement
4.3.19.To update the salary of all emps to the maximum salary in the corresponding department (correlated subquery):