LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

이 자습서에서는 SQL 임시 테이블뷰에 대해 설명합니다 . 테스트 및 디버깅을 위해 물리적 테이블에서 특정 데이터 집합을 가져오려는 경우 이 두 가지가 유용할 수 있습니다 . 또한 두 가지 유형의 임시 테이블 과 그 차이점에 대해서도 설명합니다 .

SQL 임시 테이블 및 뷰를 사용하면 이미 별도의 테이블에 저장되어 있으므로 반복적으로 쿼리하지 않고도 여러 명령을 사용하여 데이터 집합을 자유롭게 조작할 수 있습니다.

이 두 가지가 유사하게 작동하더라도 차이점에 유의해야 합니다. 그러면 특정 상황에서 사용할 수 있는 최상의 방법을 결정하는 데 도움이 됩니다.

이름 자체에 따라 임시 테이블은 데이터를 세션에 임시로 저장하는 데 사용됩니다.

물리적 테이블 에서와 마찬가지로 여러 작업을 수행할 수도 있습니다 . 매우 긴 SQL 명령이 있다고 상상해 보십시오. 임시 테이블 에 간단히 저장 하고 원래 쿼리에 영향을 주지 않고 오류 디버깅 또는 문제 해결을 시작할 수 있습니다. 또한 임시 테이블은 강력하며 SQL에서 자주 사용됩니다.

목차

SQL의 두 가지 유형의 임시 테이블

SQL에는 두 가지 유형의 임시 테이블이 있습니다. 이들은 로컬 및 전역 임시 테이블입니다.

로컬 임시 테이블은 생성된 세션에만 존재합니다. 다른 세션에서는 이 테이블에 액세스할 수 없습니다. 이 때문에 생성된 세션이 닫히면 로컬 임시 테이블이 더 이상 존재하지 않습니다.

반대로 전역 임시 테이블은 생성 시 모든 세션에서 액세스할 수 있습니다. 그러나 모든 세션이 닫히면 더 이상 존재하지 않으며 더 이상 액세스할 수 없습니다.

로컬에 대한 " # " 기호와 전역 임시 테이블에 대한 " ## " 기호를 확인하여 쿼리에서 사용 중인 임시 테이블 유형을 간단히 식별할 수 있습니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

로컬 임시 테이블은 일반적으로 테이블 이름에서 " # "으로 시작합니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

반면 전역 임시 테이블은 테이블 이름 앞에 " ## "으로 시작합니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

또한 테이블을 빠르게 생성하려는 경우 예를 들어 SELECT * INTO #customers FROM dbo.courses 명령을 따를 수 있습니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

이 명령은 dbo.courses 테이블 의 모든 데이터를 사용하여 #customers 라는 새 임시 테이블을 생성합니다 .

Microsoft SQL Server Management Studio의 보기

이제 이 샘플 명령을 사용하여 SQL 보기에 대해 설명하겠습니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

예를 들어 이와 같은 명령을 반복적으로 실행하고 싶지 않다고 가정해 보겠습니다. 아래 명령에 따라 간단히 보기에 넣을 수 있습니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

뷰 생성은 테이블 생성과 유사합니다. 이를 사용하면 생성한 보기 이름을 선택하여 입력한 쿼리를 실행할 수 있습니다. 이 경우 CustomersbyYear_v 입니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

뷰는 임시 테이블과 다르다는 점에 유의해야 합니다. 보기는 삭제하지 않는 한 물리적 테이블처럼 데이터베이스에서 볼 수 있기 때문입니다. 또한 뷰는 데이터나 값을 저장하지 않습니다.

대신 CREATE VIEW 명령 바로 다음에 입력한 명령을 렌더링합니다 . 보기에서 모든 테이블 작업을 실행할 수도 있습니다.

가장 중요한 것은 일반적으로 뷰 이름의 시작 또는 끝에 "v"를 입력하여 뷰를 쉽게 식별할 수 있다는 것입니다.

SQL에서 임시 테이블 및 뷰 생성

이 예에서는 실행 후 Sales.SalesOrderHeaderSales.Customer C 의 레코드를 결합하고 표시하는 쿼리가 있습니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

SQL에서 로컬 임시 테이블 생성

200줄 길이의 쿼리를 작성했고 디버그하고 특정 작업을 수행해야 한다고 상상해 보십시오. 프로세스 중에 더 많은 오류가 발생할 수 있으므로 쿼리를 직접 편집할 수 없습니다 .

그런 경우 앞의 예제를 사용하여 FROM 명령 앞에 " INTO #test_local " 명령을 추가하여 로컬 임시 테이블을 생성할 것입니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

