국비 25일차_2

강지수·2024년 1월 18일
0

국비교육

목록 보기
49/97

문자형을 숫자형으로 변환

to_number

진짜 문자를 바꾸는게 아니라 문자형 인 숫자를 숫자형으로 변환시킨다.


Nvl / Null 처리 1

nvl : null value
ex) nvl(comm,0) : comm 이 null 이면 0으로 대치



800 + null = null 값으로 나오게 되는데, 이런 경우 null 이 0의 역할을 해서 800 + null = 800 으로 계산하게끔 하고 싶을 때

null 값을 특정한 값으로 대치하고 싶을 때 사용


DB 자체적으로 null 대신 0 으로 처리할 때에도 사용하지만, DB -> java 로 불러올 때, data 가 null 이면 null point error 가 발생할 수 도 있다.


Nvl2 / Null 처리 2

ex) nvl2(col1,col2,col3) : col1 이 null 이 아니면 col2 를 사용하고, null 이면 col3 을 사용한다


null 값을 다른 table 을 이용한 값으로 처리할 때 사용


student table 에서 deptno2 가 null인 값은 0으로 치환하고 (nvl 활용) deptno1 이 201 이거나 103인 데이터를 뽑아 이름, 아이디, 주민, deptno2 를 출력하세요.


Decode

decode 함수 : if 문과 유사
ex) decode(deptno,101,'computer','etc') : deptno 가 101 이면 'computer', 101 이 아니면 'etc' 로 출력


동시에 여러개 적용


decode 를 활용해서 deptno 에 맞는 부서 이름 찾아 출력하기


Case

case : 경우의 수 함수
when : ~ 일 경우
then : 그 결과
else : 그 외의 경우의 결과


복수행 함수 / 그룹함수

Count

null 값을 배제하고 필드의 값의 개수


그룹함수는 그룹함수끼리만 사용가능 (표현해야하는 row 의 개수가 다르면 사용 불가)


Sum

sum 함수 : 총합

null 값을 배제하고 필드의 값을 모두 더한 값


Avg

avg 함수 : 평균

null 값을 배제한 값들의 평균 값


Max / Min

max : 최대값 함수
min : 최소값 함수


Stddev / Variance

stddev : 표준편차
variance : 분산


Group by

groupby : 그룹화

deptno로 그룹화


select deptno, sal from empPK group by deptno;

위의 쿼리 처럼 그룹화 한 필드와 일반 필드를 같이 select 하게 되면 오류가 남.

좀 더 명확한 이유는
실행순서에 따라 group by 가 select 보다 먼저 실행되는데,
그룹화 한 필드의 row 와 그룹화 안한 필드의 row 가 일치하지 않기 때문에 오류가 난다


그룹화한 필드끼리는 같이 select 할 수 있다.


Group by 조건절 표현

having : 그룹화 조건




student table 에서 deptno1 과 weight 를 이용한 그룹화를 적용, 과별로 (deptno1 별로) 학생의 몸무게 합계를 구하기


2차 그룹핑


professor table 에서 deptno 를 그룹화해서 bonus 를 받는 사람의 수와 보너스 합계를 deptno 오름차순으로 출력하세요


연도별로 그룹화


연도별로 (10단위까지) 그룹화


연도별로 (10단위까지) pay 의 개수와 total 금액


select 에서 aliasing 이 들어간 후에 order by 가 실행되기 때문에 order by 에서 aliasing 한 별칭으로 정렬할 수 있다.


오늘 sql 끝


Linux 미션
day 7 project, com.tech.gt002.car4 package, BenzClass.java, CarClass.java, CarMakeClass.java, EquusClass.java, SonataClass.java 출력하기


profile
개발자 준비의 준비준비중..

0개의 댓글