이론
조건 함수
DECODE 함수: 오라클에서만 제공하는 유용한 SQL함수
DECODE(기준값,조건1,결과1,조건2,결과2,...,그외의 결과)"컬럼명"
CASE함수 : DECADE기능을 확장한 함수,
CASE [기준값] WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
...
ELSE 그 외의 결과
END "컬럼명"
DECODE 함수는 표현식, 컬럼값이 "=" 비교를 통해 조건과 일치하는 경우에만 다른 값으로 대처할 수 있다.
그러나 CASE 함수는 산술연산, 관계연산, 논리연산과 같은 다양한 비교가 가능하다.
WHEN 절에서 표현식을 다양하게 정의할 수 있다.
변환함수
TO_CHAR(날짜|숫자, '형식') : 날짜 또는 숫자를 지정한 형식의 문자열로 변환
TO_DATE(날짜형식의 문자열, '형식') : 날짜형식의 문자열을 지정한 형식의 날짜로 변환,시간까지 표현***
TO_DATE('09.10.12 12:30:00','YY.MM.DD HH:MI:SS')
TO_NUMBER(숫자형식의 문자열) : 숫자형식의 문자열이 숫자로 변환
TO_NUMBER('100') => 100
날짜 형식
scc , cc : 세기 표현
year : 년도를 영어로 표현
yyyy, yyy, yy, y : 년도를 자릿수로 자른다
bc, ad : 서기 등으로 표시
q : 분기 표시
mm : 두자리로 월표시
month: 영어로 표시
mon: 영어로 3자리로 월표시
rm: 로마자로 표시 i, ii. xi
ww: 1년기준 몇째주 표시
w:한달기준 몇째주 표시
ddd: 365(1년기준 ) 의 몇째 일
dd: 날짜를 두자리로 표시
d: 요일을 숫자로 표시
dy : 요일 한자리로 표시
day: 요일 표시
am, pm, a.m. , p.m. : 오전오후 표시
hh, hh12 : 12시 기준으로 표시
hh24 : 24시 기준으로 표시
/, "of" : 날짜의 중간에 문자 표시 -> to_char(to_date('19951201', 'yyyymmdd'),'yyyy "of" mm/dd')
spth : 날짜를 영문 서수로 표시
sp : 날짜를 영문 숫자로 표시
날짜에 연산되는 ROUND/TRUNC 함수
특정 날짜와 연산되는 함수
TO_YMINTERVAL, TO_DSINTERVAL
***다중행함수 ***
계산함수,집계함수,그룹함수
SUM,AVG,COUNT,MAX,MIN 함수
GROUP BY 칼럼명,... --정렬작업포함
NVL : null값을 다른 것으로 바꿔줌, 컬럼하나 단독적용 함수
AVG: COUNT 영향 널포함 꼭넣어야함
COUNT : 널을 포함하지 않음('*'를 사용하면 NULL도 카운트)
***Join(조인)***
사용하는 컬럼이 두 개 이상의 테이블에 존재하는 경우 사용되는 고급 쿼리 명령
32개까지 가능
종류
1.eque(inner) join : 조인되는 테이블 간의 조건에 만족하는 행만을 추출
2.outer join(left & right) : 조인되는 테이블 간의 조건에 만족하는 행과 마스터 테이블의 모든 데이터가 추출
3.cross join : 조인되는 테이블간의 어떤 관계도 없는 경우(table*table)->카디션 프로덕트
4.self join : 자기 자신의 테이블과 조인되는 경우
문법
1.T-SQL 문법: where조건절, 테이블명을 나열하여 표현
-select~ : 원하는 컬럼 나열
-from~ : 사용한 컬럼을 가진 테이블 나열
-where~ : 사용된 테이블간의 관계 또는 조건을 표현
2.Ansi 문법 : on조건절, 서술형태의 표현
조인되는 테이블간의 관계컬럼명이 같은 경우! -ansi
OUTER JOIN
1) LEFT OUTER JOIN
먼저 표기된 좌측 테이블에 해당하는 데이터를 먼저 읽은 후, 나중 표기된 우측 테이블에서 JOIN 대상 데이터를 읽어 온다.
Table A와 B가 있을 때 (Table 'A'가 기준이 됨),
A와 B를 비교해서 B의 JOIN 칼럼에서 같은 값이 있을 때 그 해당 데이터를 가져오고,
B의 JOIN 칼럼에서 같은 값이 없는 경우에는 B테이블에서 가져오는 칼럼들은 NULL값으로 채운다.
2) RIGHT OUTER JOIN
LEFT JOIN과 반대로 우측테이블이 기죽이 되어 결과를 생성한다.
TABLE A와 B가 있을때 (TABLE 'B'가 기준이 됨)
실습
pom.xml
web.xml
kosta-servlet.xml
src/or.kosta.config/config.xml
src/or.kosta.mapper/gogek.xml
src/or.kosta.mapper/sawon.xml
src/or.kosta.mvc.controller/DefaultController.java
src/or.kosta.mvc.controller/GogekController.java
src/or.kosta.mvc.controller/SawonController.java
src/or.kosta.mvc.dao/GvoDao.java
src/or.kosta.mvc.dao/SawonDao.java
src/or.kosta.vo/DeptVo.java
src/or.kosta.vo/GogekVo.java
src/or.kosta.vo/SawonPhoneVo.java
src/or.kosta.vo/SawonVo.java
jsp/sawonList.jsp
jsp/deptList.jsp
jsp/sphForm.jsp
jsp/sawonPhone.jsp