[MariaDB Tutorial 번역 글]
- Select : https://rural-mouse.tistory.com/43
- Order By : https://rural-mouse.tistory.com/44
- Where : https://rural-mouse.tistory.com/45
- Distinct : https://rural-mouse.tistory.com/46
- Between : https://rural-mouse.tistory.com/48
- Like : https://rural-mouse.tistory.com/49
- In ←←
- Limit : https://rural-mouse.tistory.com/51
- Is Null : https://rural-mouse.tistory.com/52
- Joins : https://rural-mouse.tistory.com/53
- Inner Join : https://rural-mouse.tistory.com/54
- Left Join : https://rural-mouse.tistory.com/55
- Group By : https://rural-mouse.tistory.com/56
- Having : https://rural-mouse.tistory.com/59
- Subqueries : https://rural-mouse.tistory.com/60
- Insert : https://rural-mouse.tistory.com/61
- Insert Multiple Rows : https://rural-mouse.tistory.com/62
- Insert Into Select : https://rural-mouse.tistory.com/63
- Update : https://rural-mouse.tistory.com/64
원문 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-in/
여기에 있는 모든 예제는 MariaDB sample database인 nation을 가지고 진행됩니다.
만약 읽고 따라 해 보시는 게 목적이라면 다운로드를 받고 읽어보시길 추천합니다.
원본 링크 : https://www.mariadbtutorial.com/getting-started/mariadb-sample-database/
MariaDB의 in 연산자에 대한 소개
MairaDB의 In 은 리스트 안의 값들과 비교를 해주는 논리 연산자입니다.
expression IN (v1, v2, v3, ...)
In 연산자는 만약 표현식이 리스트 안의 어떤 값(v1, v2, v3, ...)이라도 매칭이 된다면 True를 반환해줍니다.
값 리스트는 콤마( , )로 나뉘어진 리터럴 값들의 리스트이거나 혹은 Select 명령구문으로 이루어진 또 다른 Result Set가 될 수도 있습니다.
expression in (select-statement)
Select 명령문은 반드시 하나의 Column에 대한 값들의 리스트를 반환해주어야 합니다. 그렇지 않으면 쿼리문에 오류가 발생하게 됩니다.
논리적으로 In 연산자는 다음의 표현과 같습니다.
expression = v1 or
expression = v2 or
expression = v3 or
...
따라서 다수의 or 연산자는 in 연산자로 바꾸어 코드를 좀더 깔끔하게 만들 수 있습니다.
Not in 연산자
not 연산자는 in 연산자를 부정합니다.
expression NOT IN (v1, v2, v3, ...)
다음 표현식은 syntactic sugar(문법을 깔끔하게 만들어 읽기 쉽게 만들어주는 것)입니다.
expression <> v1 AND
expression <> v2 AND
expression <> v3 AND
...
in 연산자는 대체로 Select, Delete, Update 명령문들의 Where 절에 사용됩니다.
MariaDB의 in 연산자 예제
샘플 데이터베이스의 countries Table을 사용하도록 하겠습니다.
A) MariaDB에서 숫자 값들의 리스트와 사용되는 in 연산자
다음은 in 연산자를 region_id 가 리스트 (1,2,3) 안에 있는 국가를 찾는 예제입니다.
select
name,
region_id
from
countries
where
region_id in (1,2,3)
order by
name;
이것은 다음 쿼리문과 동일합니다.
select
name,
region_id
from
countries
where
region_id = 1 or
region_id = 2 or
region_id = 3
order by
name;
B) MariaDB에서 Select 명령문과 쓰이는 in 연산자
다음은 region이 Asia인 region_id의 리스트를 반환해주는 명령문입니다.
select
region_id
from
regions
where
name like '%Asia%';
다음 쿼리에 표시된 대로 반환된 region_id 목록을 in 연산자의 입력으로 사용할 수 있습니다.
select
name,
region_id
from
countries
where
region_id in (
select
region_id
from
regions
where
name like '%Asia%'
)
order by name;
이번 튜토리얼에서는 List 안의 값들과 매칭이 되는지 확인해주는 in 연산자를 배워봤습니다.
다음은 쿼리에서 반환되는 row 수를 지정해주는 Limit에 대해 배워보겠습니다.
'번역 > MariaDB' 카테고리의 다른 글
[MariaDB Tutorial 번역] 9. Is Null (0) | 2021.07.02 |
---|---|
[MariaDB Tutorial 번역] 8. Limit (0) | 2021.06.30 |
[MariaDB Tutorial 번역] 6. Like (0) | 2021.06.29 |
[MariaDB Tutorial 번역] 5. Between (0) | 2021.06.27 |
[MariaDB Tutorial 번역] 4. Distinct (0) | 2021.06.27 |
댓글