Introduction

3장까지 SELECT를 이용하여, 테이블에 있는 모든 레코드를 가져 왔다. 하지만 특정 레코드만 필요할 경우가 있는데, 이때 WHERE 을 사용하여, 특정 레코드만 가져 오게 할 수 있다. 이번 장은 WHERE 절을 사용 하여, 특정 레코드만 가져오는 방법에 대해서 알아 본다.

Content

WHERE 절은 왜 필요한가?

DB에서 특정 레코드만 찾기 위해서이다.

WHERE 절을 어떻게 사용 하는가?

SELECT 문 내에서 사용 할 땐 FROM 절 바로 뒤에 위치 시켜야 한다.(WHERE 절은 SELECT 문 말고도 UPDATE 문 등에서 쓰일 수 있는데, 개념을 잡기 위해서 SELECT 에서만 우선 정한다. 이렇게 절들이 나누어져 있고, 이를 구조적으로 결합하여 데이터베이스와 이야기 하므로 SQL 이라고 이름을 지었다고 생각한다.)

만약, 물품 가격이 3.49 인 제품만 찾고 싶다면, 다음 처럼 SQL을 구성 시켜야 한다.

예) SELECT prod_name, prod_price FROM Products WHERE prod_price = 3.49;


이 처럼 WHERE 다음에 열 이름을 위치시키고 "=" 을 사용하는 것은 prod_price 가 3.49 인 것만 을 뜻한다. = 를 연산자라고 할 수 있는데, 연산자는 여러 종류가 있다. 다음 표를 보자


 연산자

설명

=

같음

<>

같지 않음

!=

같지 않음

A < B

B보다 A가 작음

A <= B

B와 A가 같거나 A가 작음

A  !< B

B와 A가 다르거나 A가 작음

 A > B

B보다 A가 큼

A >= B

B와 A가 같거나, A가 큼

A !> B

B와 A가 다르거나, A가 큼

 BETWEEN

지정된 두 값 사이에 있음

IS NULL

NULL 값임


굳이 DB에서 필터링 된 정보를 보아야 하는가?

응용프로그램에서 보아도 되지만, DB가 원격지에 있는 경우, 모든 데이터를 수신해야 되야 하므로 무척 비효율적이다. 또한 응용프로그램에서 필터링 하는 것은 DB가 필터링 하는것 보다 성능이 나쁘다. 특별한 경우가 아닐 경우, 무조건 DB에게 맞기고, 어쩔수 없이 응용프로그램에서 제어 해야 한다면(이럴 경우가 언제인지는 안겪어 봐서 모르겠다.), 그때 바꾸는게 좋다고 본다.

WHERE 절은 ORDER BY 와 같이 쓸 수 있는가?

같이 쓸수 있으며, 이때 WHERE 절은 ORDER BY 절 보다 먼저 있어야 하며, FROM 절 뒤에 있어야 한다.

문자열을 비교 할 땐 작은 따옴표(') 로 묶어 주어야 한다?

예) SELECT vend_id, prod_name FROM Products WHERE vend_id != 'DLL01';


BETWEEN 은 어떻게 사용 하는가?

BETWEEN은 두 값 사이에 있는 값들을 뜻하므로, 범위로 검색하고자 할 때 유용하다.

예) SELECT vend_id, prod_price, prod_name FROM Products WHERE prod_price BETWEEN 5 AND 10;


IS NULL 은 어떻게 사용 하는가?

IS NULL 은 0인것을 찾는게 아니라, NULL, 즉 없는 것을 찾는 것이다

예) SELECT vend_id, prod_price, prod_name FROM Products WHERE prod_price IS NULL;


주의 사항이 있는가?

!= 라든지 <> 라 든지 동일한 역활을 하지만, DBMS 마다, 지원여부가 있기 때문에 테스트는 해보고 하길 바란다.

Digression

다 좋은데, 조금 졸렵다. 책을 이미 한번 본 상태에서 다시 보면서 정리 하고 있어서 그런지 몇가지 무시하고 넘어간다. 그건 그렇고 putty 는 정말 좋은 프로그램이다.(진짜 여담..)

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기