본문 바로가기

분류 전체보기

(143)
SQL table backup emp_backup 이라는 이름으로 emp 테이블과 똑같은 테이블을 생성합니다. create table emp_backup as select * from emp; → select * from emp_backup; ——→ 확인 SQLdeveloper 로 백업하는 방법 엑셀이나 csv 로 생성해 놓는다. 백업 방법 오른쪽 버튼 - 데이터 익스포트 형식을 csv 또는 엑셀로 변경 해 준다. 다름이름 저장 의 단일파일을 → 별도의 파일로 선택 저장위치 내가원하는위치 설정 저장위치 데스크탑에서 디렉토리이름 백업을 생성하여 저장해 준다. (다른방법으로해도됨) 보면 메모장으로 생성되어있음
SQL [DML문] Drop - 수행되면서 암시적으로 commit 전부 다 지운다. 취소여부 - 불가능 플래쉬백 여부 - 가능 수행이 되면서 commit 이 자동적으로 수행된다. → 그래서 rollback 안됨. drop table emp; rollback; ———————> 안됨. 도스창에서 휴지통 보는법 show recyclebin; 도스창에서 휴지통 비우기 purge recyclebin 오라클에서 휴지통 보는법 select * from user_recyclebin; 휴지통에서 emp 테이블을 복구하기 flashback table emp to before drop ; select * from emp; —————————> 다시 나타남.
SQL [DML문] Truncate 데이터 삭제 복구불가 저장구조만 남긴다. delete 보다 더 삭제가 빠르다. 취소여부 - 불가능 플래쉬백 여부 - 불가능 truncate 와 drop 의 차이는 truncate 는 테이블의 구조를 남겨둡니다. 테이블의 구조를 남겨두면 나중에 데이터를 새로 입력할때 테이블을 생성하지않아도된다. truncate table emp; rollback; select * from emp; → rollback 해도 조회안됨.
SQL [DML문] Delete 데이터삭제 where 절 없이 작성하면 절 대 안 됨 취소여부 - 가능 rollback 플래쉬백 여부 - 가능 휴지통에 없다. undo segment 라는 공간에 들어가기 때문에 flashback table 로 복구해야한다. delete from 테이블 명 where 지울 데이터 조건 예제 80 스캇의데이터 지우기 delete from emp where ename = 'SCOTT'; 문제 390 월급이 3000 이상인 사원들을 지우기 delete from emp where sal >=3000; 모르고 delete → commit 한 자료 복구 방법 delete from emp; —————> 테이블을 모두 지움 commit; —————→ 다 저장되버림 rollback; ——————> 롤백 안됨 select * fro..
SQL [DML문] Update 데이터 수정 DML - data manipulation language 데이터 조작언어 update 수정할데이터테이블명 set 변경할 컬럼 = 값 where 변경할 데이터 조건 1. where 절없이 작성하면 모든행이 갱신된다. 2. UPDATE 절은 모든 절에서 서브 쿼리 작성이 가능하다. update → subquery 가능 set → subquery 가능 where → subquery 가능 예제 79 SCOTT 의 월급을 3900 으로 수정하시오 update emp set sal =3900 where ename = 'SCOTT'; 문제 387 부서번호가 10번인 사원들 커미션을 9000 으로 변경 UPDATE EMP set comm = 9000 where deptno =10 ; 문제 388 부서번호가 10,20..
SQL [DML문] Insert 데이터 입력 DML - data manipluation language 데이터 조작언어 insert into 테이블명 ( 컬럼이름1, 컬럼이름2,컬럼이름3,,,) → 만약 컬럼이름을 기술하지 않았다면 원래있던 순서에 맞게 작성해야한다.. values ( 컬럼값1, 컬럼값2, 컬럼값3 ,,,,,,,,,,,,) —→위에 썼던 컬럼 순서대로 작성 예제 사원테이블에 데이터를 입력하는데 사원번호는 2812 사원이름은 JACK 월급은 3500, 입사일은 2021.11.16 직업은 ANALYST insert into emp(empno, ename, sal, hiredate,job) values (2812, 'JACK', 3500, to_date('2021/11/16', 'RRRR/MM/DD'),'ANALYST'); 숫자는 그냥써..
SQL Sub Query Select 절 = Scalar 서브쿼리 스칼라 서브쿼리는 Where 절이 없다면 데이터 분석함수로 쓰는게 더 속도가 빠르다. 예제 : 사원이름,월급, 사원테이블의 최대월급 출력 select ename, sal, (select max(sal) from emp ) as 최대월급 from emp; 문제 : 사원이름,월급, 사원테이블의 평균월급 출력 select ename, sal, (select avg(sal) from emp ) as 최대월급 ——>컬럼 가공하는것 안좋음 from emp; ——>튜닝전 emp 테이블을 두번 출력했기때문에 성능이 느리다. 스칼라 서브쿼리 대신에 데이터 분석함수를 이용하여 출력 해 보겠다. select ename, sal, avg(sal) over () from emp; sum (sal) over () or avg (..
SQL Sub Query From 절 In Line View from 절의 서브쿼리 라고도 하거나 in line view 라고도 한다. 서브쿼리를 view 로 생성하면 더 간단하게 작성 가능하다. 문제 : 순위를 1등만 출력 select * from ( select ename, sal, rank() over (order by sal desc)as 순위 from emp ) where 순위 =1; 범죄발생 시간 테이블 생성 문제 366 언피봇을 이용하여 컬럼을 데이터로 넣고 살인이 일어나는 시간과 건수 출력하시오 일단 언피봇문 생성 select * from crime_time unpivot (건수 for 시간 in (F0T3, F3T6 , F6T9 , F9T12 , F12T15, F15T18, F18T21, F21T24) ); 살인의 시간, 건수를 구한다. selec..