1. WHERE 절 이란?
바로 앞의 강좌에서 간단한 WHERE절의 사용 예를 보았습니다. WHERE절은 특정 조건을 만족하는 대상을 검색하고자 할 때 그 조건을 지정하는데 사용합니다. 아래의 예(앞의 강좌에서 본 예입니다)는 titles 테이블에서 모든 컬럼을 검색하되 title_id가 'PS2091'인 것만을 검색하게 됩니다.
USE Pubs GO SELECT * FROM titles WHERE title_id = 'PS2091' |
이렇듯 WHERE 다음에 원하는 조건문을 지정하여 검색의 대상을 설정할 수 있습니다.
2. WHERE 절의 예
몇가지 예제를 봐 가면서 WHERE 절의 사용 방법을 확인해보도록 하겠습니다.
[예제1]
가장 단순한 사용 방법은 컬럼 = '값' 의 형식으로 컬럼이 만족할 값을 지정하는 것입니다. 다음의 예는 qty 컬럼이 40보다 큰, 즉 qty > 40 의 조건을 만족하는 대상을 검색하는 예입니다.
USE Pubs GO SELECT * FROM sales WHERE qty > 40 |
[예제2]
만족할 조건이 하나가 아니고 여러개인 경우 'AND' 와 'OR' 를 적절히 사용하여 지정할 수 있습니다. 다음의 예는 qty 가 20보다 크거나 같고 또한 qty 가 40 보다 작거나 같은 조건을 만족하는 대상을 검색하는 예입니다.
USE Pubs GO SELECT * FROM sales WHERE qty >= 20 AND qty <= 40 |
참고로 위 쿼리문은 다음과 같이 BETWEEN 을 사용하여 작성 할 수도 있습니다. 실제 쿼리가 수행될 때는 바로위의 쿼리문처럼 분석되어 수행됩니다. 결과는 같습니다.
USE Pubs SELECT * FROM sales WHERE qty BETWEEN 20 AND 40 |
[예제3]
다음의 예는 OR를 사용하여 두개의 조건중 하나만 만족하는 경우 참이 되어 조건을 만족하는 예입니다.
USE Pubs SELECT * FROM sales WHERE qty > 30 OR ord_num = '6871' |
[예제4]
WHERE 절에 순수한 컬럼만 오라는 법은 없습니다. 다음의 예는 datetime 형태의 컬럼인 ord_date에서 년도만을 구하여 년도가 1994인 대상만을 검색하는 것입니다. 이때 year() 함수가 사용되었는데, 이 함수는 Date에서 년도만을 얻어내는 함수입니다.
USE Pubs GO SELECT * FROM sales WHERE year(ord_date) = 1994 |
[예제5]
서브 쿼리를 WHERE 절에 사용할 수 있습니다. 서브 쿼리에 대해서는 나중에 자세히 살펴보도록 하겠습니다. 여기서는 다양한 WHERE 절의 사용 가능성만을 확인해보시기 바랍니다. 다음의 예는 qty가 최대값인 경우는 검색하는 것입니다.
USE Pubs GO SELECT * FROM sales WHERE qty = (SELECT MAX(qty) FROM sales) |
3. 정리
정확한 WHERE 절의 사용은 정확한 데이터를 검색하기 위한 필수요소 입니다. 또한 어떻게 WHERE 문을 사용하느냐에 따라 검색의 속도가 차이가 날 수 있습니다. 기초강좌에서 다루었던 인덱스(Index)의 경우 WHERE 절의 조건을 만족하는 대상을 빠르게 찾기 위해서 필수적으로 고려되어야 할 사항입니다. 즉, 데이터의 검색은 정확하게! 빠르게! 이루어져야 하며 이를 위하여 WHERE 절과 인덱스(Index)를 우리는 심사 숙고해서 사용해야 합니다.
--------------------------------------------------------------------------------------------출처 : http://www.sqlworld.pe.kr
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|