SQL 튜토리얼

SQL 홈 SQL 소개 SQL 구문 SQL 선택 SQL 선택 고유 SQL 어디에 SQL 및, 또는, 아님 SQL 순서 SQL 삽입 SQL Null 값 SQL 업데이트 SQL 삭제 SQL 상위 선택 SQL 최소 및 최대 SQL 개수, 평균, 합계 SQL 좋아요 SQL 와일드카드 SQL 입력 SQL 사이 SQL 별칭 SQL 조인 SQL 내부 조인 SQL 왼쪽 조인 SQL 권한 조인 SQL 전체 조인 SQL 자체 조인 SQL 유니온 SQL 그룹화 기준 SQL SQL 존재 모든 SQL SQL 선택 대상 선택에 SQL 삽입 SQL 케이스 SQL 널 함수 SQL 저장 프로시저 SQL 주석 SQL 연산자

SQL 데이터베이스

SQL DB 생성 SQL 삭제 DB SQL 백업 DB SQL 테이블 생성 SQL 삭제 테이블 SQL 변경 테이블 SQL 제약 조건 SQL이 널이 아님 SQL 고유 SQL 기본 키 SQL 외래 키 SQL 확인 SQL 기본값 SQL 인덱스 SQL 자동 증분 SQL 날짜 SQL 보기 SQL 주입 SQL 호스팅 SQL 데이터 유형

SQL 참조

SQL 키워드 MySQL 함수 SQL 서버 기능 MS 액세스 기능 SQL 빠른 참조

SQL 예제

SQL 예제 SQL 퀴즈 SQL 연습 SQL 인증서

SQL ANY 및 ALL 연산자


SQL ANY 및 ALL 연산자

및 연산자 ANYALL사용하면 단일 열 값과 다른 값 범위를 비교할 수 있습니다.


SQL ANY 연산자

ANY연산자 :

  • 결과로 부울 값을 반환합니다.
  • 하위 쿼리 값 중 하나라도 조건을 충족하는 경우 TRUE를 반환합니다.

ANY범위의 값 중 하나에 대해 작업이 참인 경우 조건이 참임을 의미합니다.

모든 구문

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

참고: 연산자 표준 비교 연산자(=, <>, !=, >, >=, < 또는 <=)여야 합니다.


SQL ALL 연산자

ALL연산자 :

  • 결과로 부울 값을 반환합니다.
  • 모든 하위 쿼리 값이 조건을 충족하면 TRUE를 반환합니다.
  • SELECT, WHEREHAVING문과 함께 사용됩니다.

ALL 범위의 모든 값에 대해 작업이 true인 경우에만 조건이 true임을 의미합니다. 

SELECT를 사용한 ALL 구문

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

WHERE 또는 HAVING이 있는 ALL 구문

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
  (SELECT column_name
 
FROM table_name
 
WHERE condition);

참고: 연산자 표준 비교 연산자(=, <>, !=, >, >=, < 또는 <=)여야 합니다.


데모 데이터베이스

다음은 Northwind 샘플 데이터베이스 의 "제품" 테이블에서 선택한 항목입니다.

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35
6 Grandma's Boysenberry Spread 3 2 12 - 8 oz jars 25
7 Uncle Bob's Organic Dried Pears 3 7 12 - 1 lb pkgs. 30
8 Northwoods Cranberry Sauce 3 2 12 - 12 oz jars 40
9 Mishi Kobe Niku 4 6 18 - 500 g pkgs. 97

"OrderDetails" 테이블 에서 선택 :

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15


SQL ANY 예

다음 SQL 문은 OrderDetails 테이블에서 Quantity가 10인 레코드를 찾으면 ProductName을 나열합니다(Quantity 열의 일부 값이 10이므로 TRUE가 반환됨).

예시

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);

다음 SQL 문은 OrderDetails 테이블에서 Quantity가 99보다 큰 레코드를 찾으면 ProductName을 나열합니다(Quantity 열에 99보다 큰 값이 있기 때문에 TRUE가 반환됨).

예시

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);

다음 SQL 문은 OrderDetails 테이블에서 Quantity가 1000보다 큰 레코드를 찾으면 ProductName을 나열합니다(Quantity 열에 1000보다 큰 값이 없기 때문에 FALSE를 반환함).

예시

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);

SQL ALL 예

다음 SQL 문은 모든 제품 이름을 나열합니다.

예시

SELECT ALL ProductName
FROM Products
WHERE TRUE;

다음 SQL 문은 OrderDetails 테이블의 모든 레코드에 Quantity가 10인 경우 ProductName을 나열합니다. Quantity 열에 값이 10일 뿐만 아니라 다양한 값이 있기 때문에 당연히 FALSE를 반환합니다.

예시

SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);