SQL 조건 검색
SQL에서 SELECT를 이용한 검색을 하는 경우에 많은 프로그래머들이 테이블의 모든 레코드를 불러와서 사용하는 경우는 없을 겁니다.
원하는 레코드만을 가져와서 원하는 컬럼을 뽑아서 사용하기를 바랍니다.
그래서 조건 검색을 하게 됩니다.
조건 검색 문법
기존 검색 문법인 SELECT [테이블열,...] FROM [테이블명,...]; 에서 WHERE 키워드 문법을 추가하면 조건 검색 문법이 됩니다.
조건 검색을 추가한 문법은 다음과 같습니다.
SELECT [테이블열,...] FROM [테이블명,...] WHERE [검색조건];
Ex) 예를 들면, pin_info라는 다음과 같은 테이블이 존재하고 레코드도 들어가 있다고 가정합니다.
다음과 같은 명령어를 실행합니다.
SELECT p_id, cr_time FROM pin_info WHERE p_id>10 AND p_id<50;
그 결과 조건에 맞는 다음과 같은 내용의 검색 내용이 나오게 됩니다.
위 예에서 결과는 열을 p_id, cr_time 으로 지정 되었고,
행의 조건식은 10 < p_id < 50 로 지정되어 10초과 50미만의 검색 결과를 얻어 낼 수 있습니다.
행(레코드)의 조건식
여기서는 주로 사용하는 "비교 연산자" , "NULL 연산자" , "논리 연산자" , " LIKE 연산자"를 간단하게 설명하겠습니다.
- 비교 연산자
1) = 연산자
좌변과 우변에 값이 같은 조건에 맞는 경우 행(레코드)를 추출합니다.
ex) p_id=25
2) <> 연산자
좌변과 우변에 값이 다른 조건에 맞는 경우 행(레코드)를 추출합니다.
ex) p_id<>25
3) > 연산자
좌변이 우변에 값보다 큰 경우 행(레코드)를 추출합니다.
ex) p_id>25
4) >= 연산자
좌변이 우변에 값보다 크거나 같은 경우 행(레코드)를 추출합니다.
ex) p_id>=25
5) < 연산자
좌변이 우변에 값보다 작은 경우 행(레코드)를 추출합니다.
ex) p_id<25
6) <= 연산자
좌변이 우변에 값보다 작거나 같은 경우 행(레코드)를 추출합니다.
ex) p_id<=25
- NULL 연산자
1) IS NULL 연산자
NULL인 값을 찾는 역할을 합니다.
ex) p_id IS NULL
- 논리 연산자
: 1개 이상의 조건식을 사용할 때, 사용하기 위한 연산자입니다.
1) AND
왼쪽 조건식 , 오른쪽 조건식의 두가지 조건을 모두 만족하는 경우의 행(레코드)를 추출합니다.
ex) p_id < 15 AND p_id >10 // 10 < p_id < 15 를 만족하는 레코드 집합
2) OR
왼쪽 조건식 , 오른쪽 조건식의 두가지 조건 중 하나라도 만족하는 경우의 행(레코드)를 추출합니다.
ex) p_id < 15 OR p_id >10 // p_id > 10 인 레코드 집합 + p_id < 15인 레코드 집합
3) NOT
그 조건식에 대해서 만족하지 않는 여집합 행(레코드)를 추출합니다.
ex) NOT(p_id < 15 AND p_id >10) // p_id <= 10 인 레코드 집합 + p_id >= 15 레코드 집합
- LIKE 연산자
1) LIKE
조건의 문자가 들어가는 컬럼값의 레코드를 추출합니다.
'%' 기호는 임의 문자열 또는 빈 문자열 대용으로 사용한다.
메타 문자를 검색하려고 하면, '\'를 앞에 붙여준다. ex) \% , \# , \_ 와 같이 사용한다.
ex) WHERE 컬럼명 LIKE '%SQL%' // SQL이라는 글자가 들어가는 컬럼 값을 가진 레코드 집합.
ex) 컬럼안의 값은 "나는 SQL을 잘하고 싶다."와 같은 레코드를 찾습니다.
이상으로 조건 검색에 대한 간단히 마치겠습니다.