최고의 SQLite는 하위 쿼리 튜토리얼 2024년, 이 튜토리얼에서는 SELECT 문 하위 쿼리,예,INSERT 문 하위 쿼리,예,UPDATE 문 하위 쿼리,예,DELETE 문 하위 쿼리,예,를 배울 수 있습니다.
하위 쿼리 또는 중첩 된 쿼리 또는 내부 쿼리가 쿼리에 포함 된 WHERE 다른 SQLite는 쿼리 내의 절.
서브 쿼리를 사용하여 데이터를 더 검색되는 데이터를 제한하는 조건으로 메인 쿼리에서 사용될 반환한다.
하위 쿼리는 SELECT, INSERT, UPDATE와 함께 사용하고, 문 등 = 같은 연산자를 사용하여 동반 할 수있다 삭제 될 수 있으며, <,>,> =, <=, IN, BETWEEN 좋아한다.
다음은 따라야합니다 하위 쿼리 몇 가지 규칙이 있습니다 :
하위 쿼리는 괄호로 묶어야합니다.
하위 쿼리 SELECT 절은, 하나의 열을 미칠 수있는 주요 질의, 선택된 열 하위 쿼리 비교에 여러 열 않는.
메인 쿼리에 의해 ORDER를 사용할 수 있지만 ORDER BY는 하위 쿼리에서 사용할 수 없습니다. 당신은 하위 쿼리에서 GROUP BY를 사용할 수 BY 순서와 동일 기능.
부질 복귀보다 한 줄보다 단지 예 IN 연산자로, 다치 연산자와 사용될 수있다.
연산자 서브 쿼리를 사용할 수없는 사이 그러나 BETWEEN 서브 쿼리에서 사용될 수있다.
하위 쿼리는 일반적으로 SELECT 문에 사용됩니다. 다음과 같이 기본 구문은 다음과 같습니다
SELECT COLUMN_NAME [COLUMN_NAME] 표 1 FROM [표 2] WHERE COLUMN_NAME의 OPERATOR (SELECT COLUMN_NAME [COLUMN_NAME] 표 1 FROM [표 2] [WHERE])
가정하자 회사 테이블에는 다음과 같은 기록이있다 :
ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0 2 알렌 (25) 텍사스 15000.0 3 테디 (23) 노르웨이 20000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
이제, SELECT 문 하위 쿼리를 살펴 보자 :
sqlite가> SELECT * 회사 FROM WHERE ID IN (SELECT ID 회사 FROM WHERE SALARY> 45000);
이것은 다음과 같은 결과를
ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0
하위 쿼리는 INSERT 문을 사용할 수 있습니다. INSERT 문은 다른 테이블에 데이터를 반환하는 하위 쿼리를 사용합니다. 서브 쿼리에서 선택된 데이터는 임의의 문자, 날짜 또는 숫자 함수 변경 될 수 있습니다.
다음과 같이 기본 구문은 다음과 같습니다
테이블 _ INTO INSERT [(컬럼 1 [, 2 열])] SELECT [* | 컬럼 1 [, 2 열] 표 1 FROM [표 2] [WHERE VALUE의 OPERATOR]
COMPANY_BKP 회사에게 테이블 구조와 유사한를 가정하고 작성하는 동일한 CREATE TABLE을 사용할 수 있습니다, 그냥 테이블 COMPANY_BKP의 이름을 변경했습니다. 지금 COMPANY_BKP에 회사 전체 테이블을 복사 다음과 같이 구문은 다음과 같습니다
sqlite가> COMPANY_BKP INTO INSERT 회사 FROM SELECT * WHERE ID IN (SELECT ID ) 회사 FROM;
하위 쿼리는 UPDATE 문을 사용할 수 있습니다. 하위 쿼리의 UPDATE 문을 사용하는 경우, 하나 또는 여러 개의 열이 테이블에 업데이트됩니다.
다음과 같이 기본 구문은 다음과 같습니다
UPDATE 테이블 SET COLUMN_NAME = NEW_VALUE [WHERE 운영자 [의 VALUE] (SELECT COLUMN_NAME ) TABLE_NAME FROM [WHERE)]
우리가 COMPANY_BKP 테이블, 백업 COMPANY 테이블이 있다고 가정하자.
이 회사 테이블 원래의 0.50 배를 업데이트 (27) 클라이언트 SALARY 같은 모든보다 나이 또는 다음 예제 :
sqlite가> UPDATE 회사 SET의 SALARY = SALARY * 0.50 WHERE AGE IN (COMPANY_BKP로부터 나이를 선택 WHERE AGE> = 27);
이는 다음과 같이 테이블의 마지막 COMPANY 기록의 두 라인에 영향을 미칠 것이다 :
ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 10000.0 2 알렌 (25) 텍사스 15000.0 3 테디 (23) 노르웨이 20000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 42500.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
하위 쿼리는 위에서 언급 한 다른 문장처럼, DELETE 문을 사용할 수 있습니다.
다음과 같이 기본 구문은 다음과 같습니다
TABLE_NAME에서 삭제 [WHERE 운영자 [의 VALUE] (SELECT COLUMN_NAME ) TABLE_NAME FROM [WHERE)]
우리가 COMPANY_BKP 테이블, 백업 COMPANY 테이블이 있다고 가정하자.
다음 예는 같거나 나이 27 회사 테이블의 모든 고객 레코드 큰 삭제 :
sqlite가> 회사에서 삭제 WHERE AGE IN (COMPANY_BKP로부터 나이를 선택 WHERE AGE> 27);
이는 다음과 같이 테이블의 마지막 COMPANY 기록의 두 라인에 영향을 미칠 것이다 :
ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 2 알렌 (25) 텍사스 15000.0 3 테디 (23) 노르웨이 20000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 42500.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0