본문 바로가기

Study/OracleDB

6강 오라클 SQL 연산자

728x90

연산자 사용

 이 장에서 다룰 내용

1. 산술 연산자

2. 컬럼 이름에 별칭 지정하기

3. Concatenation 연산자의 정의와 사용

4. DISTINCT 키워드

 

01. 산술 연산자

종류
+ SELECT sal + comm FROM emp;
- SELECT sal - 100 FROM emp;
* SELECT sal * 12 FROM emp;
/ SELECT sal / 2 FROM emp;

■ 급여로 연봉 계산을 해보도록 합시다. 일반적으로 연봉은 급여를 12번 곱한 것이므로 연봉을 구하기 위해서 산술 연산자를 사용합시다.

select ename, sal, sal*12 from emp;

 

02. NULL도 데이터이다.

■ 오라클에서의 NULL은 매우 중요한 데이터입니다. 왜냐하면 오라클에서는 컬럼에 NULL값을 저장하는 것을 허용하는데 NULL값을 제대로 이해하지 못한 채 쿼리문을 사용하면 원하지 않는 결과를 얻을 수 있기 때문입니다.

■ 다음은 NULL의 대한 이해를 돕기 위해서 다양한 NULL의 정의를 살펴본 것입니다.

1. 0(zero)도 아니고

2. 빈 공간도 아니다.

3. 미확정(해당 사항 없음), 알 수 없는(unknown) 값을 의미한다.

4. 어떤 값인지 알 수 없지만 어떤 값이 존재하고 있다.

5. ? 혹은 ∞의 의미이므로 연산, 할당, 비교가 불가능하다.

■ 널은 ? 혹은 ∞의 의미이기 때문에 연산, 할당, 비교가 불가능합니다.

100 + ? = ?
100 + ∞ =

 

■ 다음은 산술 연산자를 이용해서 연봉을 계산하는 쿼리문으로 앞에서 구했던 예제에서 커미션을 연봉 계산에 추가해 본 것입니다. 커미션의 경우에는 NULL값을 가진 행도 있으므로 NULL 값을 가진 데이터와 산술 연산하면 어떤 결과가 나오는지 확인할 수 있는 좋은 예제입니다.

SELECT문 사용법(1)
SELECT문 사용법(2)

nvl(comm, 0)함수의 기능 : comm이라는 변수에 null값이 들어가 있다면 0또는 다른값으로 변환.

03. 컬럼 이름에 별칭 지정하기.

■ SQL에서 쿼리문의 결과가 출력될 때, 컬럼 이름이 컬럼에 대한 헤딩(heading)으로 출력됩니다.

SELECT문 사용법(3)

■ sal*12+nvl(comm, 0)연산식이 무엇을 의미하는지 Alias를 지정해주는 방법.

 

04. AS로 컬럼에 별칭 부여하기

■ 컬럼 이름 대신 별칭을 출력하고자 하면 컬럼을 기술한 바로 뒤에 AS 라는 키워드를 쓴 후 별칭을 기술합니다.

SELECT문 사용법(4)

 

05. " "로 별칭 부여하기

■ 위 예를 살펴보면 별칭을 부여 할 때에는 대소문자를 섞어서 기술하였는데 출력 결과를 보면 일괄적으로 대문자로 출력된 것을 확인할 수 있습니다.

대소문자를 구별하고 싶으면 " "을 사용합니다.

■ " "을 사용하여 별칭을 부여할 경우에는 별칭에 공백문자나 $,_,#등 특수 문자를 포함시킬 수 있습니다.

 

06. 별칭으로 한글 사용하기

■ 영어가 아닌 한글로 별칭을 부여해 봅시다.

■ 오라클에서 한글을 지원하므로 별칭이 아닌 테이블을 생성할 때 컬럼을 설정하면서 컬럼 이름도 한글로 부여할 수 있습니다.

* 탄탄히 다지기

1. 부서번호는 DEPTNO로, 부서명은 DNAME으로 정해져 있으므로 다음과 같은 쿼리문의 결과는 왼쪽 그림과 같이 컬럼 헤딩에도 역시 DEPTNO, DNAME으로 출력됩니다.

탄탄히 다지기(1)

select deptno "부서번호", dname "부서명" from dept;

07. Concatenation 연산자의 정의와 사용

■ 오라클에서는 Concatenation 연산자를 제공해 줍니다.

■ Concatenation의 사전적인 의미는 연결입니다.

■ 따라서 오라클에서의 Concatenation 연산자 역시 여러 개의 컬럼을 연결할 때 사용하는데 Concatenaation 연산자로 "||" 수직바를 사용합니다.

■ 결과를 살펴보면 컬럼과 특정 값 사이에 공백이 생기는 것을 확인할 수 있습니다. 정말 영 문장처럼 보이도록 하기 위해서 "||"를 컬럼과 문자열 사이에 기술하여 하나로 연결하여 출력하면 됩니다.

 

08.  DISTINCT 키워드

■ 다음은 사원들이 소속되어 있는 부서 번호를 출력하기 위한 예입니다.

  사원들이 소속되어 있는 부서의 목록을 얻기 위한 목적이라면 같은 부서의 번호가 중복되어 출력되는 것은 의미가 없습니다.

  중복되는 부서 번호를 한 번씩만 출력하기 위해서는 키워드 DISTINCT(디스팅크드)를 사용합니다.

select distinct deptno from emp; -- 부서 번호를 한번씩만 출력해주시오.

* 탄탄히 다지기

2. 사원 테이블에 존재하는 직급의 종류를 출력하기 위해서 다음과 같은 쿼리문을 수행하면 화면 왼쪽 그림과 같이 중복된 내용이 출력됩니다.

select distinct job from emp; -- 컬럼명 앞에 작성.

 

학습정리.

종류
+ SELECT sal + comm FROM emp;
- SELECT sal - 100 FROM emp;
* SELECT sal * 12 FROM emp;
/ SELECT sal / 2 FROM emp;

중복되는 데이터를 한번씩만 출력하기 위해서는 키워드 Distinct(디스팅크드)를 사용합니다.

As : 별칭 지정.

"" : 별칭 대소문자 구분 지정

|| : 연결 연산자

반응형