이 기사에서는 SQL에 대한 관련 지식을 제공하며, 테이블 연결에 대한 관련 내용을 주로 소개합니다. SQL Server는 내부 조인, 왼쪽 조인, 오른쪽 조인, 교차 조인, 전체 조인 등 다양한 연결을 지원합니다. 외부 연결에서 모든 사람에게 도움이 되기를 바랍니다.
추천 학습: "SQL Tutorial"
관계형 데이터베이스에서 데이터는 여러 논리적 테이블에 분산됩니다. 완전하고 의미 있는 데이터 세트를 얻으려면 조인을 사용하여 이러한 테이블의 데이터를 쿼리해야 합니다. SQL Server는 내부 조인, 왼쪽 조인, 오른쪽 조인, 교차 조인 및 완전 외부 조인을 포함한 다양한 연결을 지원합니다.
1. 내부 조인
내부 조인 절은 둘 이상의 관련 테이블에서 데이터를 쿼리하는 데 사용됩니다. INNER JOIN 절의 구문:
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p INNER JOIN production.categories c ON c.category_id = p.category_id
참고: 쿼리할 필드 앞에는 테이블 이름이나 테이블 별칭이 와야 합니다. 예: p.product_name
여기서 다음 FROM은 기본 테이블이고 INNER JOIN은 다음과 같습니다. 따릅니다. 테이블은 조인할 테이블입니다. 기본 테이블과 조인 테이블을 비교하여 조건에 맞는 행을 모두 찾습니다. 연결 조건자의 계산 결과가 true인 경우 아래 그림과 같이 기본 테이블과 연결 테이블이 새 결과 집합으로 병합됩니다.
아래와 같이 연결 내의 여러 테이블 연결:
SELECT p.product_name, p.list_price ,c.category_name, b.brand_nameFROM production.products p INNER JOIN production.categories c ON c.category_id = p.category_id INNER JOIN production.brands b ON b.brand_id = p.brand_id
2. Left Join
왼쪽 조인의 LEFT JOIN 절을 사용하여 여러 테이블의 데이터를 쿼리하고 오른쪽 테이블의 일치하는 행을 반환합니다. 오른쪽 테이블에 일치하는 행이 없으면 그림과 같이 대신 NULL을 사용하여 표시합니다.
LEFT JOIN 문을 사용하여 연결합니다. 아래와 같이:
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p LEFT JOIN production.categories c ON c.category_id = p.category_id
위 구문에서 테이블은 FROM 뒤에는 왼쪽 테이블(production.products)이 있고 LEFT JOIN 뒤에는 오른쪽 테이블(production.categories)이 옵니다.
3. Right Join
두 개 이상의 테이블을 쿼리하려면 Right Join에서 RIGHT JOIN 절을 사용합니다. 오른쪽 쿼리는 왼쪽 쿼리와 정반대로 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다. 왼쪽 테이블에 일치하는 행이 없으면 표시된 것처럼 표시 대신 NULL이 반환됩니다. 그림에서:
RIGHT JOIN 문을 사용하여 연결합니다: 다음과 같이:
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p RIGHT JOIN production.categories c ON c.category_id = p.category_id
위 구문에서 FROM 다음의 테이블은 왼쪽 테이블(production.products)이고 오른쪽 테이블(production.categories)입니다. 바로 뒤에 RIGHT JOIN이 옵니다.
4. Cross Join
CROSS JOIN은 관련되지 않은 두 개 이상의 테이블을 조인합니다. 다음은 두 테이블 간의 CROSS JOIN 구문으로, 두 가지 쓰기 방식입니다.
SELECT T1.select_list FROM T1 CROSS JOIN T2;
또는
SELECT T1.select_list FROM T1, T2;
CROSS JOIN은 첫 번째 테이블(T1)의 각 행을 두 번째 테이블(T2)의 각 행과 연결합니다. 즉, 교차 조인은 두 테이블 행의 데카르트 곱을 반환합니다. INNER JOIN 또는 LEFT JOIN과 달리 Cross Join은 조인된 테이블 간에 관계를 설정하지 않습니다.
T1 테이블에 1 , 2 , 3 세 개의 행이 있고 T2 테이블에 A , B 및 C 세 개의 행이 있다고 가정합니다. CROSS JOIN은 첫 번째 테이블(T1)에서 행을 가져와 두 번째 테이블(T2)의 각 행에 대해 새 행을 만듭니다. 그런 다음 첫 번째 테이블(T1)의 다음 행에 대해 동일한 작업을 수행합니다. 이 그림에서 CROSS JOIN은 총 9개의 행을 생성합니다.
5. 셀프 조인
셀프 조인은 테이블을 자체(동일한 테이블)에 연결하는 데 사용됩니다. 계층적 데이터를 쿼리하거나 동일한 테이블의 행을 비교하는 데 유용합니다.
자체 조인은 내부 조인 또는 왼쪽 조인 절을 사용합니다. 셀프 조인을 사용하는 쿼리는 동일한 테이블을 참조하므로 테이블 별칭을 사용하여 쿼리의 테이블에 다른 이름을 할당합니다.
참고: 테이블 별칭을 사용하지 않고 쿼리에서 동일한 테이블을 여러 번 참조하면 오류가 발생합니다.
예:
SELECT t1.select_list FROM T1 t1INNER JOIN T1 t2 ON t1.category_id = t2.category_id
여기 INNER JOIN에서 LEFT JOIN, RIGHT JOIN
과 같은 다른 절을 사용할 수 있습니다. 6. 완전 외부 조인
FULL OUTER JOIN 왼쪽에 일치하는 항목이 있거나 right table 이면 명령은 모든 행을 반환합니다. 그림에 표시된 대로:
FULL OUTER JOIN을 사용하여 pm.projects 테이블 및 pm.member 테이블의 데이터를 쿼리합니다.
SELECT m.name member, p.title project FROM pm.members m FULL OUTER JOIN pm.projects p ON p.id = m.project_id;
pm.projects 테이블 데이터:
pm.member 테이블 데이터:
쿼리 결과:
추천 학습: "SQL Tutorial"
위 내용은 SQL 테이블 연결에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!