>  기사  >  데이터 베이스  >  MySQL 뷰의 역할에 대한 자세한 설명(1) - 복잡한 연결 단순화 및 검색된 데이터 형식 지정

MySQL 뷰의 역할에 대한 자세한 설명(1) - 복잡한 연결 단순화 및 검색된 데이터 형식 지정

巴扎黑
巴扎黑원래의
2017-05-17 16:37:453112검색

뷰를 사용하여 복잡한 조인 단순화

뷰의 가장 일반적인 응용 프로그램 중 하나는 일반적으로 조인과 관련된 복잡한 SQL을 숨기는 것입니다. 다음 예를 살펴보십시오.

입력:

create view productcustomers as select cust_name,cust_contact,prod_id from customers,orders,orderitems where customers.cust_id = orders.cust_id and orderitems.order_num = orders.order_num;

분석: 이 명령문은 productcustomers라는 뷰를 생성합니다. 이 뷰는 세 개의 테이블을 조인하여 주문한 모든 제품을 반환합니다. 모든 고객. SELECT * FROM productcustomers를 실행하면 제품을 주문한 고객이 나열됩니다.

TNT2 제품을 주문한 고객을 검색하려면 다음과 같이 진행하세요.

입력:

select cust_name,cust_contact from productstomers where prod_id = 'TNT2';

출력:

MySQL 뷰의 역할에 대한 자세한 설명(1) - 복잡한 연결 단순화 및 검색된 데이터 형식 지정

분석: 이 문은 WHERE 절을 통해 뷰에서 특정 데이터를 검색합니다. MySQL은 이 쿼리를 처리하면서 지정된 WHERE 절을 뷰 쿼리의 기존 WHERE 절에 추가하여 데이터가 올바르게 필터링되도록 합니다.

뷰를 사용하면 복잡한 SQL 문 사용이 크게 단순화되는 것을 볼 수 있습니다. 뷰를 사용하면 기본 SQL을 한 번 작성한 다음 필요한 만큼 여러 번 사용할 수 있습니다.

재사용 가능한 뷰 만들기 특정 데이터에 제한되지 않는 뷰를 만드는 것이 좋습니다. 예를 들어 위에서 생성된 뷰는 TNT2를 생산하는 고객뿐만 아니라 모든 제품을 생산하는 고객을 반환합니다. 뷰의 범위를 확장하면 재사용이 가능해질 뿐만 아니라 훨씬 더 유용해집니다. 이렇게 하면 여러 개의 유사한 보기를 만들고 유지 관리할 필요가 없습니다.

뷰를 사용하여 검색된 데이터 형식을 다시 지정합니다.

위에서 언급했듯이 뷰의 또 다른 일반적인 용도는 검색된 데이터 형식을 다시 지정하는 것입니다. 다음 SELECT 문은 단일 결합 계산 열에 공급자 이름과 위치를 반환합니다.

입력:

select concat(rtrim(vend_name),'(',rtrim(vend_country), ')') as vend_title from vendors order by vend_name;

출력:

MySQL 뷰의 역할에 대한 자세한 설명(1) - 복잡한 연결 단순화 및 검색된 데이터 형식 지정

Now , 이 형식의 결과가 자주 필요한 경우. 필요할 때마다 조인을 수행하는 대신 뷰를 만들어 필요할 때마다 사용하세요. 이 문을 뷰로 변환하려면 다음과 같이 진행하세요.

입력:

create view vendorlocation as select concat(rtrim(vend_name),'(',rtrim(vend_country), ')') as vend_title from vendors order by vend_name;

분석: 이 문은 이전 SELECT 문과 동일한 쿼리를 사용하여 뷰를 생성합니다. 모든 우편물 레이블을 생성하기 위해 데이터를 검색하려면 다음과 같이 진행하십시오.

입력:

select * from vendorlocations;

출력:

MySQL 뷰의 역할에 대한 자세한 설명(1) - 복잡한 연결 단순화 및 검색된 데이터 형식 지정

위 내용은 MySQL 뷰의 역할에 대한 자세한 설명(1) - 복잡한 연결 단순화 및 검색된 데이터 형식 지정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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