본문 바로가기

전체 글260

SQL group by (문제) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 --부서별 연도별 01~03 04~06 / 07~나머지년도 인원을 계산하세요. -- -연도(column) --부서(row) select department_id, count(*), count(decode(to_char(hire_date,'yyyy'), 2001, 1, 2002, 1, 2003, 1)) as "1~3", count(decode(to_char(hire_date,'yyyy'), 2004, 1, 2005, 1, 2006, 1)) as "4~6", count(decode(to_char(hire_date,'yyyy'), 2007,.. 2019. 11. 18.
SQL group by having 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 --부서별 평균 급여 select deptno, avg(sal) from emp group by deptno; --부서별 최대급여, 최소급여 select deptno, max(sal), min(sa.. 2019. 11. 18.
SQL sum avg count max min 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 --합계, 평균, row의 개수 select sum(sal), avg(sal), count(sal), count(*) from emp; --comm합계, row의 갯수, comm의 갯수(null값이 있어서 4로 출력) select sum(comm), count(*), count(comm) from emp; --데이터 있는 것만 count select comm, count(comm) from emp; --2200 / 4 = 550 //null값은 빼고 계산된다. --sum(comm)/count(comm); select avg(comm) from emp; --.. 2019. 11. 18.
SQL CASE-WHEN-THEN --case when 일때 then 이거로 바꿔라 select deptno, case deptno when 10 then 'a' when 20 then 'b' when 30 then 'c' end as result from emp; --case when 일때 then 이걸로 바꿔 else 나머지는이거 select deptno, case deptno when 10 then 'a' when 20 then 'b' else 'c' end as result from emp; --when condtion(조건) select deptno, case when deptno=10 then 'a' when deptno=20 then 'b' else 'c' end as result from emp; --case 사용하여 직급.. 2019. 11. 15.
SQL DECODE --decode(식, 조건, 결과, 조건, 결과, 조건, 결과) select empno, ename, decode (deptno, 10, '영업', 20, '기획', 30,'개발') as result from emp; --decode(식, 조건,결과,조건,결과,기본값) select empno, ename, decode (deptno, 10, '영업','개발') as result from emp; --Q.10번부서의 급여는 10%인상, 20번부서는 20%인상, -- 나머지 부서는 동결 select empno, ename, sal, deptno, decode( deptno, 10, sal*1.1, 20, sal*1.2, sal) as salup from emp; --Q.각 직업별 급여 인상 select em.. 2019. 11. 15.
SQL NVL NVL2 --null을 aaa로 채우기 select nvl(null, 'aaa') from dual; --null값이 없으므로 test출력 select nvl('test','aaa') from dual; --null값을 1000으로 대체 select empno, ename, comm, nvl(comm,1000) from emp; select ename, sal, comm, sal*12+comm from emp; -- null값을 0으로. select ename, sal, comm, sal*12+nvl(comm,0) from emp; --null값에 문자 데이터 넣기 select ename, sal, comm, nvl(to_char(comm), 'no data') as result from emp; col resu.. 2019. 11. 15.
SQL DATE --오늘날짜 select sysdate from dual; --년월일 시간분초 출력 select to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual; --3달후 select sysdate, add_months(sysdate,3) from dual; --12달후 select sysdate, add_months(sysdate,12) from dual; --sysdate와의 차이점은? 업서. select current_date from dual; --lastday (이번달의 마지막날) select last_day(sysdate) from dual; select last_day(to_date('2019-02-02', 'yyyy-mm-dd')) from dual; --3달후 .. 2019. 11. 15.
SQL INSTR SELECT instr('abcdabcdabcd', 'a') from dual; SELECT instr('abcdabcdabcd', 'c') from dual; -- SELECT instr('abcdabcdabcd', 'c', 5) from dual; select instr('abcdabcdabcdabcd','a',5,2) from dual; --5번째자리부터 2번째에 만나는? select instr('abcdabcdabcdabcd','a',5,4) from dual; -- --emp 테이블의 ename에서 'S'가 포함된 사원의 --사원번호, 이름,부서코드, 입사일을 출력하시오 --(1) select empno, ename, deptno, hiredate from emp where ename like .. 2019. 11. 15.
SQL LPAD RPAD @ LPAD 왼쪽을 채워준다 SQL> select lpad('abc', 5, '*'), lpad('hong', 10, '#') 2 from dual; @ LPAD 공백으로 채울 수 있다. SQL> select lpad('abc', 10) ||'123' 2 from dual; @ LPAD 기호뿐 아니라 숫자, 2글자 이상 글자도 삽입 가능 SQL> select rpad('abc', 10, 's2') 2 from dual; @ RPAD 문자 오른쪽을 공백으로 채우기 SQL> select rpad('a', 10) ||'abc' 2 from dual; @ 급여 500당 * 출력하기 SQL> select empno, ename, sal, lpad('*', trunc(sal/500), '*') as result 2.. 2019. 11. 15.
SQL TRIM LTRIM RTRIM //TRIM LTRIM RTRIM// @ LTRIM //왼쪽 공백 삭제 SQL> select ltrim(' h ello ') 2 from dual; @ LTRIM SET // set에 지정된 문자를, 왼쪽부터 찾아 모두 삭제. SQL> select ltrim('abcabca', 'a') 2 from dual; @ LTRIM SET // 첫글자부터 막혀서 그대로 출력됨. SQL> select ltrim('eeeeeabc', 'abc') 2 from dual; @ RTRIM //오른쪽 공백 삭제 SQL> SELECT RTRIM(' HE LL O ') 2 FROM DUAL; @ TRIM / 앞뒤 공백 제거, 가운데 공백은 그대로 SQL> SELECT TRIM(' abcd abcd ')||'abc' 2 from.. 2019. 11. 15.
SQL 포맷 변경 환경변수 (약어) 설명 LINESIZE n 한 라인에 출력할 최대문자 수 기본값 SET LINESIZE 100; PAGESIZE n 한페이지에 출력할 최대 라인 수 기본값 SET PAGESIZE 10 COLUMN FORMAT 컬럼 데이터에 대한 출력 형식을 다양하게 지정하기 위한 명령어 @ cmd 라인과 페이지수 변경 SQL> set lines 150 //가로 길이 150 @ SQL> set pages 400 @ SQL> set pagesize 180 //한페이지에 보이는 사이즈 (목록..) 캡챠해둬... 디폴트값140 SQL> set linesize 100 // 디폴트값80 SQL> col job format a10 (char타입) //JOB 컬럼 하나에 대하여 가로길이 줄이기 // (10개까지 입력).. 2019. 11. 14.
SQLPLUS 실행 방법 & 명령어(일부) 컴퓨터관리 - 서비스 목록에 ORACLE 리스너 & 서비스 평소에는 수동으로 하고 사용할때에만 자동으로 하면 좋음. 모두 자동으로 해놓으면 컴퓨터가 느려짐 수동으로 cmd 에서 sqlplus 실행시 protocol 에러발생 ===================================== WINDOW - CMD sqlpplus scott/tiger //id- scott / pw-tiger 로 접속한다는 의미 ====================================== @ed //ed를 입력하면 메모장 켜짐 //수정후 종료-저장 //세미콜론x 하단의 /가 세미콜론 역할 @ / // 직전 내용 다시 불러오기 @ L //쿼리문 다시보기 위한 명령어 @ host 잠깐 나가기 @ dir 디렉토리 확인 .. 2019. 11. 14.
SQL 숫자 표현 (to char) SQL> select ename, sal, to_char(100000000.2345, '9,999,999') 2 from emp; SQL> select ename, sal, to_char(0.123, '9,999,999.99') 2 from emp; // .12로 출력 SQL> select ename, sal, to_char(0.123, '9,999,990.99') 2 from emp; // 0.12로 표현 2019. 11. 14.
반응형