TOP

SQL 강의 6. 계산된(계산된) 필드

계산된 필드를 사용해야 하는 이유는 무엇입니까? 일반적으로 데이터베이스의 정보는 데이터를 구조화하고 조작하는 것이 더 쉽기 때문에 별도의 조각 형태로 제공됩니다. 그러나 개별 데이터가 아닌 이미 결합되어 처리된 정보를 사용해야 하는 경우가 많습니다. 예를 들어, 고객의 이름과 성을 결합하고, 테이블의 여러 열에 있는 주소 요소를 결합하고, 텍스트와 개별 단어, 문자 및 기호를 처리하고, 총 구매 비용을 합산해야 하는 경우가 많습니다. , 데이터베이스에 있는 정보에 대한 통계를 표시합니다. 데이터는 일반적으로 별도의 "청크"에 저장되므로 클라이언트 프로그램 측에서 추가 처리가 필요합니다. 다만, 이미 처리된 정보를 DBMS를 이용하여 수신하는 것은 가능하다. 이 경우 계산 필드가 도움이 됩니다. 쿼리가 실행될 때 자동으로 생성되며 이미 테이블에 있는 일반 열의 모양과 속성을 갖습니다. 유일한 차이점은 물리적으로 계산된 필드가 없기 때문에 DB에서 추가 공간을 차지하지 않고 일시적으로 DBMS의 "랜덤 메모리"에 존재한다는 점입니다. DBMS 측에서 작업을 수행할 때의 장점은 데이터 처리 속도입니다.


1. 수학 연산 수행

계산된 필드를 사용하는 한 가지 방법은 선택한 데이터에 대해 수학 연산을 수행하는 것입니다. Sumproduct 테이블을 다시 사용하여 이러한 일이 어떻게 발생하는지 예를 들어 보겠습니다. 각 제품의 평균 구매 가격을 계산해야 한다고 가정해 보겠습니다. 이렇게 하려면 Amount 열을 Quantity(수량)로 재배포해야 합니다.

Run SQLSELECT DISTINCT Product, Amount/Quantity 
FROM Sumproduct

보시다시피 DBMS는 모든 제품 이름을 선택하고 쿼리 실행 중에 생성된 별도의 열에 평균 비용을 표시했습니다. 또한 고유한 제품 이름을 표시하는 데 필요한 추가 연산자 DISTINCT를 사용했음을 알 수 있습니다. 이 연산자가 없으면 중복 레코드가 발생합니다.

2. 가명 사용

이전 예에서는 각 제품의 평균 구매 가격을 계산하고 그 값을 계산 열에 표시했습니다. 그러나 앞으로 이 필드를 참조하는 것은 그 이름이 우리에게 유익하지 않기 때문에 불편할 것입니다(DBMS에서 해당 필드 이름을 Expr1001로 지정함). 그러나 쿼리에 이름을 미리 지정하여(예: 별칭 지정) 독립적으로 필드 이름을 지정할 수 있습니다. 이전 예를 다시 작성하고 계산 필드에 별칭을 지정해 보겠습니다.

Run SQLSELECT DISTINCT Product, Amount/Quantity AS AvgPrice 
FROM Sumproduct

계산 필드에 AvgPrice라는 이름이 부여된 것을 볼 수 있습니다. 이를 위해 AS 연산자를 사용한 후 필요한 이름을 지정했습니다. SQL에서는 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 등 기본적인 수학 연산만 지원된다는 점에 유의해야 합니다. 둥근 괄호를 사용하여 작업 순서를 변경할 수도 있습니다.

별칭은 계산 필드의 이름을 지정하는 것뿐만 아니라 활성 필드의 이름을 바꾸는 데에도 자주 사용됩니다. 이는 활성 필드의 이름이 길거나 이름이 충분한 정보를 제공하지 않는 경우 필요할 수 있습니다.

3. 필드 연결(연결)

수학 연산 외에도 텍스트를 결합하여 별도의 필드에 표시할 수도 있습니다. 텍스트를 어떻게 접착(연결)할 수 있는지 살펴보겠습니다. MS Access의 다른 열에서 텍스트를 연결하려면 더하기 연산자(+)가 사용됩니다. 예를 들면 다음과 같습니다.

Run SQLSELECT Month + ' ' + Product AS NewField, Quantity  
FROM Sumproduct

이 예에서는 두 열의 값을 결합하고 결과를 새 필드 NewField에 출력했습니다.

여러 열의 텍스트를 연결(연결)하기 위해 MySQL 언어에서는 더하기 연산자(+)가 지원되지 않습니다. 이 경우 CONCAT() 함수를 사용하세요.