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

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


컬럼에 별칭을 사용한 질의

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

예제1

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

1
2
3
4
5
6
7
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인 레코드 개수를 구하라

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

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

ROWNUM 컬럼

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

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

예제3

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입