>  기사  >  데이터 베이스  >  SQL 문에서 as를 사용하는 방법

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

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-08-06 17:54:003711검색

하위 쿼리 부분이라고도 하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제