-
728x90
SQL 기초2
단일행 함수
- 대소문자 변환 함수
함수 결과 lower('SQL COURSE') sql course upper('sql course') SQL COURSE initcap('SQL Course') Sql Course ___ - 문자 조작 함수
함수 결과 substr('HelloWorld',1,5) Hello length("HelloWorld') 10 instr('HelloWorld','w') 6
- 숫자 함수
함수 결과 ROUND(45.926) 45.93--------반올림 TRUNC(45.926) 45.92-----------버림 ___ - 날짜 조작함수
함수 결과 MONTHS-BETWEEN 두 날짜 간의 월 수 ADD-MONTHS 날짜의 월 추가 LAST_DAY 월의 마지막 날 TO_NUMBER:문자열을 숫자 형식으로 변환
TO-DATE:문자열을 날자 형식으로 변환
TO-CHAR(salary,'$999,999,999')숫자를 문자화한후 1000단위 부여
NVL, NVL2함수
- Null인 행을 실제 값으로 변환
- 데이터 유형이 일치해야 됨
- 사용할 숭 ㅣㅆ는 데이터 유형은 날짜, 문자 및 숫자
NVL(commission_pct,0)//commission_pct가 null 이면 0
NVL2(commission_pct, 'SAL+COMM','SAL')
//commission_pct가 null이 아니면 SAL+COMM, null이면 SAL___ >## 조건부 표현식(CASE, DECODE) ___ ```ts //case식 select last_name, job_id, salary, CASE job_id when 'IT_PROG' then 1.10*salary when 'ST_CLERK' then 1.15*salary else salary END from employee //직업이 'IT_PROG이면 월급*1.10,ST_CLERK이면 월급*1.15, 이외는 그냥 월급 //DECODE식 select last_name, job_id, salary DECODE(job_id, 'IT_PROG',1.10*salary 'ST_CLERK',1.15*salary ,salary) from employee //의미는 위와 같다.
그룹함수(AVG, COUNT, MAX, MIN, SUM)
select avg(salary), max(salary), min(salary), sum(salary) //min과 max는 숫자, 문자 및 날짜데이터 유형에 사용 가능 select min(hire_date), max(hire_date) from employees select count(*)//테이블의 행 수를 반환 select count(commission_pct) //null이 아닌 값을 간진 행 수 반환
GROUPY절,HAVING
- GROUP BY 절을 사용하여 테이블의 행을 더 작은 그룹으로 나눌 수 있음
- 그룹 함수에 속하지 않는 SELECT LIST의 모든 열을 GROUP BY 절에 있어야 함
- HAVING절을 사용할 경우
- 행이 그룹화
- 그룹 함수가 적용
- Having절과 일치하는 그룹이 표시
SELECT deparmtment_id, job_id, AVG(salary) from employee groupy by department_id, job_id; //HAVING절 사용 select department_id, max(salary) from employees groupy by department_id having MAX(salary)>10000; //그룹함수 중첩가능 select max(avg(salary)) //급여 평균의 최대값