where절과 연산자

송민지·2025년 1월 13일
0

DataBase

목록 보기
3/3

where

  • 조건에 일치하는 행만을 골라내어 조회하는데 사용
  • 각 행에 조건식을 대입하여 결과가 'true'일 경우에만 출력된다.
select [1][2]...[열n]
from [조회할 테이블 이름]
where [조건식]

AND, OR

  • sql은 기본적으로 대소문자를 구별하지 않는다.
  • 하지만, 테이블안에 있는 문자 혹은 문자열 데이터는 대,소문자를 구분한다.
select *
from emp
where deptno = 30 
and(or) job = 'CLERK';

where절 조건식의 개수

  • 제한이 없다
select [1][2]...[열n]
from [조회할 테이블 이름]
where [조건식1]
and [조건식2]
or [조건식 3]
...
and [조건식n]

산술 연산자

select *
from emp
where sal * 12 = 36000;

비교 연산자

select *
from emp
where sal >= 3000;

비교 연산자로 문자 비교하기

select *
from emp
where ename >= 'F';

  • ENAME >= 'F'는 ENAME 열 값의 첫 문자와 'F'를 비교했을 때 'F'와 같거나 뒤에 있는 문자열을 출력 하라는 뜻

    연산자사용법의미
    =A = BA값과 B값이 같을경우 결과값 반환
    ------------------
    !=A! = B
    <>A <> BA값과 B값이 다를 경우 결과값 반환
    ^=A ^= B

    논리 부정 연산자

select *
from emp
where sal >= 3000;

IN 연산자

  • 특정 열에 해당하는 조건을 어러 개 지정하여 조회하는 연산자
select [1][2]...[열n]
from [조회할 테이블 이름]
where 열 이름 IN (데이터1, 데이터2 .. 데이터n);
select * 
from emp
where job in ('MANAGER', 'SALESMAN', 'CLERK');select * 
from emp
where job = 'MANAGER'
or job = 'SALESMAN'
or job = 'CLERK';

의 결과값은 같습니다. 

IN절 부정연산자

select * 
from emp
where job not in ('MANAGER', 'SALESMAN', 'CLERK');

BETWEEN A AND B

  • A와 B 사이의 값을 조회하여 출력할 경우 더 간소하게 작성할 수 있는 연산자
  • 일정 범위 내의 데이터를 조회할 때 사용
select [1][2]...[열n]
from [조회할 테이블 이름]
where 열 이름 between 최솟값 and 최댓값;
select *
from emp
where sal between 2000 and 3000;

like 연산자와 와일드 카드

like 연산자

select *
from emp
where ename like 'S%'

종류의미
-어떤 값이든 상관없이 한 개의 문자 데이터를 의미
%길이와 상관없이(문자가 없는 경우도 포함하여) 모든 문자 데이터를 의미

두 번째 글자가 L인 사원만 출력하기

select *
from emp
where ename like '_L%'

AM이 포함되어 있는 사원 데이터만 출력

select *
from emp
where ename like '%AM%'

Is Null 연산자

  • Null은 값이 존재하지 않는 상태, 혹은 무슨 값인지 확정되지 않은 상태를 의미한다. (값이 없다고 의도적으로 알려주는 것)
  • 만일 데이터 값이 0 이라면, 데이터의 값은 0이다.

집합 연산자

  • 두 개 이상의 select문의 결과값을 연결할 때 사용
  • 두 개의 select를 연결할 때, 출렬하려는 열 개수와 자료형이 순서대로 일치해야 오류가 나지 않는다.
종류설명
UNION연결된 select문의 결과값을 합집합으로 묶어 중복값은 제거한 후 결과값을 반환한다.
UNION ALL연결된 select문의 결과값을 중복값을 포함하여 합집합으로 묶어 결과값을 출력한다.
MINUS먼저 작성된 A문에서 B문의 결과값을 차집합 처리하여 결과값을 출력한다.(B에는 없는 값 출력)
INTERSECTA와 B의 교집합을 출력한다.

UNION

SELECT empno, ename, sal, deptno
FROM emp 
WHERE deptno = 10
UNION 
SELECT empno, ename, sal, DEPTNO 
FROM emp 
WHERE deptno = 10;

UNION ALL

SELECT empno, ename, sal, deptno
FROM emp 
WHERE deptno = 10
UNION all
SELECT empno, ename, sal, DEPTNO 
FROM emp 
WHERE deptno = 10;

MINUS

SELECT empno, ename, sal, deptno
FROM emp 
minus
SELECT empno, ename, sal, DEPTNO 
FROM emp 
WHERE deptno = 10;

INSERSECT

SELECT empno, ename, sal, deptno
FROM emp 
intersect
SELECT empno, ename, sal, DEPTNO 
FROM emp 
WHERE deptno = 10;

profile
항상 밝게

0개의 댓글