본문 바로가기

Oracle DataBase

(64)
SQLGate2010 데이터 가져오기 1. 테이블을 생성 ziptbl 2. www.zipfinder.co.kr 에서 우편번호원본파일 txt 파일을 다운받는다. 3. 도구 -> 데이터 가져오기 4. ZUPTBL 선택 5. 텍스트파일 선택 6. TXT 파일 경로 지정 7. default 값이 csv로 잡혀져있으므로 txt 로 선택 해줘야 한다. 8. 선택 9. 다음 10. 첫번쨰 행 2 필드 이름이 있는 행 1로 설정 11. 다음 12. 다음 13. 확인후 다음 14. 레코드 추가 해야 함으로 추가 15. 실행 과정 16. 데이터 입력후에 commit
7day -- 7일차 --(9) 10번 부서중에서 30번 부서에는 없는 업무를 하는 사원의 사원번호, 업무, 이름, 부서명, 입사일, 지역을 출력하라. SELECT EMPNO, JOB, ENAME, dname, hiredate, loc FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE E.DEPTNO = 10 AND JOB !=ALL (SELECT JOB FROM EMP WHERE DEPTNO=30); -- not in 도 가능 --(10) 10번 부서와 같은 일을 하는 사원의 사원번호, 업무, 이름, 부서번호, 부서명, 지역, 급여를 급여가 많은 순으로 출력하라. select empno, job, ename, e.deptno, dname, sal FROM EMP E J..
문제3 조인 & 서브쿼리 --(1) EMP와 DEPT TABLE을 JOIN하여 부서번호, 부서명, 이름, 급여를 출력하라. select e.deptno 부서번호,d.dname 부서명,e.ename 이름,e.sal 급여 from dept d,emp e where d.deptno = e.deptno; --(2) 이름이 'ALLEN'인 사원의 부서명을 출력하라. select e.ename 사원이름,d.dname 부서명 from emp e join dept d on e.deptno = d.deptno where e.ename = 'ALLEN'; --(3) DEPT Table에 있는 모든 부서를 출력하고, EMP Table에 있는 DATA와 JOIN하여 -- 모든 사원의 이름, 부서번호, 부..
6day -- 6일차 -- JOIN & Sub-Query -- 관계형 DB? /* 회사사원 사원번호 사원명 직책 부서명 부서전화번호 고객이름 고객전화번호 1 완샘 강사 교육팀 011-111-1111 최정빈 1234-1234 1 완샘 강사 교육팀 011-111-1111 김도영 2234-2234 2 성일 인턴 교육팀 011-111-1111 이성치 3333-3333 2 성일 인턴 교육팀 011-111-1111 최정빈 1234-1234 회사사원 사원번호 사원명 직책 부서번호(FK : Foreign Key) 1 완샘 강사 10 2 성일 인턴 10 부서 부서번호(PK) 부서명 부서전화번호 10 (Primary Key)교육팀 011-111-1111 20 */ -- 오라클 사전(dictionary, dict) : 테이블명(ta..
5day -- 5일차 --(7) 입사일부터 지금까지의 날짜수를 출력하라. -- 부서 번호, 이름, 입사일, 현재일, 근무일수(소수점 이하 절삭), -- 근무년수(반올림),근무월수(30일 기준,반올림), 근무주수(반올림)를 출력하라. SELECT DEPTNO, ENAME, HIREDATE, SYSDATE, TRUNC(SYSDATE - HIREDATE) 근무일수, ROUND((SYSDATE-HIREDATE)/365) 근무년수, ROUND((SYSDATE-HIREDATE)/30) 근무월수, ROUND((SYSDATE-HIREDATE)/7) 근무주수 FROM EMP; --(5) 급여가 $1,500 부터 $3,000 사이의 사람은 급여의 15%를 회비로 지불하기로 하였다. -- 이를 이름, 급여, 회비(-2자리에서 반올림..
4day -- 4일차 /* select from where group by having order by */ -- 집합함수, 분석함수 SELECT AVG(SALARY)-- , first_name 일반 컬럼은 집합함수와 같이 쓰지 못함 FROM EMPLOYEES; -- group by : 특정한 컬럼으로 그룹을 지어주는 것 SELECT AVG(SALARY) 부서별평균월급, DEPARTMENT_ID, COUNT(*) 부서인원, max(salary) 부서최고월급, min(salary) 부서최저월급 FROM EMPLOYEES GROUP BY DEPARTMENT_ID; -- having : 그룹에 대한 조건절 SELECT AVG(SALARY) 부서별평균월급, DEPARTMENT_ID, COUNT(*) 부서인원, max(s..
문제2 (function) --(1) EMP Table에서 이름, 급여, 커미션 금액, 총액(sal+comm)을 구하여 총액이 -- 많은 순서로 출력하라. 단, 커미션이 NULL인 사람은 제외한다. select ename 이름,sal 급여,comm "커미션 금액",sal+nvl(comm,0) 총액 from emp where comm is not null order by 4 desc; --(2) 10번 부서의 모든 사람들에게 급여의 13%를 보너스로 지불하기로 하였다. -- 이름, 급여, 보너스 금액, 부서 번호를 출력하라. select ename 이름,sal 급여,(sal*0.13) "보너스 금액",deptno "부서 번호" from emp where deptno = 10; --(3) 30번 부서의..
3day -- 3일차 hr 계정 SELECT * FROM TAB; -- 해당 스키마에서 접근할 수 있는 테이블 리스트 DESC EMPLOYEES; SELECT * FROM EMPLOYEES WHERE LOWER(LAST_NAME) LIKE '%king%'; SELECT regexp_replace( REGEXP_REPLACE(PHONE_NUMBER, '(\d{3})\.(\d{2,3})\.([0-9]{4})', '(\1) \2-\3'), '\.', '-'), phone_number FROM EMPLOYEES; SELECT FIRST_NAME, JOB_ID, REGEXP_SUBSTR(JOB_ID,'(.+)(_)([A-Z]+)',1, 1,'i', 3) FROM EMPLOYEES; SELECT FIRST_NAME, JOB..