이제 마지막 단계인 데이터 삭제 방법을 알아보자.

1.단일 행 삭제
delete from student
where studno=1;
studno가 1인 학생의 데이터를 삭제한다. 여기서도 update와 마찬가지로 조건식을 꼭 써줘야 한다.
안그러면 student 테이블의 정보가 모두 날아가버린다.

2.서브쿼리를 이용한 삭제
자.. 먼저 서브쿼리를 이용한 삭제는 언제 쓰는지 한번 알아보자.
'학생 테이블에서 언론정보학과에 소속된 학생을 모두 삭제하라'는 예제가 있다.
여기서 문제는 학생 테이블에는 학과번호 컬럼은 있지만, 학과명 컬럼은 없다는 것이다.
대신 확과 테이블에는 학과명과, 학과번호가 모두 존재한다. 그렇다면 방법이 떠오르지 않는가? 이럴때 서브쿼리를 이용하면 된다.
delete from student
where deptno=(select deptno
                      from department
                      where dname='언론정보학과');
자, 이렇게 하면 서브쿼리에서
department테이블의
dname이 언론정보학과인 레코드의
deptno컬럼에 저장된 값이 조회되고, 이 값이 student의 deptno 컬럼 값에 들어가게 된다.
이렇게 다른 테이블의 내용과 join해서 값을 조회할 필요가 있을 때! 서브쿼리를 사용하는 것이다.
join이 무엇인지는 다음에 또 포스팅하기로 하고 일단 여기까지!


'SQL 언어 > 데이터 조작어(DML)' 카테고리의 다른 글

COMMIT과 ROLLBACK  (0) 2012.03.08
UPDATE  (0) 2012.03.08
INSERT-②  (0) 2012.03.08
데이터입력(INSERT)-①  (0) 2012.03.08
Posted by Engineer135
,