이 명령을 실행하면 이제 #test_local에 Sales.SalesOrderHeaderSales.Customer C 의 결합된 레코드가 포함됩니다 . 결과적으로 이것은 #test_local 테이블을 선택할 때 표시되는 것입니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

그런 다음 이제 #test_local 테이블에서 모든 작업을 수행할 수 있습니다. #test_local 에서 모든 레코드를 선택한 다음 다음 명령을 사용하여  CustomerID 별로 레코드 순서를 변경합니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

그 결과 이제 레코드가 CustomerID별로 정렬됩니다. 그러나 로컬 임시 테이블을 사용했기 때문에 다른 세션에서 #test_local 테이블 에 액세스하거나 사용할 수 없습니다 . 다음 예제는 SQLQuery2.sql 에서 #test_local 에 액세스하려고 하면 어떤 일이 발생하는지 보여줍니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

이전 예제를 기반으로 #test_local을 선택하면 오류 메시지가 표시됩니다. 이는 #test_local 테이블이 생성된 세션인 SQLQuery1.sql 에만 존재하기 때문입니다 .

SQL에서 전역 임시 테이블 생성

다음으로 #test_local 에서 사용한 것과 동일한 쿼리를 사용합니다 . 그러나 이번에는 전역 사용합니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

이제 ##test_global을 선택 하고 CustomerID별로 레코드를 정렬하면 동일한 쿼리를 사용했기 때문에  #test_local 에서와 동일한 출력이 표시됩니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

그런 다음 다른 세션에서 ##test_global 테이블을 선택하여 액세스를 시도합니다 . 글로벌 임시 테이블을 사용하고 있기 때문에 원활하게 작동합니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

이 시점에서 우리는 로컬 임시 테이블과 전역 임시 테이블의 차이점을 강조하고 있습니다.

로컬 임시 테이블은 생성된 세션에서만 액세스할 수 있습니다 . 해당 세션을 닫으면 더 이상 존재하지 않습니다.

반면에 전역 임시 테이블은 모든 활성 세션이나 응용 프로그램 자체를 닫지 않는 한 모든 세션에서 볼 수 있습니다 .

SQL에서 보기 생성

이제 뷰를 생성하겠습니다. 이 예에는 이와 같은 기존 쿼리가 있습니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

해당 쿼리에 CREATE VIEW 명령을 추가하여 뷰 생성을 시작할 수 있습니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

명령을 실행하면 작업 중인 데이터베이스에 뷰가 생성됩니다. 이 경우 AdventureWorks2012 입니다 .

새로 고친 후 Views 폴더에 dbo.CustomerView_v 도 표시되어야 합니다 . 보기 폴더를 새로 고치려면 폴더를 마우스 오른쪽 버튼으로 클릭한 다음 새로 고침을 선택합니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

Views 폴더 오른쪽에 있는 + 아이콘을 클릭하면 dbo.CustomerView_v 가 표시됩니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

dbo.CustomerView_v 를 마우스 오른쪽 단추로 클릭한 다음 옵션에서 상위 1000개 행 선택을 선택하여 이 보기를 열 수 있습니다 . 그러면 해당 보기 에 1000개의 레코드가 표시됩니다 .

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

그런 다음 이제 dbo.CustomerView_v를 사용 하고 테이블처럼 모든 작업을 수행할 수 있습니다. 예를 들어 dbo.CustomerView_v 에서 SalesOrderID가 50000보다 큰 레코드를 선택하려고 합니다 . 이 경우 다음 명령을 사용합니다.

LuckyTemplates 사용자를 위한 SQL 임시 테이블 및 보기

이제 우리가 만든 보기에서 작업을 실행할 수 있습니다.

결론

요약하면 두 가지 유형의 임시 테이블과 그 차이점 및 사용해야 하는 이유를 배웠습니다. 또한 임시 테이블이 실제 쿼리를 손상시키지 않고 쿼리의 오류를 수정하는 방법으로 사용된다는 점에 대해 논의했습니다.

임시 테이블은 생성된 세션에서만 볼 수 있습니다. 따라서 활성 세션이나 응용 프로그램 자체를 닫으면 더 이상 존재하지 않습니다.

뷰가 데이터나 레코드를 저장하지 않는다는 것도 배웠습니다. 렌더링하려는 쿼리를 기반으로 한 결과만 표시합니다. 이러한 뷰는 일단 생성되면 데이터베이스에 저장됩니다. 

이 두 가지를 배우면 이제 긴 명령을 빠르게 실행 하고 대량의 데이터 세트를 쉽게 수정할 수 있습니다.

모두 제일 좋다,

하피즈


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것