MySQL 강좌 : 제 8강 - 조건절
조건절(WHERE)
테이블(Table)
에서 특정 조건을 만족하는 데이터를 추출할 때는 조건절(WHERE)
을 활용하여 데이터의 범위를 제한합니다.
조건절을 활용하지 않고 데이터를 추출한다면 전체 데이터를 대상으로 처리하므로 오랜 시간이 소요되고, 원하는 데이터를 추출할 수 없습니다.
그러므로 조건절을 통해 활용 목적에 부합하는 데이터를 추출할 수 있습니다.
비교 연산자
비교 연산자를 적용하는 방법은 SELECT {열의 이름} FROM `{데이터베이스의 이름}`.`{테이블의 이름}` WHERE {조건};
의 구조로 명령어를 실행합니다.
위와 같은 조건으로 명령어를 실행한다면, num_sequences
이 5
이하의 값을 가지는 값을 모두 조회합니다.
비교 연산자의 종류는 다음과 같습니다.
연산자 | 의미 | 비고 |
---|---|---|
= | 같음 | |
!= | 같지 않음 | |
<> | 같지 않음 | ISO 표준 |
> | 초과(크다) | |
>= | 이상(같거나 크다) | |
< | 미만(작다) | |
<= | 이하(같거나 작다) |
논리 연산자
논리 연산자는 조건과 조건을 결합하는 용도로 사용됩니다.
논리 연산자를 적용하는 방법은 SELECT {열의 이름} FROM `{데이터베이스의 이름}`.`{테이블의 이름}` WHERE {조건} {논리 연산자} {조건};
의 구조로 명령어를 실행합니다.
위와 같은 조건으로 명령어를 실행한다면, num_sequences
이 5
이하의 값을 가지며, location
이 Angola
인 값을 모두 조회합니다.
더 다양한 조건을 연결할 때에는 소괄호()
를 활용하여 적용합니다.
소괄호의 유/무에 따라서 결과가 달라집니다.
위와 같은 조건으로 명령어를 실행한다면, num_sequences
이 5
이하의 값을 가지며, location
이 Angola
이거나 Argentina
인 값을 모두 조회합니다.
논리 연산자의 종류는 다음과 같습니다.
연산자 | 의미 | 비고 |
---|---|---|
AND | 앞에 있는 조건과 뒤에 있는 조건이 모두 참 값 | |
OR | 앞에 있는 조건이나 뒤에 있는 조건 중 하나라도 참 값 | |
NOT | 뒤에 있는 조건의 결과를 반대로 변경 | 참 값일 경우, 거짓 값으로 변경 |
범위 연산자
A와 B 사이의 범위를 갖는 값을 조회할 때는 범위 연산자를 활용합니다.
{열의 이름} 조건 A AND 조건 B
의 구조로 명령어를 실행합니다.
위와 같은 조건으로 명령어를 실행한다면, date
가 2020-05-10
에서 2020-05-11
사이의 값을 모두 조회합니다.
범위 연산자는 다음과 같습니다.
연산자 | 의미 | 비고 |
---|---|---|
A BETWEEN B | A와 B 사이의 값 | A와 B를 모두 포함 A <= Value <= B |
집합 연산자
집합 연산자는 목록 안에 있는 값에 부합하는 데이터를 조회할 때 활용합니다.
{열의 이름} IN (A, B, C, ...)
의 구조로 명령어를 실행합니다.
위와 같은 조건으로 명령어를 실행한다면, location
이 Angola
이거나 Argentina
인 값을 모두 조회합니다.
집합 연산자는 다음과 같습니다.
연산자 | 의미 | 비고 |
---|---|---|
IN (A, B, C …) | 범위 내의 값을 하나라도 만족 | A OR B OR C … |
속성 확인 연산자
속성 확인 연산자는 열의 속성이 NULL
값을 지니는 데이터를 조회할 때 활용합니다.
{열의 이름} IS {NOT} NULL
의 구조로 명령어를 실행합니다.
위와 같은 조건으로 명령어를 실행한다면, location
이 NULL
값 이면서, variant
이 NULL
값이 아닌 데이터를 모두 조회합니다.
속성 확인 연산자의 종류는 다음과 같습니다.
연산자 | 의미 | 비고 |
---|---|---|
IS NULL | NULL 값을 갖는 데이터 | |
IS NOT NULL | NULL 값을 갖지 않는 데이터 |
패턴 연산자
패턴 연산자는 패턴 문자열 안에 있는 값에 부합하는 데이터를 조회할 때 활용합니다.
{열의 이름} LIKE '{패턴 문자열}'
의 구조로 명령어를 실행합니다.
위와 같은 조건으로 명령어를 실행한다면, location
이 글자가 r
이 들어가거나, A
로 시작하거나, 두 번째 글자가 n
으로 시작해야 합니다.
패턴 문자열은 %
와 _
가 존재합니다.
%
는 모든 문자열을 의미하며, %r%
은 r
앞 뒤로 어떤 문자가 와도 상관이 없다는 의미가 되어, 문자열 중 r
이 포함되어 있는 경우 참이 됩니다.
그러므로, A%
는 A
문자열의 모든 문자가 되어 A
로 시작하는 문자열이 됩니다.
_
는 하나의 문자를 의미하며, _n
는 n
앞에 하나의 문자만 허용하여 An
, cn
, 3n
등의 문자 구조만 가능합니다.
만약, _n%
로 사용한다면, n
앞에 하나의 문자만 허용하고 n
뒤에 모든 문자를 허용하여 India
, Indonesia
등의 문자가 올 수 있습니다.
패턴 연산자는 다음과 같습니다.
연산자 | 의미 | 비고 |
---|---|---|
LIKE ‘패턴 문자열’ | 패턴 문자열을 만족하는 값 | |
_ | 한 글자 | |
% | 모든 문자 |
연산자 우선 순위
다양한 연산자를 조합하여 사용할 경우, 우선시 되어 계산되는 연산자 순위가 있습니다.
즉, 쿼리의 순서보다 연산자 우선 순위가 높은 연산자 부터 계산됩니다.
연산자의 순위는 다음과 같습니다.
순위 | 연산자 | 비고 |
---|---|---|
1 | 소괄호 | |
2 | 비교 연산자 | |
3 | 집합 연산자, 속성 확인 연산자, 패턴 연산자 | |
4 | 범위 연산자 | |
5 | NOT 연산자 | |
6 | AND 연산자 | |
7 | OR 연산자 |
댓글 남기기