>  기사  >  데이터 베이스  >  mysql에서 with의 사용법은 무엇입니까?

mysql에서 with의 사용법은 무엇입니까?

WBOY
WBOY원래의
2022-01-05 10:31:1421385검색

mysql에서 "with as"는 하위 쿼리라고도 하는데, 이는 SQL 조각을 정의하는 데 사용되며 해당 조각은 전체 SQL 문에서 여러 번 반복적으로 사용됩니다. 이 SQL 조각은 공용 임시 테이블에 해당합니다. 구문은 "with tmp as (쿼리 문)"입니다.

mysql에서 with의 사용법은 무엇입니까?

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql에서 with를 어떻게 사용하나요?

WITH AS 구문은 하위 쿼리 팩터링이라고도 하며 전체 SQL 문에서 사용할 SQL 조각을 정의할 수 있습니다. SQL문을 읽기 쉽게 만들 수도 있고, UNION ALL의 다양한 부분에서 데이터를 제공하는 부분으로 사용할 수도 있습니다.

UNION ALL의 경우 WITH AS를 사용하여 UNION ALL 문을 정의합니다. 프래그먼트가 2번 이상 호출되면 최적화 프로그램은 자동으로 WITH AS 구문으로 얻은 데이터를 임시 테이블에 넣습니다. "meterize" 프롬프트는 WITH AS 구문의 데이터를 전역 임시 테이블에 강제로 저장합니다. 이런 방식으로 많은 쿼리의 속도를 높일 수 있습니다.

with as 하위 쿼리는 한 번만 실행되고 그 결과는 쿼리 성능 향상을 위해 사용자의 임시 테이블에 저장되기 때문에 복잡한 보고서 통계, 페이징 쿼리, 합계를 구해야 하는 등 여러 참조가 있는 시나리오에 적합합니다. count, avg 등의 결과를 필터링 조건으로 사용하여 쿼리 결과에 대한 2차 처리를 수행합니다!

특히 모든 노동조합에 유용합니다. Union의 각 부분은 모두 동일할 수 있지만 각 부분을 한 번 실행하면 비용이 너무 높기 때문입니다

공통 구문

– 하나의 별칭에 대해

with tmp as (select * from tb_name)

– 여러 개의 별칭에 대해

with
tmp as (select * from tb_name),
tmp2 as (select * from tb_name2),
tmp3 as (select * from tb_name3),
…

– 건물을 만드는 것과 동일 e 임시 테이블

with e as (select * from scott.emp e where e.empno=7499)
select * from e;

– e 및 d 임시 테이블을 구축하는 것과 동일합니다

with
e as (select * from scott.emp),
d as (select * from scott.dept)
select * from e, d where e.deptno = d.deptno;

실제로 반복적으로 사용되는 많은 SQL 문을 as에 넣고 별칭을 제공하며 후속 쿼리에서 사용할 수 있다는 의미입니다. 대규모 SQL 문 배치에서 최적화 역할을 하며 명확합니다.

추천 학습: mysql 비디오 튜토리얼

위 내용은 mysql에서 with의 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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