반응형
SQL
26. 인라인 뷰 와 Top-N 분석
- 인라인 뷰
from 절에 테이블 처럼생긴 서브쿼리문장이 들어감
개발자들이 관리작업할때 잘사용됨.
- ROWNUM
데이터 베이스 마다있다.
row(열)의 개수,번호
몇개 미만으로 출력될건지
첫번째 블록부터 데이터를 순서적으로 읽음
출력만 3개만 하는게 아니라 엑세스 했을때 가까운 애를 출력하는것이다.
예제
## 각 부서별 최소 급여자를 검색한다.
select eno, ename, d.dno, sal, msal
from emp e,
(select dno, min(sal) msal from emp
group by dno) d
where e.dno = d.dno
and sal = msal;
##emp 테이블로부터 10행까지 검색
select rownum, eno, ename, job, mgr, hdate
from emp
where rownum <= 10;
##최상위 연봉을 지급 받는 3인을 검색
select rownum, eno, ename, ansal
from (select eno, ename, sal*12+nvl(comm,0) ansal
from emp
order by ansal desc)
where rownum <= 3;
출력문장
실습
1.4.5환산 평점이 가장 높은 3인의 학생을 검색한다.
select rownum, sno, sname, hiavr
from (select sno, sname, avr*1.125 hiavr
from student
order by hiavr desc)
where rownum <= 3;
2.화학과 학생 중 기말고사 유기화학 점수가 최하위인 학생 3명을 검색한다.
select rownum, sno, cname, result, sname
from (select s.sno, sname, major, cname, result
from student s, score r, course c
where c.cno=r.cno and s.sno=r.sno
and major = '화학' and cname = '유기화학'
order by result)
where rownum <= 3;
27. 시퀀스
시퀀스 - 사용자에게 값을 하나씩 주는것
-프라이머리 키 컬럼이 값의 의미가 없는 경우가 많다.
다른 컬럼과 구별만 되면 된다.
시퀀스 생성 문법
SQL>create sequence 시퀀스
start with 시작_값 ## 없어도 상관없다.
increment by 증가_값
maxvalue 상한_값 | nomaxvalue ##잘 안쓴다
minvalue 하한_값 | nominvalue ##잘 안씀
cycle | nocycle
cache 캐쉬_개수 | nocache; ##
SQL 마무리
- 꼭 해야 하는것
조인
TO_CHAR() 출력서식을 맞추려고하는것 -실무에서는 어떤 서식에 꼭 맞춰야한다
TO_DATE() 오라클한테 문자가아닌 날짜로 해석할 수 있게 하는것
그룹함수
erd , 테이블 상세도표로 된걸 SQL 스크립트로 바꿔야한다.
금액은 NULL 값이 없다.
변환함수.
반응형