안녕하세요. Jun~입니다.

한해 동안 알티베이스에 관심 가져 주시고 힘을 실어주신 여러분들에게 진심으로
감사드립니다. 2008년 새해에는 지금보다 더 많은 성원 부탁드리며 저도 새로운
각오와 자세로 화이팅 하겠습니다. 연말연시 알차게 보내시고 새해 복 많이 받으세요.

----------------------------------------------------------------------------------------------------------------------------
"How to 알티베이스 7"에서는 저번 시간에 이어서 SQL 에 대해 알아보겠습니다.
----------------------------------------------------------------------------------------------------------------------------

How to  알티베이스 6에서는 테이블의 정보를 조회하는 select, 테이블을 생성하는
create, 테이블에 필요한 속성값을 추가하는 insert에 대해서 알아보았습니다.

오늘은 테이블을 변경하고 삭제해 보는 것에 대해서 알아보려고 합니다.

  * 테이블 변경 및 삭제를 알아보기에 앞서 "DESC(RIBE)"에 대해서 잠시 살펴보고
    갈께요. DESC는 테이블 정의를 나타내는 필수적인 명령어 입니다. 테이블의 각
    칼럼명, 데이터 형, 길이와 크기까지 모두 확인 할 수 있습니다.
   
    저번 시간에 만들어본 dept 테이블 정보를 확인해 볼께요.
    (문법형식 : DEPT table_name)   

사용자 삽입 이미지

   

1) delete
    → delete문은 테이블에서 로우를 제거합니다.
    → 형    식 : DELETE [FROM] table_name [WHERE condition]
    → 예    제 : delete from dept  where deptno =20;
       
    우선 테이블의 로우를 지우기 전에 dept 테이블에 들어있는 값들을 살펴 볼께요.
    How to 6에서 알아본 "select * from dept"로 검색해 보겠습니다.   
사용자 삽입 이미지


 
   총 4개의 로우가 존재하는 군요. 그럼 delete에 예제처럼 전 deptno가 20인
   로우를 삭제하려고 합니다. 실행해 보겠습니다.
사용자 삽입 이미지



   dept  테이블에서 deptno가 20인 로우가 삭제된 것을 확인했습니다.

2) update
    → 데이터베이스에 있는 기존의 데이터를 변경할때 사용합니다.
    → 형    식 : UPDATE table_name SET column_name1 = expression1
                          [, column_name2 = expression2] ... [ WHERE condition]
                        * 여기에서 table_na,e은 변경할 테이블 명이며, column_name은 변경
                           되는 테이블의 칼럼, expression은 SQL 수식이고, condition은 조건
                           문 입니다.
    → 예   제 : update dept
                       set dname = 'SEOUL'
                       where deptno = 30;
                       * 이것은  테이블의 deptno가 30인 로우에 대해서 dname을 CHCAGO
                          에서 SEOUL로 변경하는 예제입니다. 실행해 볼께요.
사용자 삽입 이미지



3) drop /  truncate
    → 테이블을 삭제 할때 사용합니다. 단 여기서 말한 테이블 삭제는 엄밀히 말해서
         DROP을 말합니다. 즉, 구조와 데이터 모두를 삭제하죠. 그러나 TRUNCATE를
         수행했을 경우 테이블 구조는 여전히 남아 있습니다.
       
        실습을 통해서 명령어의 차이점을 알아보겠습니다.
    → 형    식 : DROP TABLE table_name;
                        TRUNCATE TABLE table_name;  
    → 예    제 : drop table dept;
                         truncate table dept_ex;
사용자 삽입 이미지

      * drop table dept를 수행한 경과 테이블이 삭제되어 desc로 dept테이블 검색을
         하면 존재하지 않은 테이블이라고 나오는군요.
         그럼 truncate를 실행해서 둘의 차이점을 비교해 볼까요?
사용자 삽입 이미지

  
    * truncate를 수행하고 select를 이용하여 dept_ex테이블을 검색한 결과 로우값은
      존재하고 있지 않지만 테이블 구조는 여전히 남아 있군요.

오늘은 테이블의 변경 / 삭제에 대해서 알아봤습니다. 열심히 만들어논 테이블을
한줄의 명령으로 날려버리다니 가슴 아프시죠?! 물론 간단한 롤백으로 지운 테이블을
되살릴 수 있지만 drop, truncate 명령어는 롤백이 불가능 합니다.

하지만 백문이 불여일타!!!
한번더 테이블을 생성하고 삭제를 해본다면 다시 명령어 사용법을 위해 책이나 웹을
뒤지지 않아도 될꺼에요. 그럼 오늘도 수고하셨습니다.

Posted by 알 수 없는 사용자