MySQL WHERE 절: AND, OR, IN, NOT IN 쿼리 예

WHERE 절은 무엇입니까? MySQL?

WHERE 절 in MySQL 는 지정된 SQL 명령문에 영향을 받는 데이터 또는 행의 정확한 기준을 지정하는 데 사용되는 키워드입니다. WHERE 절은 INSERT, UPDATE, SELECT 및 DELETE와 같은 SQL 명령문과 함께 사용하여 레코드를 필터링하고 데이터에 대한 다양한 작업을 수행할 수 있습니다.

우리는 데이터베이스 이전 튜토리얼의 SELECT 문을 사용합니다. SELECT 문은 쿼리된 데이터베이스 테이블의 모든 결과를 반환했습니다.

그러나 쿼리 결과를 지정된 조건으로 제한하려는 경우가 있습니다. SQL의 WHERE 절은 이러한 상황에서 유용합니다.

WHERE 절 MySQL
WHERE 절 MySQL

WHERE 절 구문

WHERE 절에 사용되는 기본 구문은 MySQL SELECT WHERE 문은 다음과 같습니다.

SELECT * FROM tableName WHERE condition;

여기를 클릭하십시오.

  • "SELECT * FROM 테이블 이름" 표준입니다 SELECT 문
  • "어디" 선택 쿼리 결과 집합을 제한하는 키워드입니다. "상태" 결과에 적용할 필터입니다. 필터는 범위, 단일 값 또는 하위 쿼리일 수 있습니다.

이제 다음을 살펴보겠습니다. 실용적인 예.

멤버십 번호 1을 기준으로 멤버 테이블에서 멤버의 개인 정보를 가져오고 싶다고 가정하면 다음 스크립트를 사용하여 이를 달성할 수 있습니다.

SELECT * FROM `members` WHERE `membership_number` = 1;

위 스크립트를 실행하면 MySQL 워크 벤치 “myflixdb”에서 다음과 같은 결과가 생성됩니다.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm

WHERE 절은 다음과 결합됩니다 – 논리적 Opera바위 산

WHERE 조건 MySQL AND 논리 연산자와 함께 사용하는 경우 지정된 모든 필터 조건이 충족되는 경우에만 실행됩니다.

이제 실제 예를 살펴보겠습니다. 2년에 개봉된 카테고리 2008의 모든 영화 목록을 얻고 싶다고 가정하면 아래에 표시된 스크립트를 사용하여 이를 달성합니다.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
위 스크립트를 실행하면 MySQL “myflixdb”에 대한 워크벤치는 다음과 같은 결과를 생성합니다.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

WHERE 절은 다음과 결합됩니다 – OR 논리적 Opera바위 산

WHERE 절을 OR 연산자와 함께 사용하면 지정된 필터 기준 중 하나 또는 전체가 충족되는 경우에만 실행됩니다.
다음 스크립트는 카테고리 1 또는 카테고리 2의 모든 영화를 가져옵니다.
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
위 스크립트를 실행하면 MySQL “myflixdb”에 대한 워크벤치는 다음과 같은 결과를 생성합니다.
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

WHERE 절은 다음과 결합됩니다 – IN 키워드

어디에 MySQL 절을 IN 키워드와 함께 사용하면 IN 키워드에 제공된 값 목록과 값이 일치하는 행에만 영향을 줍니다. 그만큼 MySQL IN 문은 사용해야 할 OR 절의 수를 줄이는 데 도움이 됩니다.
다음 MySQL WHERE IN 쿼리는 Membership_number가 1, 2 또는 3인 행을 제공합니다.
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

위 스크립트를 실행하면 MySQL “myflixdb”에 대한 워크벤치는 다음과 같은 결과를 생성합니다.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com

WHERE 절은 다음과 결합됩니다 – 키워드

NOT IN 키워드와 함께 사용되는 WHERE 절은 NOT IN 키워드에 제공된 값 목록과 값이 일치하는 행에 영향을 주지 않습니다.
다음 쿼리는 membership_number가 1, 2 또는 3이 아닌 행을 제공합니다.
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

위 스크립트를 실행하면 MySQL “myflixdb”에 대한 워크벤치는 다음과 같은 결과를 생성합니다.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

WHERE 절은 다음과 결합됩니다 – 비교 Opera토르

보다 작음(), 같음(=), 같지 않음() 비교 연산자는 WHERE 절과 함께 사용할 수 있습니다.

= 동일

다음 스크립트는 동일 비교 연산자를 사용하여 members 테이블에서 모든 여성 멤버를 가져옵니다.
SELECT * FROM `members` WHERE `gender` = 'Female';

위 스크립트를 실행하면 MySQL “myflixdb”에 대한 워크벤치는 다음과 같은 결과를 생성합니다.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

> 보다 큰

다음 스크립트는 결제 테이블에서 2,000보다 큰 모든 결제를 가져옵니다.
SELECT * FROM `지불` WHERE `amount_paid` > 2000;
위 스크립트를 실행하면 MySQL “myflixdb”에 대한 워크벤치는 다음과 같은 결과를 생성합니다.
payment_id membership_number payment_date description amount_paid external_reference_number
1 1 23-07-2012 Movie rental payment 2500 11
3 3 30-07-2012 Movie rental payment 6000 NULL

< > 같지 않음

다음 스크립트는 카테고리 ID가 1이 아닌 모든 영화를 가져옵니다.
SELECT * FROM `movies` WHERE `category_id`<> 1;
위 스크립트를 실행하면 MySQL “myflixdb”에 대한 워크벤치는 다음과 같은 결과를 생성합니다.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8

요약

  • SQL WHERE 절은 SELECT, UPDATE 또는 작업의 영향을 받는 행 수를 제한하는 데 사용됩니다. 쿼리 삭제.
  • SQL의 WHERE 조건은 AND, OR 등의 논리 연산자와 ,= 등의 비교 연산자와 함께 사용할 수 있습니다.
  • AND와 함께 사용하는 경우 논리 연산자, 모든 기준을 충족해야 합니다.
  • OR 논리 연산자와 함께 사용하는 경우, 다음 기준 중 하나를 충족해야 합니다.
  • IN 키워드는 값 목록과 일치하는 행을 선택하는 데 사용됩니다.

뇌 맛보기

25년 06월 2012일에 제 시간에 반납되지 않은 대여 영화 목록을 얻고 싶다고 가정해 보겠습니다. SQL WHERE 명령문 절을 less than 비교 연산자와 AND 논리 연산자와 함께 사용하여 이를 달성할 수 있습니다.
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;

위 스크립트를 실행하면 MySQL 워크벤치는 다음과 같은 결과를 제공합니다.

reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0