[SIST] JDBC_days02
·
TIL/JDBC
1. 부서 번호를 입력받아서 emp 테이블 조회하기 hiredate는 Oracle에서 자료형이 DATE인데 일단 String으로 받아와도 문제없이 잘 출력은 된다. [주의!!] try-catch문 밖에 아래와 같이 코딩이 되어있는데.. Connection conn = null; Statement stmt = null; Connection 객체와 Statement 객체는 null로 선언 후 try-catch문 안에서 값을 집어넣어줬기 때문에 try-catch-finally의 finally 문에서 close() 닫는 작업을 해줘야 한다. 현재 ResultSet은 try-catch문 안에서 바로 값을 집어넣었기 때문에 닫는 작업을 하지 않아도 되지만 만약 밖에서 null로 초기 선언을 한다면 동일하게 clos..
[SIST] JDBC_days01
·
TIL/JDBC
오늘은 오전에 오라클로 DB 모델링했던 프로젝트를 발표하였고 오후부터 JDBC 수업을 시작하였다. 수업에 사용하는 jdk와 jre version는 1.8이라 1.8로 지정해주고 인코딩도 UTF-8로 변경한 뒤 수업을 시작하였다! 1. JDBC 1) [J]ava [D]ata [B]ase [C]onnectivity 약자 2) 자바 표준 인터페이스 - DBMS 연동 + 작업(CRUD) * CRUD? create read update delete.. 3) Data Base 연동 기술 2. Java 응용 프로그램 + Oracle DBMS 연동 Java 응용 프로그램 > JDBC(표준 인터페이스) < Oracle DBMS 연동 1) 오라클사에서 JDBC를 구현한 드라이버(driver)가 Oracle Driver이며..
[SIST] Oracle_days20
·
TIL/Oracle
1. 트랜잭션(Transaction) 1) 트랜잭션(Transaction)이란 일의 처리가 완료되지 않은 중간 과정을 취소하여 일의 시작 전 단계로 되돌리는 기능이다. 2) 결과가 도출되기까지의 중간 단계에서 문제가 발생하였을 경우 모든 중간 과정을 무효화하여 작업의 처음 시작 전 단계로 되돌리는 것 3) 일이 모두 완료되면 알리는 COMMIT 과 일의 취소를 알리는 ROLLBACK 이 쓰인다. 4) DML문을 실행하면 해당 트랜젝션에 의해 발생한 데이터가 다른 사용자에 의해 변경이 발생하지 않도록 LOCK(잠김현상)을 발생한다. 5) LOCK은 COMMIT 또는 ROLLBACK 문이 실행되면 해제된다. 예) 6) A 트랜잭션과 홍길동 트랜잭션 테스트 왼쪽 시트 창에서 UPDATE 문을 실행하고 커밋을 ..
[SIST] Oracle_days19
·
TIL/Oracle
1. 패키지(PACKAGE) 1) 관계되는 타입, 프로그램 객체, 서브프로그램(procedure, function)을 논리적으로 묶어 놓은 것은 의미 2) 패키지는 specification과 body 부분으로 되어 있으며, 오라클에서 기본적으로 제공하는 패키지가 있다. 3) SPECIFICATION 부분은 type, constant, variable, exception, cursor, sub program(저장프로시저, 저장 함수)이 선언된다. 4) BODY 부분은 cursor, subprogram 따위가 존재한다. 5) 호출할 때 '패키지_이름.프로시저_이름' 형식의 참조를 이용해야 한다. 예시1) ㄱ. SPECIFICATION 부분 CREATE OR REPLACE PACKAGE logon_pkg AS..
[SIST] Oracle_days18
·
TIL/Oracle
1. 트리거(Trigger) 1) 어떤 작업 전(before) 또는 작업 후(after) 트리거에 정의한 로직을 실행하는 PL/SQL의 한 종류 2) 대상(테이블)에 미리 트리거를 지정하면 어떤 이벤트(DML)가 발생할 때 자동으로 지정된 트리거가 작동(할당) 3) 트리거 예시 4) 트리거 키워드(예약어) ㄱ. 작업 전에 자동 처리되는 트리거 : BEFORE TRIGGER ㄴ. 작업 후에 자동 처리되는 트리거 : AFTER TRIGGER ㄷ. FOR EACH ROW : 행 마다 처리되는 트리거(ROW TRIGGER) ㄹ. REFERENCING : 영향받는 행의 값 참조 ㅁ. :OLD -> 참조되기 전에 열(컬럼)의 값 ㅂ. :NEW -> 참조한 후에 열(컬럼)의 값 5) 트리거 형식 【형식】 CREATE..
[SIST] Oracle_days17
·
TIL/Oracle
1. 저장프로시저 예제 다루기 예제1) 회원가입할때 ID 중복체크 하는 저장 프로시저 생성 가정 : emp 테이블에서 empno(ID)라고 가정 프로시저에 출력용 파라미터 선언을해서 그 값이 0을 돌리면 ID 사용가능, 1을 돌리면 ID 사용불가능 CREATE OR REPLACE PROCEDURE up_idCheck ( pempno IN emp.empno%TYPE -- ID를 받을 파라미터 , pempnoCheck OUT NUMBER -- 사용가능여부(0, 1)를 돌려주는 파라미터 ) IS BEGIN SELECT COUNT(*) INTO pempnoCheck FROM emp WHERE empno = pempno; -- ID가 있다면 갯수가 늘어나니까 바로 확인 가능. -- EXCEPTION END; DE..
[SIST] Oracle_days16
·
TIL/Oracle
저번주 토요일부터 이번주 일요일까지는 팀프로젝트를 하는 기간이다. 오전에 1~2시간 정도 수업을 듣고 팀프로젝트를 하고 있어서 복습 내용이 그리 많지는 않다. 오늘은 PL/SQL의 저장 프로시저에 대해서 여러 예저를 다뤄보았다. 1. 저장 프로시저(stored procedure) ㄱ. 저장 프로시저 생성 - dept 테이블에 새로운 부서를 추가하는 up_incdept (1) 테이블 확인 SELECT * FROM dept; (2) seq_dept 시퀀스 유무 확인 SELECT * FROM user_sequences; (3) seq_dept 시퀀스 삭제 후 재생성 DROP SEQUENCE seq_dept; (4) 시퀀스 생성 CREATE SEQUENCE seq_dept INCREMENT BY 10 START..
[SIST] Oracle_days15
·
TIL/Oracle
1. PL/SQL 1) SQL 확장 + PL == [P]rocedural [L]anguage extensions to SQL을 의미 2) 이는 비절차적인 SQL 언어를 '절차적'으로 사용할 수 있도록 한다. (1) 변수 선언 (2) 제어문 (3) 예외 처리 등등 3) PL/SQL은 블록 구조로 된 언어이며, 3가지의 블럭으로 구조되어있다. [ 선언 기능 블럭 ] [ 실행 기능 블럭 ] [ 예외 처리 블럭 ] 4) PL/SQL 선언 형식 *** 【형식】 [ DECLARE ] -- 선언블럭(declarations) : 변수 선언, 상수 선언 BEGIN -- 실행블럭(statements) : INSERT, DELETE, UPDATE 등 [ EXCEPTION ] -- 예외 처리 블럭(handlers) END; ..
[SIST] Oracle_days14
·
TIL/Oracle
1. 정규화(Normal From) (1) 제1정규화(1NF) - 릴레이션에 속한 '모든 속성의 도메인(컬럼 값)이 원자 값(atomic value) (= 중복이 되지 않은 값)으로만 구성'되어 있으면 제1정규형에 속한다. - 반복되는 속성을 제거한 뒤 기본 테이블의 기본 컬럼을 추가해 새로운 테이블을 생성한다. (2) 제2정규화(2NF) - '부분 함수적 종속성 제거'해서 완전 함수 종속으로 만드는 것 - 모든 컬럼(속성)이 복합키 전체에 종속적이어야한다. * 함수적 종속성 개념 : 항상 속성의 값이 오직 하나만 연관되어있을 때 Y는 X에 함수적 종속이라고 한다. ex) dname은 deptno에 함수적 종속, loc는 deptno에 함수적 종속 X는 결정자, Y(dname) Z(loc) 는 종속자 *..