Latest web development tutorials

SQLite는 조인

SQLite는 데이터베이스 레코드에 두 개 이상의 테이블을 결합하는 절을조인한다.조인 테이블 수단의 두 필드를 조합하여 공통 값이다.

SQL은 연결의 세 가지 주요 유형을 정의합니다 :

  • 상호 연결 - CROSS가 가입

  • 욕실 - INNER는 가입

  • 외부 접속 - OUTER JOIN

우리는 계속하기 전에, 우리는 두 개의 테이블 회사 및 DEPARTMENT이 있다고 가정하자. 우리는 회사 테이블 INSERT 문을 채우기 위해 사용 보았다. 이제 우리가 아래에 나열된 회사 테이블 레코드를 가정 해 봅시다 :

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

또 다른 표는 다음과 같이 정의하고, DEPARTMENT입니다 :

(표 DEPARTMENT을 CREATE
   ID INT PRIMARY KEY NOT NULL,
   NULL NOT DEPT CHAR (50)
   EMP_ID INT NOT NULL
);

다음은 INSERT 문 작성 DEPARTMENT 테이블입니다 :

INSERT INTO DEPARTMENT (ID, DEPT, EMP_ID)
VALUES (1, 'IT는 결제', 1);

INSERT INTO DEPARTMENT (ID, DEPT, EMP_ID)
VALUES (2 '공학', 2);

INSERT INTO DEPARTMENT (ID, DEPT, EMP_ID)
VALUES (3, "재정", 7);

마지막으로, 우리는 DEPARTMENT 테이블의 레코드 다음 목록을 가지고 :

ID DEPT EMP_ID
---------- ---------- ----------
(1) 청구 1
이 기술 장치 2
(3) 금융 (7)

상호 연결 - CROSS가 가입

교차 연결과 일치하는 두 번째 테이블의 각 행과 첫 번째 테이블의 각 행 (CROSS는 가입). 입력 테이블의 컬럼 x와 y 모두있는 경우, 각각 결과 테이블은 X + Y 열이 있습니다. 교차 연결 (CROSS JOIN)이 매우 큰 테이블을 생성 할 수 있기 때문에 경우에만 적절한를 사용하는 경우, 당신은주의해야합니다.

여기의 교차 연결 (CROSS JOIN)에 대한 구문은 다음과 같습니다

SELECT ... 표 1의 크로스를 표 2에 가입 ...

다음과 같이 위의 표를 바탕으로, 우리는 (CROSS는 가입) 간 연결을 작성할 수 있습니다 :

sqlite가> SELECT EMP_ID, NAME은 DEPT는 회사 십자가에서 DEPARTMENT 가입;

위의 쿼리는 다음과 같은 결과를 생성합니다 :

EMP_ID NAME DEPT
---------- ---------- ----------
1 폴 IT 결제
2 바울 기술 장치
7 바울 금융
1 앨런 IT 결제
2 알렌 기술 장치
7 알렌 금융
1 테디 IT 결제
2 테디 기술 장치
7 테디 금융
1 마크 IT 결제
이 마크 기술 장치
7 마크 금융
1 데이비드 IT 결제
2 데이비드 기술 장치
7 데이비드 금융
1 김 IT 결제
2 김 기술 장치
7 김 금융
1 제임스 IT 결제
2 제임스 기술 장치
7 제임스 금융

욕실 - INNER는 가입

내부 연결 (INNER는 가입) 새로운 결과 테이블은 두 개의 테이블 (표 1 및 표 2) 술어 열 값에 가입을 결합하여 만들 수 있습니다. 쿼리 표하고 각 행의 각 행의 표 2는이 조건에 일치하는 쌍을 결합 만족하는 모든 행을 찾기 위해 비교된다. 술어 열 값 A를 가입 만족하고 때 B는 결과의 일치하는 각 행은 하나의 행에 병합됩니다.

내부 연결 (내부 조인) 연결의 가장 일반적인 타입은 기본 연결 유형이다. INNER 키워드는 선택적입니다.

여기의 (내부 조인) 조인 내부의 구문은 다음과 같습니다

SELECT ... 표 1 FROM [INNER] conditional_expression ON 표 2를 가입 ...

중복을 방지하고 짧은 문구를 유지하기 위해, 당신은 (내부 조인) 조건사용 식 연결에 문을 사용할 수 있습니다.이 표현은 하나 이상의 열들의리스트를 지정한다 :

SELECT (컬럼 1, ...)을 사용하여 표 2 JOIN 표 FROM ...

천연 연결 (NATURAL가 가입)가입 할 ... 사용과유사하지만, 각 열에서 두 테이블의 값과 동일한 값을 자동의 존재를 테스트합니다 :

SELECT ... table1에 가입 NATURAL 표 2 FROM ...

다음으로, 상기 테이블에 기초하여, 우리는 (내부 조인) 내부 조인 쓸 수있다 :

sqlite가> SELECT EMP_ID, NAME, DEPT는 회사 INNER FROM DEPARTMENT 가입하세요
        COMPANY.ID = DEPARTMENT.EMP_ID ON;

위의 쿼리는 다음과 같은 결과를 생성합니다 :

EMP_ID NAME DEPT
---------- ---------- ----------
1 폴 IT 결제
2 알렌 기술 장치
7 제임스 금융

외부 접속 - OUTER JOIN

외부 연결 (외부 조인) 내부 조인 (INNER 조인) 확장이다. SQL 표준은 외부 조인의 세 가지 유형의 정의 있지만 : LEFT, RIGHT, FULL,하지만 SQLite는 단지외부 조인 왼쪽 지원 (LEFT OUTER는 가입).

외부 연결 (외부 조인) 자연 키워드 나 표현을 사용, 조건 및 내부 연결 방법 (내부 조인)입니다 같은, ON의 사용을 선언했다. 초기 결과 테이블은 같은 방식으로 계산된다. 계산은 기본 연결, 하나 또는 두 개의 테이블에서 외부 연결을 (외부 조인) 완료되면 병합의 모든 라인에 연결되어 있지 않은, 외부, NULL 값으로 열을 조인 결과 테이블에 첨부.

여기서 왼쪽 외부 (왼쪽 외부 조인) 가입에 대한 구문은 다음과 같습니다

SELECT ... LEFT OUTER가 conditional_expression ON 표 2를 가입 표 FROM ...

중복을 방지하고 짧은 문구를 유지하기 위해, 당신은 외부 조인using 문 식 (외부 조인) 조건을 사용할 수 있습니다.이 표현은 하나 이상의 열들의리스트를 지정한다 :

SELECT ... LEFT OUTER 표로부터 가입 사용 표 2 (컬럼 1, ...) ...

다음으로, 상기 테이블에 기초하여, 우리는 외부 접속 (외부 조인) 쓸 수있다 :

sqlite가> SELECT EMP_ID, NAME, DEPT 회사 LEFT OUTER가 DEPARTMENT 가입 FROM
        COMPANY.ID = DEPARTMENT.EMP_ID ON;

위의 쿼리는 다음과 같은 결과를 생성합니다 :

EMP_ID NAME DEPT
---------- ---------- ----------
1 폴 IT 결제
2 알렌 기술 장치
            테디
            표
            데이비드
            김
7 제임스 금융