> 데이터 베이스 > MySQL 튜토리얼 > SQL 문에서 as를 사용하는 방법

SQL 문에서 as를 사용하는 방법

醉折花枝作酒筹
풀어 주다: 2021-08-06 18:03:49
앞으로
3748명이 탐색했습니다.

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

SQL 문에서 as를 사용하는 방법

– 하나의 별칭용

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;
로그인 후 복사

은 실제로는 큽니다. 힙에서 반복적으로 사용되는 항목은 as에 배치되고 별칭이 제공되므로 후속 쿼리에서 이를 사용할 수 있습니다. 이는 대규모 SQL 문 배치에서 최적화 역할을 하며 명확합니다.

테이블에 데이터를 삽입하는 사용법으로

insert into table2
with
s1 as (select rownum c1 from dual connect by rownum <= 10),
s2 as (select rownum c2 from dual connect by rownum <= 10)
select a.c1, b.c2 from s1 a, s2 b where…;
로그인 후 복사

select s1.sid, s2.sid from s1, s2에는 관련 조건이 있어야 합니다. 그렇지 않으면 결과는 데카르트 곱이 됩니다.

가상 보기와 동일합니다.

하위 쿼리 인수분해라고도 하는 as 구문을 사용하면 많은 작업을 수행하고 전체 SQL 문에서 사용할 SQL 조각을 정의할 수 있습니다. 때로는 SQL 문을 더 읽기 쉽게 만들기 위한 것일 수도 있고, 데이터를 제공하는 부분과 Union all의 다른 부분에 있을 수도 있습니다.

특히 모든 노동조합에 유용합니다. Union의 각 부분은 모두 동일할 수 있지만 각 부분을 한 번만 실행하면 비용이 너무 높으므로 한 번만 실행하면 되는 with 구문을 사용하면 됩니다. with as 구문으로 정의된 테이블 이름이 두 번 이상 호출되면 최적화 프로그램은 with as 구문으로 얻은 데이터를 자동으로 임시 테이블에 넣습니다. 프롬프트 구체화는 with as 구문의 데이터를 전역 임시 테이블에 강제로 배치합니다. 이런 방식으로 많은 쿼리의 속도를 높일 수 있습니다.

with
sql1 as (select to_char(a) s_name from test_tempa),
sql2 as (select to_char(b) s_name from test_tempb where not exists (select s_name from sql1 where rownum=1))
select * from sql1
union all
select * from sql2
union all
select ‘no records’ from dual
where not exists (select s_name from sql1 where rownum=1)
and not exists (select s_name from sql2 where rownum=1);
로그인 후 복사

WITH 문의 장점:

(1) SQL 가독성이 향상됩니다. 예를 들어 하위 쿼리 등을 사용하여 특정 항목에 의미 있는 이름을 지정합니다.

(2) with 하위 쿼리는 한 번만 실행되며 결과는 성능 향상을 위해 여러 번 참조될 수 있는 사용자 임시 테이블 공간에 저장됩니다.

예: EXCEL을 가져오는 과정에서 데이터를 임시 테이블에 저장해야 하는 경우가 있습니다. 다음 번 가져오기를 수행할 때 임시 테이블의 데이터가 지워지는 경우가 있습니다. 그러나 이 때 동시성 문제가 발생하는 경우가 있습니다. 두 명의 사용자가 서로의 데이터를 개별적으로 조작할 수 있으므로 혼동이 발생할 수 있습니다. 그러나 오류 정보를 내보내야 하는 경우에는 WITH 함수와 UNION 문을 사용하여 SQL 문을 연결할 수 있습니다. 이 문은 데이터를 구성합니다.

관련 추천: "mysql 튜토리얼"

위 내용은 SQL 문에서 as를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
sql
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