이전 단계에서 테이블에 데이터를 기록하는 ( 레코드를 삽입하는 ) 구문을 배웠습니다. 그러면 테이블에서 데이터를 지우는 ( 레코드를 지우는 ) 구문을 실습해 보겠습니다.

1. delete from 구문

 그러면 예제로 다음과 같은 테이블과 레코드들이 있다고 가정하겠습니다.


 예제를 위해서 여러 레코드들을 삽입했습니다. ( 여러분들도 예제를 위해서 insert into 구문을 이용해서 예제 레코드들을 삽입해 보세요. ) 기본적으로 레코드를 삭제하는 delete from 구문은 다음과 같은 구조를 갖고 있습니다.



 "테이블_이름"부분에 삭제하고 싶은 레코드가 있는 테이블의 이름을 넣어 줍니다. 예를 들면, customer 테이블에 어떤 레코드를 삭제하고 싶을 경우 delete from customer ... 이런 식이 되겠죠. where 뒤의 조건에는 삭제하고 싶은 테이블의 조건을 명시합니다. 즉, customer_num의 값이 2인 레코드를 삭제하고 싶다면, delete from customer where customer_num=2가 되겠죠. 이 때, where 절에 의해서 선택되는 레코드는 유일하지 않습니다. 즉, where 뒤에 customer_name='ais' 라고 하면 customer_name의 값이 'ais'인 모든 레코드가 삭제 됩니다.


그럼 예제를 통해서 알아보도록 하겠습니다. 먼저 다음의 SQL문을 실행해보겠습니다.

delete from customer where customer_name=4;

 의미상으로는 customer_name의 값이 4인 customer_name이 abc인 레코드가 삭제가 될 것입니다. 실행해 보도록 하겠습니다.


 예상대로 customer_num이 4인 레코드가 삭제 되었습니다.

 그럼 다음으로 customer_addr의 값이 seoul인 레코드를 지워보도록 하겠습니다. 다음의 sql 문을 실행하도록 하겠습니다.

delete from customer where customer_addr='seoul';


Mysql의 경우 위 sql문을 실행 시켰을 경우 "2 rows affected" 라는 메시지가 뜹니다. 즉, 2개의 레코드가 영향을 받아서 제거 되었다라는 뜻입니다. 실제로 테이블에서 customer_addr의 값이 'seoul'인 모든 레코드가 제거 되었습니다.

 마지막으로 테이블에 있는 모든 레코드를 지우는 방법입니다. 하나하나 지우다 보면 시간낭비이고 자원낭비가 되는데, sql에서는 테이블의 모든 레코드를 지우는 방법도 제공합니다.


  눈치가 빠르신 분은 아시겠지만 위에서 언급했던 delete from 구문에서 where 절만 뺀 형태입니다. 특별히 '어떤 레코드를 지워라'라고 명시를 하지 않으면 테이블에 있는 모든 레코드를 삭제하게 됩니다. 굉장히 편리하죠.

 그럼 실제로 customer 테이블에 있는 모든 레코드를 지워보도록 하겠습니다. 다음의 sql 문을 실행하도록 하겠습니다.

delete from custmer;


 위와 같이 테이블의 모든 레코드들이 삭제 된 것이 보이며 mysql DBMS로 부터 2 rows affected 라는 메시지가 도착한 것을 볼 수 있습니다.


이제 테이블의 스키마를 설계해서 테이블을 생성하고 테이터( 레코드 )를 삽입, 삭제 하고, 테이블을 삭제 할 수가 있습니다. 이제 우리는 DB로 많은 것들을 할 수 있게 되었습니다.




 
.




요즘 집에 다들 MS Office 하나씩은 가지고 계실 겁니다. MS Office의 내용물 중에 잘 사용하지 않는 것들 중에 하나가 바로 Access입니다. 데이터의 관리는 대부분 Excel로 하기 때문에 잘 사용되지 않는 서비스 중에 하나죠. 하지만 컴퓨터 공학도의 경우 SQL이라고 하는 데이터베이스 쿼리 언어를 실습하기 위해서 사용해 보신적이 있을 겁니다.

 저도 겨울방학때 데이터베이스를 다시 실습하면서 공부하려고 DBMS를 찾고 있는데, 다른 DBMS들은 윈도우에 설치하기 힘들거나 라이센스를 얻기가 귀찮거나 힘들었습니다. 결국 가장 접근하기 쉬운 Access의 DBMS를 사용하기로 했습니다. ( Access가 사용하고 있는 DBMS 엔진은 Jet라고 하는 엔진이더군요. ) 구하기도 쉽고 간단한 SQL 실습을 하기에 가볍고 좋다고 생각을 합니다.

 참고로 저는 Access 2007 버젼을 사용하고 있습니다. 다른 버전과는 약간 다를 수도 있으므로 유념하시기 바랍니다.



 먼저 Access를 실행하면 위와 같은 화면이 뜰 겁니다. 새 데이터베이스를 선택하고 오른쪽의 만들기(C) 버튼을 누릅니다. ( 참고로 밑의 주요 온라인 서식 파일의 경우는 Access를 이용해서 자주 사용하는 서식을 빨리 만들 수 있게 합니다. )




 그러면 위와 같이 기본적인 DB가 생성이 됩니다. 물론 스프레트 시트처럼 "새 필드 추가"를 이용해서 DB 테이블을 설계해도 좋지만 일단 SQL 실습을 위해서 Access를 사용한 것이므로 SQL 편집을 해보도록 하겠습니다.




 상단의 만들기 탭을 선택한뒤 "쿼리 디자인"을 선택합니다. 그럼 다음과 같은 화면이 뜨게 됩니다.




"테이블 표시"라는 창은 가볍게 닫아 주고, Query1 이라는 탭에서 우클릭을 한 뒤 "SQL보기(Q)"를 선택합니다.




 이제 SQL문을 써 넣을 텍스트 에디터 창이 나오게 됩니다. 여기에 여러분이 원하는 SQL문을 써 넣고 실행을 하면 해당 SQL문의 결과가 DB에 반영이 될 것입니다. 예를 들어서 하나만 실행해 보도록 하겠습니다. 다음과 같은 SQL문을 써 넣도록 하겠습니다.


create table customer
( customer_name    char(20),
  customer_street     char(30),
  customer_city        char(30),
  primary key (customer_name)
);




 실행할 SQL문을 텍스트 편집 영역에 써 넣고 툴바의 "실행" 버튼을 누릅니다. 그러면 여러분이 써 넣은 SQL문이 실행되어 결과가 DB에 반영 될 것입니다.




customer라는 테이블을 만드는 SQL문을 써 넣고 실행을 한 결과 customer 테이블이 생성되었습니다.

물론 Access를 이용해서 DB 실습을 하는데에는 분명 한계가 존재합니다. 또 한 상용 DBMS의 사용법과는 다소 차이가 있기 때문에 실무에 바로 적용하는 데에도 무리가 따릅니다. 하지만 SQL을 처음 사용해 보시는 분들과 DB를 처음 배우고 싶으신 분, 간단한 SQL문의 테스트를 원하시는 분들에게는 가볍게 쓰실 수 있는 DBMS가 Access를 이용한 방법이 아닌가 생각 됩니다.


-- 요약 --
Access의 사용법..



+ Recent posts