Secret Poten

#15.SELECT 기초 &1 :숫자 컬럼에 대한 사칙연산 본문

오라클 데이터베이스[11gR2](#1~

#15.SELECT 기초 &1 :숫자 컬럼에 대한 사칙연산

potentail 2017. 11. 12. 12:54

이번 포스팅은 #11 에서 진행하던 SQL 사용법을 다시 차근차근 포스팅해보겠습니다.

#11에서는 간단하게 자신이 볼 컬럼을 지정해서 쿼리 결과를 출력했습니다.


이번포스팅은 그 컬럼을 어떤식으로 조절할 수 있는지 한번 보겠습니다.



1. scott유저로 데이터베이스 로그인


sql plus에서 로그인하는것은 제가 말씀드렸듯


sqlplus [계정명]/[패스워드] 가 일반유저로 로그인 하는것입니다.

sys계정은 as sysdba라는 수식어가 붙죠.


2. 데이터베이스의 목적은...?

제가 #1에서 설명했던 데이터베이스에 대해 기억하시는 분이 있을지는 모르겠지만

데이터베이스란 말 그대로 그냥 데이터를 모아두고 정제한것입니다.

그냥 이것저것 막무가내로 모은 데이터 일지라도 사용자가 이것은 필요한 값이다, 가치가 있는 데이터다. 라고한다면 그자체가 데이터베이스가 될 수 있죠.


하지만 데이터베이스란 값을 모아두고 중복을 제거하고, 가치가 있는 데이터들을 모아둠으로써 데이터베이스가 되는 것이겠지요.


그러면 간단하게 생각해서 내이름이 데이터베이스 내에서 2개이상이 존재할 필요가 있을까?

월급이랑 연봉이랑 같이 저장해도 될까? 라는 의문이 생깁니다.

(연봉은 월급*12니까 월급에다가 12만 곱하면 되는것 아닌가...? 라는 의문)


즉 데이터의 중복성을 늘릴 필요가 있나? 가 의문점이 됩니다.


이것을 막기위해 SQL에서도 다양한 함수를 지원하며 PL/SQL, 트리거등 다양한 언어,프로그램들이 존재합니다.


3. scott 유저의 emp테이블로 그 예를 한번 보자.

scott유저에 emp라는 테이블이 있습니다.


그테이블을 SELECT하는것쯤은 이제 누구나 다 하실 수 있을거라 생각됩니다.


  • SELECT * FROM emp;


emp 테이블에는 총 14건의 레코드, 즉 데이터가 들어있습니다.


일단은 이 데이터를, 이테이블을 이해하는것이 SQL의 기초라고 생각해주시면 되겠습니다.

empno가 무슨의미인지, mgr이 뭔지...

즉 SQL은 그냥 명령어 입니다. 누구나 배우면 누구나 할 수 있는 그런 언어입니다.


하지만 이 SQL을 쓸때도 그 업무에맞게, 더 깔끔하게 작성하는 사람이 연봉을 더 많이 받는법입니다.

즉 그 업무를 파악하지 못한다면 아무리 명령어를 많이 알아도 전혀 쓸모가 없습니다.


empno는 사원번호

ename은 사원이름

job은 직업

mgr은 매니저번호 (empno랑 매칭)

hiredate는 입사날짜

sal은 월급

comm은 커미션

deptno는 부서번호


정도로 생각해주시면 됩니다.

테이블의 컬럼명을 지을때도 알아보기 쉽게 지어야 하는것도 있지만

그것을 이해하는것 또한 중요한 일이기 때문입니다.


☆Quiz

1. EMP테이블에서 empno,ename,sal,comm만 표시하도록 SQL문을 작성하여 보시오.



이정도는 저번에 했던거라 간단하게 쿼리 하실수 있을겁니다.


그러면 여기서 한번더 문제..


Q.이 월급을 가지고 연봉을 구하는 SQL문을 작성해보시오.

라고 한다면 어떨까요?


컬럼에 들어가는 값에는 가감승제(더하기,빼기,나누기,곱하기)가 가능하며

문자열 컬럼또한 대문자를 소문자로, 소문자를 대문자로, 첫글자만 대문자로 등

각종 함수나 가감승제를 이용하여 보기좋게, 원하는 쿼리만 뽑게 할 수 있습니다.


즉 sal * 12를 하면 연봉이 나온다는 것이죠.

예제를 하나 보여드리자면...


  • SELECT sal * 12 FROM emp;


이런식으로 쿼리 결과가 나오게 됩니다.


그러면 여기서 문제


☆Quiz

1. emp테이블의 사원에 사원번호,이름,월급,연봉,커미션을 출력하는 SQL문을 작성하시오.

2. emp테이블의 사원들이 일을 잘 못해서 월급이 낮아졌습니다. 사원번호, 이름, 기존월급, 월급-300, 차감된 월급의 연봉, 커미션을 출력하는 SQL문을 작성하시요.



※컬럼명에 식이 그대로 들어가서 별칭을 이용하여 다르게 표시 하였습니다.


쿼리 결과문에 별칭을 붙이는 방법또한 뒤쪽에서 다룹니다.





직접 한번 SQL문을 작성해보고 답을 보고 맞는지 확인을 한번 해보세요.

아직까진 명확한 답이 있지만 SQL문이 심화될수록 답은 없습니다. 즉 얼마든지 더 성능좋은, 깔끔한 SQL이 나올수도 있다는 소리죠.


프로그래밍을 조금 배워보셨던 분이라면 이런 명령어정도는 쉽게 해내실 수 있을거라 생각이 됩니다.


(Youtube) Secret Poten : http://goo.gl/ENeBOR

(Youtube) Secret Poten AE : http://goo.gl/qasbWH


그외 궁금한점은

공지사항을 잘보시고 오픈채팅으로 물어봐주시면 감사하겠습니다

공지사항 바로가기


-HardWare SetUp-

CPU : Intel i7-6700k(OC)

RAM : Samsung DDR4 8GB X 4 (32GB)

HDD : Seagate 1TB X 3 (3TB HDD), Seagate 4TB =Total 7TB

SSD : SanDisk SSD 256GB

VGA : Asus GTX1080 8GB(OC)

MB : Asus Z170-A STCOM

Case : Thermaltake Core X9

PSU : Micronics Performance II HV 850W Bronze

ODD : LG BH16NS55 (Blu-ray ODD)

Other : PSIONIC Custom Water Cooler (CPU set), LED Cooler (EA 8), Scarlett 6i6, MXL990




Comments