본문 바로가기

데이터베이스

오라클과제 (190507)

1. 날짜 용어 정리

1. PM

오후의 영문 표기

2. HH, HH12, HH24 

HH, HH12는 01~12시 형태로 표현하고,

HH24는 시간을 01~23시 형태로 표현한다.

 

3. MI 는 분을 00분~59분 형태로 표현한다.

 

4. SS 는 초를 01초~59초 형태로 표현한다.

 

5. SSSSS : 초 (자정부터 현 시간 까지) 즉, 0~86399초 사이라는 의미다.

 

6. 밀리수의 표시 자리수 지정. ss.ff2 / ss.ff3

 

7. D, d

D와 d는 주중을 일로  표현한다. 

7 : 토요일 1 : 월요일 순서로 ... 진행되고 오늘 같은 경우 3이 된다.

select to_char(sysdate,'D') from dual;

 

8. DD, DDD, dd, ddd

DDD의 경우 1월 1일부터 지금까지 얼마나 지났는지 일수로 표시한다.

DD의 경우 이번달 5월을 기준으로 몇일이 지났는지 일수로 표시한다.

소문자도 같은 값이 출력되는 것을 확인할 수 있다.

 

 

9. DAY, DY, day

 

10. FM

to remove padded blanks 

 

 

11. MM, MON, MONTH

MM의 경우 숫자로 05 형태로 나옴. mm도 같은 결과값을 받을 수 있음.

MON, MONTH의 경우 

ALTER SESSION SET NLS_LANGUAGE = 'KOREAN' 으로 하는 경우 5월이라고 나옴

 

 

12. YYYY, YYY, YY, Y, y

 

 

13. RRRR, RR

RR은 YY와 다름.

 

 

14. YEAR, Year

 

 

2. 해당월 마지막 법정영업일

-> DECODE란 오라클에서만 지원하는 함수로서 SELECT문장내에서 비교연산을 수행해 주는 아주 편리한
함수입니다. 형식은 다음과 같이 사용하시면 됩니다.
sql> DECODE(deptname, 'A',1,0)
-> deptname이 'A'와 같으면 1을 갖고 아니면 0을 갖게 됩니다.

 

-> LAST_DAY(SYSDATE)

 

SELECT DECODE(TO_CHAR(LAST_DAY(SYSDATE),'D'),

7,LAST_DAY(SYSDATE)-1,

1,LAST_DAY(SYSDATE)-2))

AS "LAST DAY" FROM DUAL;

7은 토요일인 경우이고, 1은 일요일인 경우이다. 그러므로 정수값에서 일정한 값을 빼주는 연산을 해준다.

 

 

3. 부서별 

4. ERD (EMP, DEPT, SALGRADE) 를 그리고 설명

정수는 NUMBER(p) 또는 NUMBER(p,0) 으로 정의 

 

123.89 NUMBER(6,1) 일 경우 123.9

123.89 NUMBER(6,-2) 일 경우 100

123.89 NUMBER(3) 일 경우 124 

 

 

5. JOIN ( RDBMS 의 꽃 )

집합연산자는 수직적 결합을 테이블의 JOIN은 데이터의 수평적 결합을 지원함.

JOIN의 구분은 FROM 절에 복수의 테이블이 왔을 때 JOIN임을 의미한다.

데이터를 기반으로 연결고리를 갖는다? 필요시에만 연산을 통해 연결을 한다

WHERE EMP.DEPTNO = DEPT.DEPTNO → 이 부분이 연산에 해당하는 부분이다.

 

조인의 종류에는 INNER JOIN, CROSS JOIN, OUTER JOIN, SELF JOIN 등이 있음.

 

 

1. 내부 조인 ( = INNER JOIN ) ( = EQUI JOIN ) ( = SIMPLE JOIN )

 

INNER JOIN은 키 값이 있는 테이블의 컬럼 값을 비교 후 조건에 맞는 값을 가져오는 것이다. 간단히 말하면 서로 연관된 내용만 검색하는 조인 방법이다.

 

