Data Base_Oracle
-
SQL_ROLLBACKData Base_Oracle/SQL 2020. 1. 8. 23:21
ROLLBACK_수정 내역 취소 DML(Insert, Update, Delete)만 복구 할 수 있으며 항상 가능한 건 아니기 때문에 백업테이블을 사용하는 것이 가장 좋음 § 형식 [ SQL> rollback; ] # 예제 ▷ b_emp3 테이블에서 부서명이 'SALES'인 부서번호를 갖고 있는 사원의 정보를 삭제 [ SQL> delete from b_emp3 where deptno=(select deptno from dept where dname='SALES'); 6 행이 삭제되었습니다. select count(*) from b_emp3; ] COUNT( * ) 8 ▶ [ SQL> rollback; 롤백이 완료되었습니다. select count(*) from b_emp3; ] COUNT( * ) 14 ..
-
SQL_Sub Query_Update & DeleteData Base_Oracle/SQL 2020. 1. 8. 23:13
Sub Query _ DML에서 활용 여기서는 UPDATE와 DELETE만 다룰 예정입니다. UPDATE § 형식 [ SQL> update 수정table명 set 필드명 = 수정할 값, 필드명2 = 수정할 값2,,,; ] ※ 필드 내의 모든 값이 수정되기 때문에 잘 쓰이지 않는 방식 [ SQL> update 수정table명 set 필드명 = 수정할 값, 필드명2 = 수정할 값2,,, where 조건식; ] [ SQL> update 수정table명 set (필드명, 필드명2,,,) = (수정할 값, 수정할 값2,,,) where 조건식; ] ※ 수정할 값을 서브 쿼리를 이용해서 검색 # 예제 { 문제 } ▷ b_emp3 테이블에서 SCOTT의 업무와 급여가 일치하도록 JONES의 업무와 급여를 수정 [ S..
-
SQL_Sub Query_Table 만들기Data Base_Oracle/SQL 2020. 1. 7. 23:17
Sub Query_Table 만들기 DML작업시에는 항상 백업 Table을 생성해두는 것이 좋음 § 백업 테이블 만드는 형식 Full Backup 완전 백업 [ SQL> create table 백업table명 as select * from 원본table명; ] Partial Backup 부분 백업 [ SQL> create table 백업table명 as select * from 원본table명 where 조건식; ] Schema Backup 테이블 구조 백업 테이블의 구조만 가져오고 데이터는 백업하지 않는 형식 [ SQL> create table 백업table명 as select 필드명1,필드명2 from 원본table명 where 1=0; ] ※ where 조건식이 거짓이 되도록 설정 § 데이터가 비어..
-
SQL_Sub Query Pattern_Inline ViewData Base_Oracle/SQL 2020. 1. 7. 23:06
Sub Query Pattern Inline View View를 생성하지 않고 바로 작성해서 사용하는 방식 from 뒤에 서브쿼리가 나오는 패턴 튜닝 기법 중 하나 ※ 튜닝 : 테이블에 저장된 데이터가 많아도 원하는 데이터를 빠르게 화면에 출력할 수 있도록 하는 것 § 형식 ▷ [ SQL> ~ from ( 불러올 데이터만 검색이 되도록 작성 ) 테이블 별칭 ] # 예제 { 문제 - Inner Join } ▷ 업무가 MANAGER인 사원의 이름, 업무, 부서명, 근무지를 출력 { 풀이 - 일반적인 방법 } ▶ [ SQL> select ename, job, dname, loc from emp e, dept d where e.deptno=d.deptno and e.job='MANAGER'; ] ENAME JO..
-
SQL 다중 행 Sub Query_EXISTS 연산자Data Base_Oracle/SQL 2020. 1. 7. 22:56
EXISTS 서브쿼리에서 적어도 1개의 행을 리턴하면 참, 실행결과가 없다면 거짓 # 예제 { 문제 } ▷ emp테이블에서 적어도 한명의 사원으로부터 보고를 받을 수 있는 사원을 찾아서 사번, 이름, 업무, 급여 출력 { 에러 } ▶ [ SQL> select empno, ename, job, sal from emp where exist (select * from emp where emp.empno=mgr); ORA-00936: 누락된 표현식 ] ※ Oracle 10g 까지는 실행되지만 그 이후 버전에서는 테이블에 별칭을 부여해야 함 연산자도 exist에서 exists로 변경 { Exists 풀이 } ▶▶ [ SQL> select empno, ename, job, sal from emp e where ex..
-
SQL 다중 행 Sub Query 개요_IN & ALL 연산자Data Base_Oracle/SQL 2020. 1. 7. 22:38
다중 행 Sub Query 다중 행 서브 쿼리는 서브 쿼리에서 반환되는 결과가 둘 이상의 행일 때 사용 다중 행 Sub Query 연산자 종류 종류 의 미 IN 메인 쿼리의 비교 조건('=' 연산자로 비교할 경우)이 서브 쿼리의 결과 중에서 하나라도 일치하면 참 ANY 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 하나 이상이 일치하면 참 ALL 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 모든 값이 일치하면 참 EXISTS 메인 쿼리의 비교 조건이 서브 쿼리의 결과 중에서 만족하는 값이 하나라도 존재하면 참 IN 범위연산자 in과 동일한 연산자 메인 쿼리의 비교 조건과 서브 쿼리 결과들 중 일치하는 값들을 조회 #예제 { 에러 } ▷ 부서별로 최소급여를 받는 사원의 이름, 업무, 급여, 부서번..