[SQL] LOGICAL OPERATOR

Aiden·2024년 2월 6일
0

SQL

목록 보기
8/21
post-thumbnail

사용목적

조건의 진위 여부를 테스트하거나 여러 조건을 연결하기 위한 SQL 문법입니다.
주로 WHERE에 많이 사용됩니다.

문법

조건을 모두 만족하는 경우 TRUE (AND)

보통 '그리고, ~면서'와 같은 내용에 사용합니다.

SELECT column1, column2,...
FROM tablename
WHERE condition1 AND condition2 AND conditon3...;

조건을 하나라도 만족하는 경우 TRUE (OR)

보통 '또는, ~이거나'와 같은 내용에 사용합니다.

SELECT column1, column2,...
FROM tablename
WHERE condition1 OR condition2 OR conditon3...;

추가내용

AND와 OR은 함께 사용이 가능하나 AND를 먼저 인식하기 때문에 OR을 사용하는 경우 조건에 따라 적절히 OR문을 괄호를 사용해 묶어주어야 한다.

SELECT column1, column2,...
FROM tablename
WHERE conditon1 AND (conditon2 OR condition3);

조건을 모두 만족하지 못하는 경우 TRUE (NOT)

보통 '~아닌'과 같은 내용에 사용합니다.

SELECT column1, column2,...
FROM tablename
WHERE NOT condition;

추가내용

NOT은 AND, OR, BETWEEN, IN, LIKE와도 함께 쓰일 수 있다.

조건 값이 범위 안에 있으면 TRUE (BETWEEN, AND)

보통 '~사이에'와 같은 내용에 사용합니다.

SELECT column1, column2,...
FROM tablename
WHERE column BETWEEN value1 AND value2;

목록 안에 조건이 존재하는 경우 TRUE (IN)

보통 '~에 해당하는'과 같은 내용에 사용합니다.

SELECT column1, column2,...
FROM tablename
WHERE column IN (value1, value2,...);

조건 값이 패턴에 맞으면 TRUE (LIKE)

보통 '~로 시작하는, ~로 끝나는, ~를 포함하는'과 같은 내용에 사용합니다.

SELECT column1, column2,...
FROM tablename
WHERE column LIKE pattern;

PATTERN의 형식

  • % : 어떤 내용이 와도 상관 없음의 의미
  • _ : 글자 수를 의미

예시)

  • A% : A로 시작하는
  • %A : A로 끝나는
  • %A% : A가 포함된
  • _A% : 2번째 글자가 A인
  • A_% : A로 시작하고 최소 2글자 이상인
  • A_ : A로 시작하고 2글자인
  • A%B : A로 시작하고 B로 끝나는

예시

가정)

  • TABLE NAME : testTABLE
  • COLUMN 1 NAME : ID
  • COLUMN 2 NAME : NAME

조건을 모두 만족하는 경우 TRUE (AND)

ID COLUMN이 1이고 NAME COLUMN이 aiden인 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE ID = 1 AND NAME = 'aiden';

조건을 하나라도 만족하는 경우 TRUE (OR)

ID COLUMN이 1이거나 NAME COLUMN이 aiden인 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE ID = 1 OR NAME = 'aiden';

추가내용

ID COLUMN이 1이거나 ID COLUMN이 2인 DATA 중 NAME COLUMN이 aiden인 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE (ID = 1 OR ID = 2) AND NAME = 'aiden';

조건을 모두 만족하지 못하는 경우 TRUE (NOT)

ID COLUMN이 1이 아닌 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE NOT ID = 1;

조건 값이 범위 안에 있으면 TRUE (BETWEEN, AND)

ID COLUMN이 1과 3사이에 있는 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE ID BETWEEN 1 AND 3;

목록 안에 조건이 존재하는 경우 TRUE (IN)

ID COLUMN의 값이 1, 3, 5에 해당하는 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE ID in (1, 3, 5);

조건 값이 패턴에 맞으면 TRUE (LIKE)

NAME COLUMN이 a로 시작하는 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE NAME LIKE 'a%';

NAME COLUMN이 a로 끝나는 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE NAME LIKE '%a';

NAME COLUMN이 a를 포함하는 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE NAME LIKE '%a%';

NAME COLUMN이 a로 시작하고 5글자인 ID와 NAME을 출력하라.

SELECT ID, NAME
FROM testTABLE
WHERE NAME LIKE 'a____';
profile
aiden

0개의 댓글