본문 바로가기

공부하기/Data Base

[Oracle 공부하기]INSERT ALL INSERT ALL : 다중테이블에 같은 조건의 데이터를 입력할 경우 한개의 INSERT문으로 처리 가능 INSERT INTO EMP_HIR VALUES(EMPNO, ENAME, HIREDATE)SELECT EMPNO, ENAME, HIREDATEFROM EMPWHERE DEPTNO = 20; INSERT INTO EMP_MGR VALUES(EMPNO, ENAME, MGR)SELECT EMPNO, ENAME, MGRFROM EMPWHERE DEPTNO = 20; => INSERT ALL INTO EMP_HIR VALUES(EMPNO, ENAME, HIREDATE) INTO EMP_MGR VALUES(EMPNO, ENAME, MGR) SELECT EMPNO, ENAME, HIREDATE, MGR FROM .. 더보기
[Oracle 공부하기]데이터 딕셔너리와 데이터 딕셔너리 뷰 데이터 딕셔너리 : 데이터베이스 자원을 효율적으로 관리하기 위한 다양한 정보를 저장하는 시스템 테이블 사용자가 바로 조회 할 수 없다 데이터 딕셔너리 뷰 : 데이터 딕셔너리 내용을 사용자가 이해할 수 있는 내용으로 변환하여 제공하는 객체. USER_데이터 딕셔너리 : 자신의 계정이 소유한 객체 등에 관한 정보를 조회 테이블, 인덱스, 뷰 등과 같이 자신의 계정이 소유한 객체의 정보를 저장 ex) USER_TABLES - 테이블 이름 확인 가능. ALL_데이터 딕셔너리 : 자신 계정소유 또는 권한을 부여받은 객체 등에 관한 정보를 조회 ex) ALL_TABLES - OWNER, TABLE_NAME컬럼값의 내용 확인 가능. DBA_데이터 딕셔너리 : 데이터베이스 관리자만 접근 가능한 객체 등의 정보를 조회 .. 더보기
[Oracle 공부하기]가상컬럼 가상컬럼11g에서 새롭게 추가된 항목으로 실제로 관리하는 컬럼이 아니라 실제컬럼을 이용해서 가상적으로 등록된 컬럼ex)CREATE TABLE VT001( NO1 NUMBER, NO2 NUMBER, NO3 NUMBER GENERATED ALWAYS AS (NO1+NO2) VIRTUAL); INSERT 작업시 NO3까지 넣으면 ERROR 발생 -> 올바른 INSERT 작업 쿼리 INSERT INTO VT001(NO1, NO2) VALUES(1, 2); UPDATE 작업시 변경한 수치가 그대로 적용됨 더보기
[Oracle 공부하기]Oracle 11g에서 추가된 함수 11g에서 새롭게 추가된 함수 LISTAGG정규화된 테이블을 비정규화 해서 출력세로로 출력된 데이터를 가로로 나열해주는 함수ex) SELECT DEPTNO,LISTAGG(ENAME, '**') WITH GROUP (ORDER BY HIREDATE) "LISTAGG"FROM EMPGROUP BY DEPTNO; PIVOTROW단위를 COLUMN단위로 변경해서 한눈에 보기 편한 레포트를 만들어 주는 함수ex) SELECT * FROM (SELECT DEPTNO, JOB, EMPNO FROM EMP)PIVOT(COUNT(EMPNO)FOR JOB IN('CLERK; AS "CLERK",'MANAGER' AS "MANAGER",'PRESUDENT' AS "PRESIDENT",'ANALYST' AS "ANALYST".. 더보기
[Oracle 공부하기]계층형 쿼리 계층형 쿼리데이터 조회할 때 상위와 하위 관계를 표시하는데 사용하는 함수함수명 : CONNECT BYex) 1) SELECT LEVEL, LPAD(EMPNO, LEVEL*4,'*') AS EMPNO1, ENAME, MGRFROM EMPSTART WITH NGR IS NULLCONNECT BY PRIOR EMPNO = MGR; 2) SELECT LEVEL, LPAD(ENAME, LEVEL*4, '*') AS ENAME1, SUBSTR(SYS_CONNECT_BY_PATH(ENAME,'-'),2) ENAME2, MGR FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO = MGR; 3) 레벨별로 급여 합계와 사원수를 조회하는 경우 SELECT LEVEL, SUM(.. 더보기
[Oracle 공부하기]소계 관련 함수 ROLLUP 주어진 데이터들의 소계를 구해주는 함수 부서별/담당 업무별 인원소계와 급여 소계 가능 ex) SELECT DEPTNO, JOB, SUM(SAL) FROM EMP GROUP BY ROLLUP(DEPTNO, JOB) CUBE 주어진 데이터들의 전체 총계까지 구해주는 함수 ROLLUP과는 다르게 전체 총계가 맨위에 출력됨 ex) SELECT DEPTNO, JOB, COUNT(*), SUM(SAL) FROM EMP GROUP BY CUBE(DEPTNO, JOB) 더보기
[Oracle 공부하기] sql*plus 명령어 모음 편집 실행 명령어List : 마지막에 실행된 쿼리를 호출(쿼리버퍼에서 조회)ex) select * FROM emp list 실행시 위의 쿼리가 다시 조회/ : 마지막에 실행된 쿼리를 바로 실행(List와 다르게 보여주지 않고 실행)RUN : 마지막에 실행한 쿼리를 보여주고 실행(/와 다른점은 쿼리 내용을 보여줌) List + / = RRUN 파일 명령어EDIT : 파일 내용을 메모장에서 편집할 수 있도록 하는 명령어메모장을 닫으면서 저장하고 List 및 / 실행HOST : oracle을 종료하지 않고 OS명령어를 사용할 수 있도록 DOS로 전환하는 명령어 다시 돌아갈때는 EXIT 명령어 사용SAVE : SQL버퍼내의 현재 내용을 실제 파일로 저장 SAVE filename[.확장자] .확장자가 없을경우 ... 더보기
[Oracle 공부하기] sql plus 간단 명령어 // 관리자 로그인sqlplus sys/[pass] as sysdba //다른 계정으로 이동하는 명령어connect hr/[pass] //현재 접속해 있는 사용자 아이디 확인show user //계정이 잠겨 있을경우//처음에 풀지 않았거나 로그인 실패를 몇번 할 경우 잠기는 경우 발생alter user scott account unlock //db가동 및 정지 명령어startup --가동shupdown --정지 // 사용자 계정 비밀번호 변경alter user scott identified by tiger 더보기