>  기사  >  데이터 베이스  >  mysql 문을 사용하여 조인을 만드는 방법

mysql 문을 사용하여 조인을 만드는 방법

巴扎黑
巴扎黑원래의
2017-05-10 13:24:46971검색

조인을 사용하는 이유

설명한 대로 데이터를 여러 테이블로 나누면 더 효율적으로 저장하고, 더 쉽게 처리하고, 더 큰 확장성을 얻을 수 있습니다. 그러나 이러한 이점에는 대가가 따릅니다.

데이터가 여러 테이블에 저장된 경우 단일 SELECT 문으로 데이터를 검색하는 방법은 무엇입니까?

답은 조인을 사용하는 것입니다. 간단히 말해서 조인은 SELECT 문에서 테이블을 연결하는 데 사용되는 메커니즘이므로 이름이 붙여졌습니다. 특수 구문을 사용하면 여러 테이블을 조인하여 런타임 시 테이블의 올바른 행을 상호 연결하는 조인을 통해 출력 집합을 반환할 수 있습니다.

참조 무결성 유지 조인은 물리적 엔터티가 아니라는 점을 이해하는 것이 중요합니다. 즉, 실제 데이터베이스 테이블에는 존재하지 않는다. 조인은 MySQL에 의해 요청 시 생성되며 쿼리 실행 중에 존재합니다.

관계형 테이블을 사용할 때 관계형 열에는 법적 데이터만 삽입하는 것이 매우 중요합니다. 여기의 예로 돌아가서, 불법적인 공급업체 ID(즉, 공급업체 테이블에 없음)를 사용하여 공급업체가 생산한 제품을 제품 테이블에 삽입하면 이러한 제품은 공급업체와 연결되어 있지 않기 때문에 액세스할 수 없습니다. .

이런 일이 발생하지 않도록 MySQL에 제품 테이블의 공급업체 ID 열(즉, 공급업체 테이블에 나타나는 공급업체)에 합법적인 값만 허용하도록 지시할 수 있습니다.

이는 테이블 정의에 기본 키와 외래 키를 지정하여 참조 무결성을 유지하는 것입니다.


조인 만들기

조인을 만드는 방법은 매우 간단합니다. 조인할 모든 테이블을 지정하면 됩니다. 연결만 하면 됩니다. 아래 예를 참조하세요.

입력:

select vend_name,prod_name,prod_price from vendors,products where vendors.vend_id= products.vend_id order by vend_name,prod_name;

출력:

mysql 문을 사용하여 조인을 만드는 방법

mysql 문을 사용하여 조인을 만드는 방법

분석: We Let's 이 코드를 살펴보세요. 이전의 모든 문과 마찬가지로 SELECT 문은 검색할 열을 지정합니다. 여기서 가장 큰 차이점은 지정된 두 열( prod_name 및 prod_price )이 한 테이블에 있고 다른 열( vend_name )이 다른 테이블에 있다는 점입니다.

이제 FROM 절을 살펴보겠습니다. 이전 SELECT 문과 달리 이 문의 FROM 절에는 공급업체와 제품이라는 두 개의 테이블이 나열됩니다. 이 SELECT 문으로 연결된 두 테이블의 이름입니다. 두 테이블은 WHERE 절을 사용하여 적절하게 조인됩니다. 이 절은 MySQL이 Vendors 테이블의 vend_id와 제품 테이블의 vend_id를 일치시키도록 지시합니다.

일치할 두 열이 Vends.vend_id 및 products.vend_id로 지정되어 있는 것을 볼 수 있습니다. vend_id만 주어지면 MySQL은 어느 것을 참조해야 할지 알 수 없기 때문에 여기에는 정규화된 열 이름이 필요합니다(각 테이블에 하나씩 두 개가 있음).

정규화된 열 이름 참조된 열이 모호할 수 있는 경우 정규화된 열 이름(점으로 구분된 테이블 및 열 이름)을 사용해야 합니다. 테이블 이름으로 한정되지 않은 모호한 열 이름을 참조하면 MySQL은 오류를 반환합니다.

[관련 추천]

1. mysql 서브쿼리란? 하위 쿼리를 사용하여 필터링하는 방법은 무엇입니까?

2.mysql은 하위 쿼리를 사용하여 계산된 필드를 생성합니다.

3.mysql의 조인과 관계형 테이블은 무엇인가요?

4. MySQL에서 WHERE 절의 중요성과 여러 테이블을 조인하는 방법

위 내용은 mysql 문을 사용하여 조인을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.