-
2.8 SQL 데이터조작어(UPDATE, DELETE)SQL 과정 2019. 2. 8. 10:08
1. UPDATE문
가. 테이블에 저장된 데이터를 수정하기위해 사용
나. 기존의 행을 수정하는 것
다. 형식
1) 어던 행의 데이터를 수정할 것인지를 WHERE절의 조건으로 지정한다.
2) WHERE절을 사용하지 않을 경우 테이블에 있는 모든 행이 수정된다.
3) 그러므로, WHERE절 사용 유무를 신중히 결정해야한다.
4) 테이블에서 여러개의 컬럼값을 변경하고자 할 경우 SET절에 콤마( , )를 추가하여 컬럼 = 값을
나열해주면 된다.
5) UPDATE문의 SET절에 서브쿼리문을 기술하면 서브 쿼리를 수행한 결과로 내용이 변경된다.
6) 이 방법을 이용하면 다른 테이블에 저장된 데이터를 이용하여 해당 컬럼 값을 변경할수 있다.
* emp06 테이블의 deptno의 모든 행을 30으로수정한 것(WHERE조건 사용 안함)
*emp06 테이블의 sal 컬럼의 모든 행을 1.1로 곱하였다.(WHERE조건 사용 안함)
* emp06테이블의 hiredate컬럼의 모든 행을 현재 날짜로 수정(sysdate)[WHERE 사용안함]
* emp07테이블의 deptno컬럼의 값이 10인 경우 40으로 수정하였다.(WHERE조건 사용)
* MANAGER 값을 가지는 job컬럼을 조건(WHERE)으로 sal컬럼을 1.1을 곱하였다.
* hiredate컬럼 값의 첫번째 자리 두글자(SUBSTR)가 87인 경우 현재 날짜(sysdate)로 수정하였다.
* scott 값을 가진 ename컬럼을 조건으로 job컬럼과 deptno컬럼을 MANAGER, 40으로 수정하였다.
(다중 행 수정)
* ename컬럼의 값이 JAMES인 경우를 조건으로 hiredate를 현재날짜, sal 값을 7000, comm은 2000으로 수정
하였다,(다중 행 수정)
* deptno가 20인 경우 deptno가 40인 loc값으로 deptno 20의 loc값을 수정한다.(서브쿼리 사용)
2. DELETE문
가. 테이블에 저장되어 있는 데이터를 삭제
나. 테이블의 기존 행을 삭제하는 명령문
다. 형식
1) 테이블을 삭제할 때 WHERE절에 특정 조건을 부여하여 원하는 행만 삭제 가능
2) DELETE문에 WHERE절을 사용하지 않을 경우 테이블에 있는 모든 행이 삭제 되므로 주의 할것
* WHERE절 없이 DELETE문 사용(모든 데이터 삭제)[구조는 남아있다.]
* WHERE절 사용으로 deptno가 30인값을 가진 데이터만 삭제
* emp09 테이블의 deptno컬럼이 dept테이블의 dname이 SALES 값을 가지는 걸 조건으로
해당 데이터를 삭제한다.(서브쿼리, 다른 테이블 이용)
'SQL 과정' 카테고리의 다른 글
2.8 SQL 트랜잭션, 데이터베이스, 트렌잭션 제어필요성 (0) 2019.02.08 2.8 SQL 데이터 조작어(MERGE) (0) 2019.02.08 2.7 SQL 데이터 조작어(DML) INSERT (0) 2019.02.07 2.7 SQL 데이터 딕셔너리(USER_TABLE, ALL, DBA) (0) 2019.02.07 2.7 SQL 데이터 정의어(DROP, TRUNCATE, RENAME TABLE, 삭제명령어들의 차이점) (0) 2019.02.07