CUBRID 2008 R4.1 기초강좌
컬럼에 별칭을 사용한 질의, 널 값, ROWNUM 컬럼 0 0 7,291

by 큐브리드 별칭 ROWNUM NULL [2009.03.20]


컬럼에 별칭을 사용한 질의

  SQL문을 작성할 때 컬럼 이름이 너무 길면 번거롭기 때문에 테이블을 설계할 때 컬럼 이름을 약어로 지정하는 경우가 많다(예: DEPARTMENT_NUMBER -> DEPTNO). 그러나 조회 시에는 컬럼 이름을 별칭(alias)으로 바꾸어서 결과를 출력할 수도 있다. 별칭은 영문 및 한글 모두 가능하며 띄어쓰기가 필요할 때에는 큰 따옴표(“)로 묶어주어야 한다. 컬럼 이름에 별칭을 지정할 때에는 키워드 AS를 사용하며, AS는 생략할 수 있다.

예제1

  CODE 테이블에서 s_name와 f_name 컬럼을 조회하되 결과 테이블의 컬럼 이름을 각각 “약자”, “용어”로 출력하라.

SELECT s_name AS "약자", f_name AS "용어" 
FROM CODE; 

혹은 

SELECT s_name "약자", f_name "용어" 
FROM CODE; 

  컬럼 리스트에 별칭을 지정하여 조회 결과에 출력되는 컬럼 이름을 변경할 수 있다.

널 값

  널(NULL) 값은 ‘알려지지 않음’, ‘적용할 수 없음’의 의미이다. 따라서, 컬럼에 NULL이 저장된 경우, 산술/비교 연산을 수행할 수 없고, 함수로 가공하여도 결과는 NULL이 된다.

  특히, 빈 문자열은 ‘ ‘으로 처리하여야 하며, 이는 NULL과는 다르므로 혼동하지 말아야 한다. WHERE절에서 NULL 값을 비교하기 위해서는 동등 비교 연산자 대신에 IS NULL 또는 IS NOT NULL을 사용하여야 한다. 보다 상세한 내용은 CUBRID 매뉴얼>SQL 설명서>연산자와 함수>비교 연산자를 참조하기 바란다.

  링크: http://www.cubrid.com/manual/newest/syntax/syntax_operator_compare.htm

예제2

  OLYMPIC 테이블에서 마스코트가 NULL인 레코드 개수를 구하라

SELECT COUNT(*)
FROM olympic 
WHERE mascot IS NULL; 

  NULL값에 대한 비교 연산은 IS 또는 IS NOT 을 사용하여야 한다.

ROWNUM 컬럼

  SELECT문을 실행하면, 데이터베이스로부터 데이터를 읽은 후 메모리에 임시 저장하고 연산을 실행한다. ROWNUM은 이처럼 메모리에 임시 저장되는 레코드의 번호를 저장하는 내부 컬럼 이름이다.

  조건 절에 ROWNUM 컬럼을 사용하여 출력할 질의 결과 개수를 제한할 수 있고, LIMIT도 사용할 수 있다. 단, LIMIT는 정렬 연산을 완료한 후 최종 결과에 대해 출력 개수를 제한하고, ROWNUM은 정렬 연산 이전의 임시 결과의 레코드 순서를 기준으로 출력 개수를 제한한다는 차이점이 있다.

예제3

  NATION 테이블에서 NAME(국가)와 CAPITAL(수도)를 조회하되 5개만 보이게 하라.

SELECT name, capital 
FROM nation 
WHERE ROWNUM <= 5; 

혹은 

SELECT name, capital 
FROM nation 
WHERE ROWNUM BETWEEN 1 AND 5; 

혹은 

SELECT name, capital 
FROM nation 
LIMIT 5 ;

참고사이트

  - http://www.cubrid.com/zbxe/home

- 강좌 URL : http://www.gurubee.net/lecture/2021

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입