Database/SQL (oracle, mysql)
-
[SQL] TRIGGER (트리거) 사용법Database/SQL (oracle, mysql) 2019. 8. 13. 11:49
트리거 생성 CREATE OR REPLACE TRIGGER increase After insert ON dvd_rent for each row BEGIN update dvd_info set dvd_left_cnt = dvd_left_cnt -1 where dvd_no=:new.dvd_no END; 트리거 삭제 간혹 트리거 생성을 소문자로 하면 삭제가 안되어 drop TRIGGER 사용자명."트리거명" 이런식으로 해야 할때가 있다. drop TRIGGER increase 트리거 조회 select * from ALL_TRIGGERS WHERE TRIGGER_NAME='increase';
-
[SQLD] SQLD 요약정리Database/SQL (oracle, mysql) 2019. 7. 15. 09:42
내가 정리한 SQLD요약본 파일 로우체인링 (Row Chaining)- 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태 로우 마이그레이션 (Row Migration) -데이터 블록에서 수정이 발생하면 수정된 데이터를 다른 블록의 빈 공간을 찾아 저장하는 방식이다. 위 두가지가 많이 발생되면 IO성능저하가 일어날 수 있다. 원자성 - 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다 일관성 - 트랜잭션 실행 전의 DB 내용이 잘못 되어 있지 않다면 트랜잭션 실행 이후에도 데이터베이스의 내용에 잘못이 있으면 안 된다 고립성: 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다 지속성: 트랜잭션이 성공적으로 수행되면 그 트..
-
[SQL] Level, max(lavel) 사용법, SQLD문제Database/SQL (oracle, mysql) 2019. 6. 5. 15:05
sqld문제중 단답형 2번 정리 Level max(Level) max(Level)이 들어갈 자리에 *을 넣고 emp 테이블로 조회를 해보았다. (* 덤프 파일은 첨부) 결과는 위와 같다. 레벨은 오른쪽 사진과 같이 1 부터 4까지의 숫자가 나오는데 어떤 기준으로 레벨을 나누는지 이해할수 없었다. select * from scott.emp // emp테이블에서 start with mgr is null // mgr이 null일때 시작한다. connect by prior empno=mgr; // for문과 비슷하지.empno와 mgr이 같은지 계속 비교 하나씩 뜯어본다면 KING의 MGR 은 NULL이다 -> 1 JONES의 MGR은 7839이다. 사번 7839(KING)의 MGR은 NULL이다 ->2 SCO..
-
[ SQL ] 패키지 선언Database/SQL (oracle, mysql) 2019. 6. 4. 14:34
패키지 - 동일한 프로시저명 또는 함수명을 구분한다 (NameSpace개념) 패키지 선언! CREATE OR REPLACE PACKAGE 패키지명 IS 정의될 저장프로시저와 저장함수 END; / 패키지 실행! BODY CREATE OR REPLACE PACKAGE BODY 패키지명 IS 정의될 저장 프뢰시저와 저장함수 END; / 실행) EXEC 패키지명.저장프로시저명 트리거 trigger - 이벤트 처리 ~ 했을때 수반되는 처리 - 특정테이블에 이벤트(insert, delete, update)가 발생 했을 시 다른테이블에 연관된 내용을 변경하도록 하는일을 의미한다. 형식) CREATE OR REPLACE TRIGGER 트리거명 ( BEFORE | AFTER ) (INSERT | DELETE | UPDA..
-
[SQL] PL/ SQLDatabase/SQL (oracle, mysql) 2019. 5. 31. 18:56
PL / SQL - SQL 의 장점은 잘만든 쿼리문 하나로 원하는 데이터를 검색 조작할 수 있다는 점인데, SQL문 자체는 비 절차적 언어이기 때문에 몇개의 쿼리문 사이에 어떠한 연결 및 절차성이 있어야 하는 경우는 사용할 수 없다. - IF문, FOR문 안에 SQL를 사용할 수 있다. - 이 점을 극복하기 위해서 SQL언어에 절차적인 프로그래밍 언어를 추가해서 만든 것이 PL/SQL이다. PL / SQL 구조 DECLARE SECTION (선언부) - PL / SQL에서 사용하는 모든 변수나 상수를 선언 ex. b emp.empno%type;