[Day 10 | DB] SQL `WHERE` 절과 조건 연산자 사용하기

y♡ding·2024년 10월 25일
0

데브코스 TIL

목록 보기
57/163

WHERE 절은 특정 행에 조건을 부여하여 필요한 데이터만 필터링하는 데 사용됩니다. WHERE 절에서는 비교, 논리, 패턴 매칭 등의 다양한 조건을 활용할 수 있습니다.


1. 기본 비교 연산자

  • =: 값이 특정 값과 일치하는 행을 찾음
  • != 또는 <>: 값이 특정 값과 일치하지 않는 행을 찾음
예제
  • 10번 부서에 해당하는 사원 정보 조회:
    select * from emp where deptno = 10;
  • 10번 부서가 아닌 사원 정보 조회:
    select * from emp where deptno != 10;
  • 10번 부서 사원의 특정 열 정보 출력 (사원번호, 이름, 급여, 부서번호):
    select empno, ename, sal, deptno from emp where deptno = 10;

2. 문자열 비교

  • 문자열 조건을 비교할 때는 단일 따옴표(' ')를 사용.
  • ASCII 코드를 기준으로 알파벳 비교 가능.
예제
  • 사원이름이 'king'인 사원 정보 조회:
    select * from emp where ename = 'king';
  • 이름이 알파벳 'b'보다 작은 사원 정보 조회:
    select empno, ename, sal, deptno from emp where ename < 'b';

3. 날짜 비교

  • 날짜 데이터와 비교할 때는 YYYY-MM-DD 형식으로 사용합니다.
예제
  • 2011년 12월 3일 입사한 사원 정보 조회 (사원번호, 이름, 입사일):
    select empno, ename, hiredate from emp where hiredate = '2011-12-03';

4. 논리 연산자

  • AND / OR 연산자로 다중 조건을 결합할 수 있습니다.
  • 특정 날짜 범위 내 데이터 검색에 BETWEEN 연산자를 사용할 수 있습니다.
  • LIKE 연산자를 통해 특정 패턴의 데이터를 검색할 수 있습니다.
예제
  • 2011년 입사한 사원 정보 조회 (사원번호, 이름, 급여):
    • AND 연산자:
      select empno, ename, sal from emp where hiredate >= '2011-01-01' and hiredate <= '2011-12-31';
    • BETWEEN 연산자:
      select empno, ename, sal from emp where hiredate between '2011-01-01' and '2011-12-31';
    • LIKE 연산자 (연도만 일치하는 데이터):
      select empno, ename, hiredate from emp where hiredate like '2011%';

5. NULL 값에 대한 조건

  • 특정 열이 NULL 값인지 확인할 때는 IS NULL을 사용.
  • IS NOT NULL은 NULL이 아닌 값만 필터링.
예제
  • 보너스를 받는 사원의 이름과 연봉 조회 (연봉 = 급여 * 12 + 보너스):
    select ename, sal * 12 + comm from emp where comm is not null;

6. 문자열 패턴 매칭 (LIKE)

  • LIKE 연산자를 통해 특정 패턴을 가진 문자열을 검색합니다.
  • _: 단일 문자에 대응, %: 0개 이상의 문자를 대체
예제
  • 문자로 시작하는 이름 검색 (_ 사용):
    select empno, ename from emp where ename like '문_';
  • 문자로 시작하는 이름 검색 (% 사용):
    select empno, ename from emp where ename like '문%';
  • 이름에 특정 단어 포함 검색 (% 사용):
    select empno, ename from emp where ename like '%co%';
  • 이름이 네 글자인 사원 정보 조회:
    select empno, ename, hiredate from emp where ename like '____';
    또는
    select ename from emp where char_length(ename) = 4;

요약

  • WHERE: 조건에 따라 특정 행을 필터링하여 필요한 데이터만 조회.
  • 비교 연산자 (=, !=, <>, <, >, <=, >=)
  • 논리 연산자 (AND, OR) 및 패턴 매칭 (LIKE, BETWEEN)
  • NULL 검사: IS NULL / IS NOT NULL
  • LIKE 연산자와 패턴을 통해 문자를 포함하는 조건 검색 가능.

이러한 WHERE 절과 조건을 활용하면, SQL에서 더 정교한 데이터 검색이 가능합니다.

0개의 댓글

관련 채용 정보