데이터베이스

데이터베이스

Database - 그룹 함수 (실습)

==그룹 함수 실습== --컬럼명 : total , 1980 , 1981 , 1982 12 1 10 1 , 이렇게 출력될 수 있도록 만들기. select count(*) as "TOTAL", count(decode(substr(hiredate,1,4),1980,1)) as "1980", sum(decode(substr(hiredate,1,4),1981,1,0)) as "1981", sum(decode(to_char(hiredate,'yyyy'),1982,1,0)) as "1982" from emp; ==문제 접근== 1)decode 함수를 이용해서 , substr(hiredate,1,4)값이 1980이라면 , 1을 출력하게 만들고 그 갯수를 센다. 2)decode 함수를 이용해서 , substr(hire..

데이터베이스

Database - 그룹함수 개념 + 예제

select절에는 일반컬럼과 그룹컬럼이 같이 쓰일 수 없다. ex) sum에 대한 정보는 1개인데 나머지 12개의 정보를 출력해서 매치하는 것이 불가능 하기 때문이다. -그룹 함수 COUNT : 행의 개수를 카운트한다. select count(*) from emp; NULL을 빼고 계산한다. select count(comm) from emp; ==예제== 직무의 종류가 몇 종류인지 출력 select count(distinct(job)) from emp; ==예제== 30번 부서에 근무하고있는 사원의 수 select count(*) from emp where deptno = 30; SUM : 해당 열의 총 행의 합계를 구한다. select sum(sal) from emp AVG : 해당 열의 총 행의 평균..

데이터베이스

Database - NVL함수와 DECODE

NVL함수의 개념은 되게 간단하다 NULL값은 계산이 안 되기 때문에 NULL인 경우에는 그 안에 대체숫자 or 문자열을 넣는 함수이다 select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) from emp; ==예제== null 값이면 문자열을 넣으려면 어떻게 해야 될까? mgr의 값은 NUMBER인데 어떻게 문자로 대체할 수 있을까? !!!MGR자체를 to_char로 형 변환을 시키면 된다.!!! select empno,ename,nvl(to_char(mgr),'CEO') from emp; decode함수는 그 값이 10,20등등이면 내가 원하는 값을 추가하는 거임 select empno,ename,deptno,decode(deptno,10,'ACCOUNTIN..

데이터베이스

Database - 형 변환 함수

문자열을 날짜 형으로 변환하는 TO_DATE select TRUNC(sysdate-to_date('2022-05-30','yyyy-mm-dd'),0) from dual; 날짜나 숫자 형을 문자로 변화하는 TO_CHAR select sysdate,to_char(sysdate,'mm/dd/yy') from dual;

데이터베이스

Database - 날짜 관련 함수

날짜 관련 함수 SYSDATE, MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND, TRUNC SYSDATE : 시스템의 현재 날짜 select sysdate +100 from dual; ==예제== 근무일수를 구하여라 (소수점 제거) select empno,ename,hiredate,TRUNC(sysdate-hiredate,0) 근무일수 from emp; MONTHS_BETWEEN : 날짜와 날짜 사이의 개월을 계산 ==예제== 근무 월수를 구하여라 select empno,ename,hiredate,TRUNC(months_between(sysdate,hiredate),0) "근무 월수" from emp; ADD_MONTHS : 날짜에 개월을 더한 날짜 계산..

데이터베이스

Database - 실습 1,2,3,4,5

==실습1== SMITH라는 사람을 검색하고 싶을 때 소문자일지 대문자일지 모를 경우 검색할 수 있는 쿼리 작성 select * from emp where lower(ename) = 'smith'; select * from emp where upper(ename) = 'SMITH'; ==실습2== 이름의 세번째 자리가 R인 직원을 검색해보시오. select * from emp where ename Like('__R%'); select * from emp where substr(ename,3,1) = 'R'; select * from emp where instr(ename,'R',3,1) = 3; ==실습3== 이름의 끝자리가 N으로 끝나는 직원을 검색해보세요. select * from emp where ..

초보병일이
'데이터베이스' 카테고리의 글 목록 (3 Page)