OracleDB 에 관하여

20180420 OracleDB

OracleDB의 간단한 조작

Primary key : 기본키 Not Null 이며 Unique한 값을 가집니다.
Foriegn key : 다른 테이블의 기본키를 가져오면 외래키입니다. 이 때 참조 되는 테이블이 부모 테이블입니다.

DB에서 정렬은 기본키를 기준으로 ORDER BY ASC, 즉 오름차순으로 정렬합니다..

SELECT * FROM emp ORDER BY empno ASC;
 SELECT * FROM emp ORDER BY empno DESC;

 

  • DISTINCT : 중복을 제거하는 키 SELECT바로 뒤에 사용합니다.
SELECT DISTINCT deptno FROM emp;


근데 조금 이상합니다. ASC정렬이 안됩니다. 10g 버전부터 DISTINCT 기능에서 빠졌기 때문이죠. 정렬은 따로 해야 합니다.

SELECT DISTINCT deptno FROM emp ORDER BY deptno;

 

  • NULL 값을 다른 값으로 치환하는 기능 : NVL('ex',0)
  • 컬럼명에 별칭 부여하기 : alias

SELECT 문을 수행하던 도중 연봉값이 궁금해서 이렇게 쳐 보았습니다.

SELECT ename, job, sal, sal*12+comm from emp;


NULL 은 일반적인 산술 연산이 불가능하기 때문에,
COMM 열에 들어있던 NULL값으로 인해 값이 제대로 출력이 안되는 상황이 발생하였습니다.

SELECT ename, job, sal, sal*12 + NVL(comm,0) AS ex from emp;


이렇게 NVL함수로 NULL값을 0으로 치환한 후 ALIAS로 이름을 새로 만들었습니다.
한결 깔끔해 보입니다. 또한 ALIAS로 별칭을 지정 할 때에 ""로 대소문자 공백 구분이 가능합니다.

SELECT ename, job, sal, sal*12 + NVL(comm,0) "Eample A" from emp;

AS는 생략이 가능하며 이 것을 반드시 지정해야 하는 경우는

  1.  컬럼에 산술적인 연산이 적용되었을 때
  2.  날짜를 내가 원하는 포멧으로 지정 할 때 입니다.
  • SYSDATE : 날짜를 반환합니다.
SELECT sysdate FROM emp;

 

튜플 수만큼 반환이 되었습니다. 이런 류의 질의를 수행하기 위한 더미 테이블이 있습니다.

SELECT sysdate FROM dual;

 

SELECT문을 이용하여 여러가지 조작을 해 보았습니다.