JOIN 표현에는 두 가지 방법이 있는데

명시적 표현과 암시적 표현이 있다.

 

1) 명시적 표현 

명시적 조인표현 에서는 테이블에 조인을 하라는 것을 지정하기 위해 'JOIN' 키워드를 사용하고 ON키워드를

조인에 대한 구문을 지정하는데 사용한다.

 

-> ANSI JOIN인 경우 

 

2) 암시적 표현

암시적 조인 표현은 SELECT 구문의 FROM절에서 콤마(,)를 사용하여 단순히 조인을 위한 여러 테이블을 나열하기만

하면된다.

 

-> ORACLE에서 사용법

 

INNER JOIN의 결과 테이블 

 

2. 상호 조인 ( = CROSS JOIN ) ( = 곱집합)

CROSS JOINCartesian Product(카디션 곱)이라고도 하며 조인되는 두 테이블에서 곱집합을 반환한다

, 두 번째 테이블로부터 각 열과 첫 번째 테이블에서 각 열이 한번씩 결합된 열을 만들 것이다.

예를 들어 m열을 가진 테이블과 n열을 가진 테이블이 교차 조인되면

 m*n 개의 열을 생성한다. 그래서 테이블의 각 값을 연결하여 테이블 행의 수를 모두 곱한 값만큼 만들어진다.

 

CROSS JOIN은 상호 모든 행에 대한 결합이 발생하는 것이므로, 위 예제에서처럼 ON 구문을 사용할 수 없다.

CROSS JOIN은 대개 테스트로 사용할 대용량의 테이블을 생성할 경우에 사용된다.

 

 

3. 외부 조인 ( = OUTER JOIN ) 

소외 받은 OUTSIDER DATA를 보겠다. 그 기준을 왼쪽으로 볼거냐, 오른쪽으로 볼거냐

 

OUTER JOIN은 조인하는 여러테이블에서 한 쪽에는 데이터가 있고,

한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 모두 출력하는 것입니다.

 

1) LEFT OUTER JOIN : 조인문의 왼쪽에 있는 테이블의 모든 결과를 모두 가져온 후 오른쪽 테이블의 데이터를 매칭하고,

매칭되는 데이터가 없는 경우 NULL로 표시한다.

 

SELECT 검색할 컬럼 FROM 테이블명 LEFT OUTER JOIN 테이블명2 ON 테이블.컬럼 = 테이블2.컬럼명;

SELECT 검색할 컬럼 FROM 테이블명, 테이블명2 WHERE 테이블.컬럼명 = 테이블2.컬럼명(+);

 

 

2) RIGHT OUTER JOIN

조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고,

매칭되는 데이터가 없는 경우 NULL을 표시한다.

 

SELECT 검색할 칼럼 FROM 테이블명 RIGHT OUTER JOIN 테이블명2 ON 테이블명 = 테이블명2;

SELECT 검색할 컬럼 FROM 테이블명, 테이블명2 WHERE 테이블.컬럼명(+) = 테이블2.컬럼명;

 

3) FULL OUTER JOIN

LEFT OUTER JOIN 과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력한다

 

SELECT 검색할 컬럼 FROM 테이블명 FULL OUTER JOIN 테이블명2 ON 테이블.컬럼명 = 테이블2.컬럼명; 

 

 

4. 셀프 조인 ( = SELF JOIN )

COLUMN 들 간의 관계를 가지고 JOIN을 하는 것을 SELF JOIN이라 한다.

식별자(=고유성, 존재성)

 

 

 

 

'데이터베이스' 카테고리의 다른 글

아스키코드, 유니코드  (0) 2019.05.08
오라클과제 (190508)  (0) 2019.05.08
오라클실습 (JOIN)  (0) 2019.05.07
오라클실습 (190507)  (0) 2019.05.07
ROWNUM  (0) 2019.05.03