본문 바로가기

DataBase

다중 multi insert Oracle 9i 이상에서 지원 됩니다. -- Unconditional insert into ALL tables INSERT ALL INTO sal_history VALUES(empid,hiredate,sal) INTO mgr_history VALUES(empid,mgr,sysdate) SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR FROM employees WHERE employee_id > 200; -- Pivoting insert to split non-relational data INSERT ALL INTO Sales_info VALUES (employee_id,week_id,sales_MON) INTO Sales.. 더보기
날짜 계산 SQL select months_between(sysdate,to_date('2002-12-22','yyyy-mm- dd')) -- months_between(A,B) = A-B/30 --select add_months(sysdate,4) -- 특정일의 달수 더한 날 --select next_day(sysdate,'friday') -- 특정일의 다음주 요일 --select last_day(sysdate) -- 특정일의 해당 월의 마지막 날 --select round(sysdate,'dd') -- 특정일의 반올림(오후면 다음날..) --select trunc(sysdate,'ww') -- 특정일의 주 첫일 찾기 from dual # 날짜계산 /* 어제 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE-1) A.. 더보기
계층 구조의 조회(Hierarchical Queries) 오라클 데이터베이스 scott유저의 emp테이블을 보면 empno와 mgr컬럼이 있습니다. mgr 컬럼의 데이터는 해당 사원의 관리자의 empno를 의미 합니다. 예를 들어서 아래의 데이터를 보면은.. EMPNO ENAME SAL MGR ------ --------- ------- ---------- 7369 SMITH 800 7902 7902 FORD 3000 7566 empno 7369사원의 관리자는 7902의 empno를 가진 사원이며 empno 7902사원의 관리자는 7566의 empno를 가진 사원입니다. 이런 상위 계층과 하위계층의 관계를 오라클에서는 START WITH와 CONNECT BY를 이용해서 쉽게 가져올 수 있습니다. 상품의 카테고리(대분류,중분류,소분류...)를 조회 할때 STAR.. 더보기
테이블스테이스 확인쿼리 * Online상태에서 데이터파일 Rename 순서 0. sqlplus 접속 SQL> connect / as sysdba 1. 테이블스페이스를 OFFLINE 및 확인 SQL> SELECT FILE_NAME, -- 해당하는 데이터파일 확인 TABLESPACE_NAME, BYTES, -- SIZE확인 STATUS -- OFFLINE인지 확인 FROM DBA_DATA_FILES WHERE TABLESPACE_NAME ='해당 테이블스페이스명'; SQL> ALTER TABLESPACE 해당 테이블스페이스명 OFFLINE; 2. 운영 체제 명령을 이용하여 해당 테이블스페이스에서 사용하고 있는 데이터파일을 복사(copy). 3. 해당 테이블스페이스에서 사용하고 있는 데이터파일들에 대하여 각각 ALTER TABLES.. 더보기
오라클 버젼확인 쿼리 SELECT * FROM SYS.V_$VERSION 더보기
중복행제거 중복된 로우를 찾아보기만 하는 경우 SELECT EMPNO, ENAME FROM EMP A WHERE ROWID > ( SELECT MIN(ROWID) FROM EMP B WHERE A.EMPNO = B.EMPNO ); 중복된 로우를 찾아서 ROWID가 더 큰 것을 삭제하는 경우 이 때 ROWID가 더 큰 것은 아마도 뒤에 생긴 데이터일 가능성이 더 많기 때문이다 DELETE FROM EMP A WHERE ROWID > ( SELECT MIN(ROWID) FROM EMP B WHERE A.EMPNO = B.EMPNO ); 만약 나중에 들어온 데이터를 살리고 먼저 들어온 데이터를 삭제하고자 한다면 WHERE 조건의 부등호와 MIN을 MAX로 바꾸어서 다음과 같이 하면 된다. DELETE FROM EMP A.. 더보기
[펌] Mysql 명령어 정리 자주쓰는 명령 정리 # root암호설정 - root로 로그인하여 해야함 % mysqladmin -u root password '변경암호' % mysqladmin -u root -p기존암호 password '변경암호' root암호변경설정 PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! This is done with: /usr/bin/mysqladmin -u root -p password 'new-password' /usr/bin/mysqladmin -u root -h ns.dbakorea.pe.kr -p password 'new-password' DB작업 DB생성: mysql> create database DB명 ( or % mysqladmin .. 더보기
[펌] 쿼리 - 사용자별 테이블 생성 스크립트 알아내기 select 'rem **** Create Table DDL for '||chr(10)|| 'rem **** '||username||''''||'s tables'||chr(10)||chr(10) from dba_users where username = upper ('&&1') / select table_name y, 0 x, 'create table ' || rtrim(table_name) || '(' from dba_tables where owner = upper('&&1') union select tc.table_name y, column_id x, rtrim(decode(column_id,1,null,','))|| rtrim(column_name)|| ' ' || rtrim(data_type) ||.. 더보기
[펌] import/export 사용 * import/export. 데이터베이스의 백업(backup)과 복구(recovery), 다른 머신으로 데이터나 데이터 베이스를 옮기기 위해 사용된다. 오라클의 imp/exp 유틸은 오라클전용 binary file 형식으로 데이터를 가공하므로 오라클 사이에서만 쓸수 있다. 정리해 볼까? import/export 유틸리티의 사용목적 - 백업과 복구 ( 작은 디비의 경우 ) - 데이터 재구성 ( re - fragmentation, organization ) - 디비가 날아갈 것에 대비해서. - 디비간의 tablespace 이동. * 사용법 imp/exp 라고 쳐도 아무 응답이 없는 경우... DBA등 시스템 관리자가 보안상의 이유로 막았을 수 있고( 이럴경우, 전화해야지), 아닌 경우는 path 에 추가되.. 더보기
[펌] 오라클 딕셔너리 http://www.databaser.net/oracle/often_ref_dictionary.htm 자주 참조하는 딕셔너리(출처: 마소지 2003.09) 분류 성능뷰 / 딕셔너리 딕셔너리 세션과 관련된 정보 V$SESSION 세션에 대한 전반적인 정보를 보여준다 V$SESSTAT 세션의 현황에 대한 통계정보를 보여준다 V$SESSION_WAIT 세션의 WAITING 통계정보를 보여준다 V$SESSION_EVENT 세션의 현재 WATING EVENT를 보여준다 V$SESS_IO 세션의 IO현황을 보여준다 V$STATNAME SESSSTAT의 STATUS의 이름을 보여준다. 성능 관련 정보 V$SYSTAT 시스템 전반의 성능 통계 정보를 보여준다 V$SYSTEM_EVENT 시스템의 WATING EVENT별.. 더보기