7장 계산 필드 생성하기
Last updated
Was this helpful?
Last updated
Was this helpful?
데이터베이스 테이블에 저장한 데이터는 사용하기 적합하게 저장되어 있지 않아 이용할 수 없는 경우가 종종 있다.
회사명과 회사 위치를 함께 출력하고 싶지만 두 정보가 서로 다른 테이블 열에 저장되어 있을 때
시, 도, 우편번호는 서로 다른 열에 저장되어 있지만, 배송지 주소를 인쇄하려면 하나의 필드로 가져와야 할 때
열 데이터에 대소문자가 섞여 있지만, 보고서에는 모두 대문자로 출력해야 할 때
테이블에 제품의 가격과 수량이 있지만 최종 가격이 없는 경우, 최종 가격을 사용해야 할 때
테이블에 있는 데이터를 기반으로 합계, 평균, 또는 다른 계산값이 필요할 때
위와 같은 경우 테이블에 저장된 데이터를 데이터베이스에서 변환 혹은 계산하여 가져오는 것이 좋다. 이 때 계산 필드가 필요하다. 계산 필드는 데이터베이스 테이블에 실제로 존재하지 않는다. SQL SELECT문에서 동적으로 생성된다.
SQL SELECT 문에서 연산자를 이용해 열을 연결할 수 있다. (DBMS에 따라 +, ||, 특수 함수 등 방법이 다르다.)
열이 합쳐지긴 했지만 불필요한 공백 문자가 보인다. SQL RTRIM() 함수를 사용해 공백을 제거하자.
TRIM 함수
대부분의 DBMS는 공백을 제거하는 LTRIM(), TRIM(), RTRIM() 함수를 지원한다.
위 결과를 보면 알듯 계산 필드에는 따로 이름이 없다. 단순한 하나의 값일 뿐이다. 결과 확인을 위한 목적이라면 상관없지만, 위와 같은 이름의 열은 클라이언트 프로그램에서 사용할 수 없다. 따라서 이 열을 호출할 방법을 생각해야 한다.
해결 방법으로 SQL은 열 (Alias)을 지원한다. AS 키워드를 사용해 별칭을 부여할 수 있다.
많은 DBMS에서 AS를 생략해도 작동하지만, 코드를 봤을 때 직관적이기에 사용하는 습관을 들이자.
계산 필드는 데이터의 수학적 계산을 수행할 때도 자주 사용한다.
SQL은 더하기, 빼기, 곱하기, 나누기 등 기본적인 수학 연산자를 지원한다.
계산 필드가 무엇인지, 어떻게 생성하는지
문자열 연결과 산술 연산을 위한 계산 필드 사용 방법
별칭 생성과 사용
Vendors 테이블에서 vend_id, vend_name, vend_address, vend_city를 가져와 각 필드를 vname, vcity, vaddress로 이름 바꾸고 결과를 판매처명으로 정렬하는 SQL 문을 작성하라.
Products 테이블에서 prod_id, prod_price, sale_price를 가져오는 SQL 문을 작성하라. sale_price는 10%할인된 가격을 보여주는 계산된 필드이다.