Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
MySQL IN
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2023-08-14
2022-11-23
2533
모든 쿼리는 연습용 데이터베이스를 통해서 실행해 볼 수 있다. [MySQL & SQL 스터디 준비](https://www.joinc.co.kr/w/mysql_study_ready) 를 참고하여 실습환경을 구축하자. ## MySQL IN Operator * **IN** 연산자를 사용하면 **WHERE**절에 여러 값을 지정 할 수 있다. * 값은 콤마(,) 로 구분하여 괄호로 묶으며, 이 값 중에서 하나 이상과 일치하면 조건에 맞는 것으로 평가한다. 즉 **OR** 연산을 수행한다. ## IN 구문 ```sql SELECT column_name(s) FROM table_name WHERE column_name IN(value1, value2, ...); ``` 서브쿼리(sub query)를 조건으로 넣을 수 있다. ```sql SELECT _column_name(s)_ FROM _table_name_ WHERE _column_name_ IN (_SELECT STATEMENT_); ``` ## Example **Northwind** 데이터베이스의 "customers" 테이블에는 고객 정보가 들어 있다. ```sql SELECT CustomerID, companyName, ContactName, ContactTitle, Address, City FROM customers; ``` | CustomerID | CompanyName | ContractName | ContactTitle | Address | City | | ----------- | ------------- | ------------- | ------------- | -------- | -------- | | ALFKI | Alfreds Futterkiste | Maria Anders | Sales Representative | Obere Str. 57 | Berlin | | ANATR | Ana Trujillo Emparedados y helados | Ana Trujillo | Owner | Avda. de la Constitución 2222 | México D.F. | | ANTON | Antonio Moreno Taquería | Antonio Moreno | Owner | Mataderos 2312 | México D.F. | | AROUT | Around the Horn | Thomas Hardy | Sales Representative | 120 Hanover Sq. | London | | BERGS | Berglunds snabbköp | Christina Berglund | Order Administrator | Berguvsvägen 8 | Luleå | | BLAUS | Blauer See Delikatessen | Hanna Moos | Sales Representative | Forsterstr. 57 | Mannheim | | BLONP | Blondel père et fils | Frédérique Citeaux | Marketing Manager | 24, place Kléber | Strasbourg | | BOLID | Bólido Comidas preparadas | Martín Sommer | Owner | C/ Araquil, 67 | Madrid | | BONAP | Bon app' | Laurence Lebihan | Owner | 12, rue des Bouchers | Marseille | | BOTTM | Bottom-Dollar Markets | Elizabeth Lincoln | Accounting Manager | 23 Tsawassen Blvd. | Tsawassen | | BSBEV | B's Beverages | Victoria Ashworth | Sales Representative | Fauntleroy Circus | London | | CACTU | Cactus Comidas para llevar | Patricio Simpson | Sales Agent | Cerrito 333 | Buenos Aires | | CENTC | Centro comercial Moctezuma | Francisco Chang | Marketing Manager | Sierras de Granada 9993 | México D.F. | Germany, France, UK(영국)에 거주하는 모든 고객을 선택한다. ```sql SELECT CustomerID, companyName, ContactName, ContactTitle, Address, Country from customers WHERE Country IN ('Germany', 'France', 'UK'); ``` | CustomerID | CompanyName | ContractName | ContactTitle | Address | Country | | ----------- | ------------- | ------------- | ------------- | ---------- | ------- | | ALFKI | Alfreds Futterkiste | Maria Anders | Sales Representative | Obere Str. 57 | Germany | | AROUT | Around the Horn | Thomas Hardy | Sales Representative | 120 Hanover Sq. | UK | | BLAUS | Blauer See Delikatessen | Hanna Moos | Sales Representative | Forsterstr. 57 | Germany | | BLONP | Blondel père et fils | Frédérique Citeaux | Marketing Manager | 24, place Kléber | France | | BONAP | Bon app' | Laurence Lebihan | Owner | 12, rue des Bouchers | France | | BSBEV | B's Beverages | Victoria Ashworth | Sales Representative | Fauntleroy Circus | UK | Germany, France, UK(영국)에 이외의 지역에 거주하는 모든 고객을 선택한다. ``` sql SELECT CustomerID, companyName, ContactName, ContactTitle, Address, Country from customers WHERE Country NOT IN ('Germany', 'France', 'UK'); ``` | CustomerID | CompanyName | ContractName | ContactTitle | Address | Country | | ----------- | ------------- | ------------- | ------------- | ---------- | ------- | | ANATR | Ana Trujillo Emparedados y helados | Ana Trujillo | Owner | Avda. de la Constitución 2222 | Mexico | | ANTON | Antonio Moreno Taquería | Antonio Moreno | Owner | Mataderos 2312 | Mexico | | BERGS | Berglunds snabbköp | Christina Berglund | Order Administrator | Berguvsvägen 8 | Sweden | | BOLID | Bólido Comidas preparadas | Martín Sommer | Owner | C/ Araquil, 67 | Spain | | BOTTM | Bottom-Dollar Markets | Elizabeth Lincoln | Accounting Manager | 23 Tsawassen Blvd. | Canada | | CACTU | Cactus Comidas para llevar | Patricio Simpson | Sales Agent | Cerrito 333 | Argentina | | CENTC | Centro comercial Moctezuma | Francisco Chang | Marketing Manager | Sierras de Granada 9993 | Mexico | **suppliers** 테이블에는 제품 공급자 정보가 들어 있다. | SuppilerID | CompanyName | City | Country | | ------------ | ------------- | ------- | ---------- | | 1 | Exotic Liquids | London | UK | | 2 | New Orleans Cajun Delights | New Orleans | USA | | 3 | Grandma Kelly's Homestead | Ann Arbor | USA | | 4 | Tokyo Traders | Tokyo | Japan | | 5 | Cooperativa de Quesos 'Las Cabras' | Oviedo | Spain | | 6 | Mayumi's | Osaka | Japan | | 7 | Pavlova, Ltd. | Melbourne | Australia | 공급자와 동일한 국가에 있는 모든 고객을 선택한다. ```sql SELECT CustomerID, companyName, ContactName, ContactTitle, Address, Country FROM customers WHERE Country IN (SELECT Country From suppliers); ``` | CustomerID | CompanyName | ContractName | ContactTitle | Address | Country | | ----------- | ------------- | ------------- | ------------- | ---------- | ------- | | ALFKI | Alfreds Futterkiste | Maria Anders | Sales Representative | Obere Str. 57 | Germany | | AROUT | Around the Horn | Thomas Hardy | Sales Representative | 120 Hanover Sq. | UK | | BERGS | Berglunds snabbköp | Christina Berglund | Order Administrator | Berguvsvägen 8 | Sweden | | BLAUS | Blauer See Delikatessen | Hanna Moos | Sales Representative | Forsterstr. 57 | Germany | | BLONP | Blondel père et fils | Frédérique Citeaux | Marketing Manager | 24, place Kléber | France | | BOLID | Bólido Comidas preparadas | Martín Sommer | Owner | C/ Araquil, 67 | Spain | | BONAP | Bon app' | Laurence Lebihan | Owner | 12, rue des Bouchers | France | ## IN 연산자의 장점 Germany, France, UK(영국)에 이외의 지역에 거주하는 모든 고객을 선택하는 쿼리는 아래와 같이 OR로도 작성 할 수 있다. ```sql SELECT CustomerID, companyName, ContactName, ContactTitle, Address, Country FROM customers WHERE Country = 'Germany' OR Country = 'France' OR Country= 'UK'; ``` 하지만 IN 으로 할 경우 아래와 같은 장점이 있다. * 목록의 값이 여러개 일때, IN 연산자가 OR 보다 쓰고 읽기에 좋다. * 조건 순서를 보다 쉽게 관리 할 수 있다. * IN 연산자가 OR 연산자보다 빠르다. * 서브쿼리문을 사용 할 수 있다. ## 참고 [SQL Study With MySQL](https://www.joinc.co.kr/w/sql_study_with_mysql_index) 에서 MySQL과 관련된 다른 문서들을 읽을 수 있습니다.
Recent Posts
MLOps with Joinc - Kubeflow 설치
Vertex Gemini 기반 AI 에이전트 개발 05. 첫 번째 LLM 애플리케이션 개발
LLama-3.2-Vision 테스트
Vertex Gemini 기반 AI 에이전트 개발 04. 프롬프트 엔지니어링
Vertex Gemini 기반 AI 에이전트 개발 03. Vertex AI Gemini 둘러보기
Vertex Gemini 기반 AI 에이전트 개발 02. 생성 AI에 대해서
Vertex Gemini 기반 AI 에이전트 개발 01. 소개
Vertex Gemini 기반 AI 에이전트 개발-소개
생성 AI 모델 Flux.1 설치 및 사용
GPT를 이용한 Reranker 테스트
Archive Posts
Tags
database
mysql
sql
SQL tutorial with MySQL
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags