sql 집합 연산 자 사용 방법

2683 단어 집합 연산 자
(1)IN 연산 자:고정 집합 중 하나 와 일치 하 는 데 사용 할 수 있 습 니 다.예 를 들 어 한 집합 안의 년도(2001,2003,2005)가 있 으 면 다음 과 같다.

SELECT * FROM T_Book
WHERE FYearPublished IN(2001,2003,2005)
IN 연산 자 는 고정된 집합 에서 일치 하 는 것 을 지원 하 는 것 외 에 도 동적 집합 방식 으로 일치 하 는 것 도 지원 합 니 다.예 를 들 어 다음 과 같은 방식 이다.

SELECT * FROM T_Reader
WHERE FYearOfJoin IN
(
select FYearPublished FROM T_Book
)
(2)ANY 와 SOME 집합 연산 자:SQL SERVER 에서 ANY 와 SOME 는 동의어 이 고 이들 의 용법 은 기능 과 같다.IN 연산 자 에 비해 ANY 와 SOME 는 다른 비교 자(대(>),같 음(=),작 음(<),크 고 같 음(>=),작 음 등)와 공동으로 사용 해 야 하 며 비교 자 는 그들의 앞 에 있어 야 한다

SELECT * FROM T_Reader
WHERE FYearOfJoin =ANY
(
select FYearPublished FROM T_Book
)
메모:IN 연산 자 와 달리 ANY 와 SOME 연산 자 는 고정된 집합 과 일치 하지 않 습 니 다.예 를 들 어 아래 SQL 문 구 는 잘못된 것 입 니 다.

SELECT * FROM T_Book
WHERE FYearPublished<ANY(2001,2003,2005)
(3)ALL 집합 연산 자:SQL SERVER 에서 ALL 연산 자 는 다른 비교 자(((>)보다 크 고(=),(<)보다 작 으 며(<)보다 크 고(>=)보다 크 고 작 음 등)와 공동으로 사용 해 야 하 며 비교 자 는 그들의 앞 에 있어 야 한다

SELECT * FROM T_Book
WHERE FYearPublished<ALL
(
SELECT FYearOfJoin FROM T_Reader
)
주의:
I.ANY 와 SOME 연산 자 와 같 고 모든 연산 자 역시 고정된 집합 과 일치 하지 않 습 니 다.예 를 들 어 아래 의 SQL 문 구 는 잘못된 것 입 니 다

SELECT * FROM T_Book
WHERE FYearPublished<ALL(2001,2003,2005)
II.ALL 연산 자 를 사용 하 는 것 에 대해 주의해 야 할 것 이 있 습 니 다.바로 이 ALL 서브 조회 결과 가 비어 있 을 때 일치 하 는 결 과 는 빈 방식 으로 처리 하 는 것 이 아니 라 모든 일치 성공 에 해당 합 니 다.따라서 ALL 연산 자 를 사용 할 때 이 문 제 는 시스템 에서 BUG 를 일 으 키 기 쉬 우 므 로 사용 할 때 주의해 야 한다.예 를 들 면

SELECT * FROM T_Book
WHERE FYearPublished<ALL
(
SELECT FYearOfJoin FROM T_Reader
WHERE FProvince = 'JiangSu'
)
모든 하위 검색 결과 가 비어 있 으 면 SELECT FYearOFJoin FROM T 를 가 져 옵 니 다.Reader 의 모든 결 과 는 성공 적 으로 일치 하 는 결과 입 니 다.
(4)EXISTS 집합 연산 자:IN,ANY,SOME,ALL 등 연산 자 와 달리 EXISTS 연산 자 는 단일 항목 연산 자 입 니 다.열 과 일치 하지 않 기 때문에 일치 하 는 집합 을 원 하지 않 습 니 다.EXISTS 연산 자 는 각 줄 의 짝 짓 기 검색 여 부 를 검사 하 는 데 사 용 됩 니 다.EXISTS 는 하위 검색 결과 가 비어 있 는 지,결과 가 비어 있 으 면 false 로 일치 하 는 지,그렇지 않 으 면 일치 하 는 결 과 는 true 라 고 볼 수 있 습 니 다.

SELECT * FROM T_Category
WHERE EXISTS
(
SELECT * FROM T_Book
WHERE T_Book. FCategoryId = T_Category.FId
AND T_Book. FYearPublished<1950
)
EXISTS 이후 하위 조회 에서 SQL 대 TCategory 표 의 모든 줄 데 이 터 를 하위 조회 에 일치 시 키 고 T 를 테스트 합 니 다.Book 표 에 FCategoryId 필드 값 이 현재 클래스 의 키 값 과 같 고 출판 연도 가 1950 년 이전 인 책 이 있 는 지 여부 입 니 다.

좋은 웹페이지 즐겨찾기