연산자 사용
* 이 장에서 다룰 내용
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 값을 가진 데이터와 산술 연산하면 어떤 결과가 나오는지 확인할 수 있는 좋은 예제입니다.
■ nvl(comm, 0)함수의 기능 : comm이라는 변수에 null값이 들어가 있다면 0또는 다른값으로 변환.
03. 컬럼 이름에 별칭 지정하기.
■ SQL에서 쿼리문의 결과가 출력될 때, 컬럼 이름이 컬럼에 대한 헤딩(heading)으로 출력됩니다.
■ sal*12+nvl(comm, 0)연산식이 무엇을 의미하는지 Alias를 지정해주는 방법.
04. AS로 컬럼에 별칭 부여하기
■ 컬럼 이름 대신 별칭을 출력하고자 하면 컬럼을 기술한 바로 뒤에 AS 라는 키워드를 쓴 후 별칭을 기술합니다.
05. " "로 별칭 부여하기
■ 위 예를 살펴보면 별칭을 부여 할 때에는 대소문자를 섞어서 기술하였는데 출력 결과를 보면 일괄적으로 대문자로 출력된 것을 확인할 수 있습니다.
■ 대소문자를 구별하고 싶으면 " "을 사용합니다.
■ " "을 사용하여 별칭을 부여할 경우에는 별칭에 공백문자나 $,_,#등 특수 문자를 포함시킬 수 있습니다.
06. 별칭으로 한글 사용하기
■ 영어가 아닌 한글로 별칭을 부여해 봅시다.
■ 오라클에서 한글을 지원하므로 별칭이 아닌 테이블을 생성할 때 컬럼을 설정하면서 컬럼 이름도 한글로 부여할 수 있습니다.
* 탄탄히 다지기
1. 부서번호는 DEPTNO로, 부서명은 DNAME으로 정해져 있으므로 다음과 같은 쿼리문의 결과는 왼쪽 그림과 같이 컬럼 헤딩에도 역시 DEPTNO, DNAME으로 출력됩니다.
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 : 별칭 지정.
"" : 별칭 대소문자 구분 지정
|| : 연결 연산자
'Study > OracleDB' 카테고리의 다른 글
8강 오라클 논리연산자, Between in (1) | 2022.09.06 |
---|---|
7강 오라클 SQL 조건연산자 (4) | 2022.09.05 |
5강 오라클 select 모든 기능 특정열 선택 (0) | 2022.09.05 |
4강 오라클 select기능과 타입 (0) | 2022.09.05 |
3강 SQL과 SQL*Plus의 개념 (0) | 2022.09.05 |