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

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

Aug 06, 2021 pm 05:54 PM
sql

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

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까? Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까? Apr 17, 2024 pm 02:57 PM

HQL과 SQL은 Hibernate 프레임워크에서 비교됩니다. HQL(1. 객체 지향 구문, 2. 데이터베이스 독립적 쿼리, 3. 유형 안전성), SQL은 데이터베이스를 직접 운영합니다(1. 데이터베이스 독립적 표준, 2. 복잡한 실행 파일) 쿼리 및 데이터 조작).

Oracle SQL의 나누기 연산 사용법 Oracle SQL의 나누기 연산 사용법 Mar 10, 2024 pm 03:06 PM

"OracleSQL의 나눗셈 연산 사용법" OracleSQL에서 나눗셈 연산은 일반적인 수학 연산 중 하나입니다. 데이터 쿼리 및 처리 중에 나누기 작업은 필드 간의 비율을 계산하거나 특정 값 간의 논리적 관계를 도출하는 데 도움이 될 수 있습니다. 이 문서에서는 OracleSQL의 나누기 작업 사용법을 소개하고 구체적인 코드 예제를 제공합니다. 1. OracleSQL의 두 가지 분할 연산 방식 OracleSQL에서는 두 가지 방식으로 분할 연산을 수행할 수 있습니다.

Oracle과 DB2의 SQL 구문 비교 및 ​​차이점 Oracle과 DB2의 SQL 구문 비교 및 ​​차이점 Mar 11, 2024 pm 12:09 PM

Oracle과 DB2는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템으로, 각각 고유한 SQL 구문과 특성을 가지고 있습니다. 이 기사에서는 Oracle과 DB2의 SQL 구문을 비교 및 ​​차이점을 설명하고 구체적인 코드 예제를 제공합니다. 데이터베이스 연결 Oracle에서는 다음 문을 사용하여 데이터베이스에 연결합니다. CONNECTusername/password@database DB2에서 데이터베이스에 연결하는 문은 다음과 같습니다. CONNECTTOdataba

SQL의 ID 속성은 무엇을 의미합니까? SQL의 ID 속성은 무엇을 의미합니까? Feb 19, 2024 am 11:24 AM

SQL에서 ID란 무엇입니까? SQL에서 ID는 자동 증가 숫자를 생성하는 데 사용되는 특수 데이터 유형으로, 테이블의 각 데이터 행을 고유하게 식별하는 데 사용됩니다. ID 열은 일반적으로 기본 키 열과 함께 사용되어 각 레코드에 고유한 식별자가 있는지 확인합니다. 이 문서에서는 Identity를 사용하는 방법과 몇 가지 실제 코드 예제를 자세히 설명합니다. Identity를 사용하는 기본 방법은 테이블을 생성할 때 Identit을 사용하는 것입니다.

MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명 MyBatis 동적 SQL 태그의 Set 태그 기능에 대한 자세한 설명 Feb 26, 2024 pm 07:48 PM

MyBatis 동적 SQL 태그 해석: Set 태그 사용법에 대한 자세한 설명 MyBatis는 풍부한 동적 SQL 태그를 제공하고 데이터베이스 작업 명령문을 유연하게 구성할 수 있는 탁월한 지속성 계층 프레임워크입니다. 그 중 Set 태그는 업데이트 작업에서 매우 일반적으로 사용되는 UPDATE 문에서 SET 절을 생성하는 데 사용됩니다. 이 기사에서는 MyBatis에서 Set 태그의 사용법을 자세히 설명하고 특정 코드 예제를 통해 해당 기능을 보여줍니다. Set 태그란 무엇입니까? Set 태그는 MyBati에서 사용됩니다.

SpringBoot가 구성 파일의 SQL 계정 비밀번호를 암호화하는 방법 SpringBoot가 구성 파일의 SQL 계정 비밀번호를 암호화하는 방법 May 22, 2023 pm 08:50 PM

1. Maven 프로젝트에 com.github.ulisesbocchiojasypt-spring-boot-starter2.1.02 종속성을 도입하는 동시에 도구가 암호화 또는 암호화에 이 비밀번호를 사용하므로 application.yml 구성 파일에서 비밀번호를 구성해야 합니다. 따라서 구성이 보장되어야 합니다. 암호화된 문자열은 동일한 비밀번호를 사용하여 암호화됩니다. 그렇지 않으면 프로젝트가 시작될 때 해독될 수 없습니다. jasypt:encryptor:password:1234563. 테스트 케이스에서는 원본 정보를 암호화할 수 있습니다. 사용 방법은 매우 간단합니다. 간단한 데모는 다음과 같습니다: @RunWith(SpringRunner

Java는 MySQL 드라이버 인터셉터를 어떻게 사용하여 SQL 시간이 많이 소요되는 계산을 구현합니까? Java는 MySQL 드라이버 인터셉터를 어떻게 사용하여 SQL 시간이 많이 소요되는 계산을 구현합니까? May 27, 2023 pm 01:10 PM

배경: 회사의 요구 사항 중 하나는 회사의 기존 링크 추적 로그 구성 요소가 MySQL의 SQL 실행 시간 인쇄를 지원해야 한다는 것입니다. 링크 추적을 구현하는 일반적인 방법은 타사 프레임워크 또는 도구에서 제공하는 인터셉터 인터페이스 또는 필터 인터페이스를 구현하는 것입니다. MySQL도 예외는 아닙니다. 사실 MySQL은 MySQL에 의해 구동되는 인터셉터 인터페이스를 구현합니다. MySQL을 구체적으로 구현하는 채널에는 다양한 버전이 있고, 버전마다 인터셉터 인터페이스가 다르기 때문에 사용 중인 MySQL 드라이버의 버전에 따라 응답 인터셉터를 구현해야 합니다. 다음으로 MySQL 채널 5를 소개하겠습니다. 각각 6개 버전 구현. 여기서는 Statem을 구현하기 위한 예로 MySQL 채널 5.1.18 버전을 사용하여 MySQL5를 구현했습니다.

SQL에서 5120 오류를 해결하는 방법 SQL에서 5120 오류를 해결하는 방법 Mar 06, 2024 pm 04:33 PM

해결 방법: 1. 로그인한 사용자에게 데이터베이스에 액세스하거나 운영할 수 있는 충분한 권한이 있는지 확인하고 해당 사용자에게 올바른 권한이 있는지 확인하십시오. 2. SQL Server 서비스 계정에 지정된 파일에 액세스할 수 있는 권한이 있는지 확인하십시오. 3. 지정된 데이터베이스 파일이 다른 프로세스에 의해 열렸거나 잠겼는지 확인하고 파일을 닫거나 해제한 후 쿼리를 다시 실행하십시오. .관리자로 Management Studio를 실행해 보세요.

See all articles