백엔드 과정/Oracle(SQL)

    [JDBC] xml에서 쿼리문 가져와서 수행하기

    성을 입력받아 같은 성을 가진 직원을 조회하는 쿼리를 XML 파일에 작성하여 불러와서 수행하는 방법. 1. XML 파일안에 쿼리문 작성 SELECT E.* FROM EMPLOYEE E WHERE E.EMP_NAME LIKE ? || '%' 2. employee-query.xml에서 쿼리문 가져와서 수행 Connection con = getConnection(); PreparedStatement pstmt = null; ResultSet rset = null; EmployeeDTO row = null; List empList = null; Scanner sc = new Scanner(System.in); System.out.print("조회할 이름의 성을 입력하세요 : "); String empName =..

    [Oracle] Chap14 권한과 ROLL

    권한 (GRANT) 사용자의 계정과 암호설정, 권한 부여 보안을 위한 데이터베이스 관리자 사용자가 데이터베이스의 객체 (테이블, 뷰 등)에 대해 특정 권한을 가질 수 있게 하는 권한이 있음 다수의 사용자가 공유하는 데이터베이스 정보에 대한 보안 설정 데이터 베이스에 접근하는 사용자 마다 서로 다른 권한과 롤을 부여함 1. 내가 다른 사용자에게 부여한 객체 권한을 조회 SELECT UTPR.* FROM USER_TAB_PRIVS_RECD UTPR; 2. 나에게 부여된 객체 권한, 객체 이름을 조회 SELECT UTPM.* FROM USER_TAB_PRIVS_MADE UTPM; 1. 시스템 권한 데이터베이스 관리자가 가지고 있는 권한으로 오라클 접속, 테이블, 뷰, 인덱스 등의 생성 권한 CREATE USE..

    [Oracle] Chap13 SYNONYM

    SYNONYM 시노님이란 '동의어'를 뜻한다. 다른 데이터베이스가 가진 객체에 대한 별명 혹은 줄임말 여러 사용자가 테이블을 공유할 경우 다른 사용자가 테이블에 접근할 때 '사용자명.테이블명' 으로 표현하는데 동의어를 사용하면 간단하게 사용할 수 있다. SYNONYM 생성 CREATE SYNONYM 줄임말 FOR 사용자명.객체명; 동의어 생성 역시 권한이 필요하므로 시스템계정으로 권한 부여를 먼저 해주어야 한다. GRANT CREATE SYNONYM TO C##EMPLOYEE; 권한 부여 후 CREATE SYNONYM 생성 CREATE SYNONYM EMP FOR EMPLOYEE; 동의어의 구분 1. 비공개 동의어 객체에 대한 접근 권한을 부여 받은 사용자가 정의한 동의어 2. 공개 동의어 모든 권한을 ..

    [Oracle] Chap12 INDEX

    INDEX SQL 명령문의 검색 처리 속도를 향상시키기 위해 컬럼에 대해서 셍성하는 오라클 객체 하드디스크의 어느 위치인지에 대한 정보를 가진 주소록 DATA - ROWID로 구성 ROWID 구조 : 오브젝트 번호, 상대 파일 번호, 블록 번호, 데이터 번호 SELECT ROWID -- 주소값 , E.EMP_ID , E.EMP_NAME FROM EMPLOYEE E; -- 출력 -- AAAR/uAAHAAAACUAAA200김혜수 인덱스의 내부 구조는 이진트리 형식으로 구성되어 있고 인덱스를 생성하기 위해서는 시간이 필요하다. 또한 인덱스를 위한 추가 저장 공간이 필요하기 때문에 반드시 좋은 것은 아니다. => 인덱스가 생성 된 컬럼에서 DML 작업이 빈번한 경우 처리 속도가 느려진다. 따라서 일반적으로 테이..

    [Oracle] Chap11 SEQUENCE

    SEQUENCE 자동 번호 발생기 역할을 하는 객체 순차적으로 정수값을 자동으로 생성해줌 보통 PRIMARY KEY 값을 생성하기 위해 사용 한다. 시퀀스 생성 CREATE SEQUENCE 시퀀스이름 [INCREMENT BY 숫자] -- 다음 값에 대한 증가치, 생략하면 자동 1 기본 [START WITH 숫자] -- 처음 발생시킬 값 지정, 생략하면 자동 1 기본 [MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대값 지정(10의 27승) [MINVALUE 숫자 | NOMINVALUE] -- 최소값 지정(-10의 26승) [CYCLE | NOCYCLE] -- 값 순환 여부 [CACHE 바이트크기 | NOCACHE] -- 캐쉬메모리 기본값은 20바이트, 최소는 2바이트 -- 해석 : 300..

    [Oracle] Chap10 VIEW

    VIEW SELECT 쿼리문을 저장한 객체이다. 실질적인 데이터를 저장하고 있지 않음 테이블을 사용하는 것과 동일하게 사용할 수 있다. 1) 복잡한 SELECT문을 다시 작성할 필요가 없음 2) 민감한 데이터를 숨길수 있음 CREATE VIEW CREATE [OR REPLACE] VIEW 뷰이름 AS 서브쿼리 -- 사번, 이름, 직급명, 부서명, 근무지역을 조회하고, -- 그 결과를 V_RESULT_EMP 라는 뷰를 생성해서 저장하세요 CREATE VIEW V_RESULT_EMP AS SELECT E.EMP_ID , E.EMP_NAME , J.JOB_NAME , D.DEPT_TITLE , L.LOCAL_NAME FROM EMPLOYEE E LEFT JOIN JOB J ON (E.JOB_CODE = J.J..

    [Oracle] Chap09 TCL 트랜잭션

    TCL (Transaction Cotrol Language) 트랜잭션 제어 언어 COMMIT과 ROLLBACK이 있다. 1. 트랜잭션이란? 한꺼번에 수행되어야 할 최소의 작업 단위를 말한다. 논리적 작업 단위 (Logical Unit og Work : LUM) 하나의 트랜잭션으로 이루어진 작업은 반드시 한꺼번에 완료(COMMIT)되어야 하며, 그렇지 않은 경우에는 한꺼번에 취소(ROLLBACK) 되어야 함 2. COMMIT 트랜잭션 작업이 정상 완료되면 변경 내용을 영구히 저장 3. ROLLBACK 트랜잭션 작업을 취소하고 최근 COMMIT한 시점으로 이동 4. SAVWPOINT 세이브포인트명 현재 트랜잭션 작업 시점에 이름을 정해줌 하나의 트랜잭션 안에 구역을 나눔 SAVEPOINT SV1 ; 5. R..

    [Oracle] Chap08 DDL

    DDL (Data Definition Language) 데이터 정의어 1. ALTER / 2. DROP 객체를 수정하는 구문 1) 테이블 객체 수정 테이블 수정 ALTER TABLE 테이블명 수정할 내용; 2) 컬럼 추가/삭제/변경 2-1) 컬럼 추가 ALTER TABLE 테이블명 ADD (컬럼명 자료형); 2-2) 컬럼 생성 시 DEFAULT 값 지정 ALTER TABLE 테이블명 ADD (컬럼명 자료형 DEFAULT 디폴트값); 2-3) 컬럼삭제 ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명 또는 DROP (삭제할컬럼명); 데이터가 기록 되어 있어도 삭제 된다. 삭제된 컬럼은 복구가 불가능 테이블에는 최소 한 개 이상의 컬럼이 존재해야 함 모든 컬럼 삭제 불가능 컬럼 삭제 시 참조하..

    [Oracle] Chap07 DML

    DML (Data Manupulation Language) 데이터 조작 언어 INSERT, UPDATE, DELETE, SELECT 테이블에 값을 삽입하거나, 수정하거나, 삭제하거나, 조회하는 언어 1. INSERT 새로운 행을 추가하는 구문이다. 테이블의 행 갯수가 증가한다. 테이블의 일부 컬럼에 INSERT할 때 INSERT INTO 테이블명 (컬럼명, 컬럼명, ...) VALUES (데이터, 데이터, ...); 테이블의 모든 컬럼에 INSERT할 때 INSERT INTO 테이블명 VALUES (데이터, 데이터, ...); 하지만 모든 컬럼에 INSERT할 때에도 컬럼명을 기술하는 것이 의미 파악에 더 좋다. INSERT INTO EMPLOYEE E ( E.EMP_ID, E.EMP_NAME, E.EM..