본문 바로가기

분류 전체보기

(135)
Oracle(PL/SQL) 구성요소 변수는 다른 프로그래밍 언어에서 사용하는 변수와 개념이 같으며 선언부에서 변수 선언을 하고 실행부에서 사용한다. 변수 선언 방식은 다음과 같다. 변수명 데이터타입 := 초깃값; 변수 선언과 동시에 초깃값을 할당할수 있는데, 초깃값을 할당하지 않으면 데이터 타입과 상관없이 NULL 이된다. 변수로 선언할 수 있는 테이터 타입은 크게 두가지로 구분할 수 있는데, 하나는 SQL 데이터 타입이고 다른 하나는 PL/SQL 데이터 타입이다. 사실 이 두가지를 엄격히 구분하지는 않는다. 왜냐하면 PL/SQL 데이터 타입에는 SQL 데이터 타입이 포함되어 있기 때문이다. PL/SQL 데이터 타입인 BOOLEAN, PLS_INTEGER,BINARY_INTEGER 등에 대해 알아 보자. BOOLEAN 타입은 어떤 값이 참..
Oracle(PL /SQL ) 기본구조 PL / SQL 소스 프로그램의 기본 단위를 블록 이라고 하는데, 블록은 선언부, 실행부, 예외 처리 부로 구성된다. 이 블록은 다시 이름이 없는 블록과 이름이 있는 블록으로 구분할 수 있는데 전자에 속하는 것이 익명 블록이며 , 함수, 프로시저, 패키지 등이 후자에 속한다. PL/ SQL 의 블록 구조는 다음과 같다. 이름부 IS(AS) 선언부 BEGIN 실행부 EXCEPTION 예외 처리부 END; 이름부 : 블록의 명칭이 오는데, 생략할 때는 익명 블록이 된다. 선언부: DECLARE로 시작되며 , 실행부와 예외 처리부에서 사용할 각종 변수, 상수, 커서 등을 선언한다. 중요한 점은 변수 선언이나 실행부와 예외 처리부에서 사용하는 각종 문장의 끝에 반드시 세미콜론을 찍어야 한다는 것이다 세미콜론이 ..
Oracle(표현식) 표현식 이란 한개 이사으이 값과 연산자 , SQL 함수 등이 결합된 식이다. 이 절에서는 특정 조건에 따라 값을 변경해서 보이는 CASE표현식에 대해 알아보자. CASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 기타값 END SELECT ROWNUM,EMPLOYEE_ID,SALARY, CASE WHEN SALARY 5000 AND SALARY
Oracle(의사컬럼) 의사컬럼이란 테이블의 컬럼처럼 동작하지만 실제로 테이블에 저장되지 않는 컬럼을 말한다 SELECT 문에서는 의사컬럼을 사용할수 있지만, 의사컬럼 값을 INSERT , UPDATE , DELETE 할수 없다. NEXTVAL , CURRVAL 도 의사컬럼의 일종이다. 대표적인 의사컬럼의 종류를 열거하면 다음과 같다. CONNECT_BY_ISCYCLE, CONNECT_BY_ISLEAF,LEVEL 계층형 쿼리에서 사용하는 의사컬럼이다. NEXTVAL , CURRVAL 시퀀스에서 사용하는 의사컬럼이다. ROWNUM,ROWID ROWNUM은 쿼리에서 반환되는 각 로우들에 대한 순서 값으 나타내는 의사컬럼이다. SELECT ROWNUM , EMPLOYEE_ID FROM EMPLOYEES; 테이블에 데이터가 많으면 S..
Oracle(MERGE) MERGE 문은 조건을 비교해서 태이블에 해당 조건에 맞는 데이터가 없으면 INSERT 있으면 UPDAT를 수행하는 문장이다. 특정 조건에 따라 어떤 때는 INSERT를 또 다른경우에는 UPDATE를 수행하는 문장이다. 특정 조건에 따라 어떤 때는 INSER를 또, 다른 경우에는 UPDAT문을 수행해야 할때, 과거에는 해당 조건을 처리하는 로직을 별도로 작성해야 했지만 MERGE문이 나온덕분에 이제 한 문장으로 처리할 수 있게 되었다. MERGE INTO [스키아.] 테이블명 USING(UPDATE나 INSER될 데이터 원천) ON(UPDATE 될 조건) WHEN MATCHED THEN SET 컬럼1 = 값1 , 컬럼2 = 값2.. WHERE UPDATE 조건 DELETE WHERE UPDATE_DELE..
Oracle (index) 인덱스는 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체다, 책을 볼 때 특정 내용을 빨리 찾기 위해 맨 뒤에 있는 찾아보기 항목을 사용해 본 적이 있을텐데, 이 찾아보기 부분이 인덱스라고 생각하면된다. 그 특성에 따라 대표적인 인덱스를 분류하면 대략 다음과 같다. 인덱스 구성 컬럼 개수에 따른 분류 : 단일 인덱스와 결합 인덱스 유일성 여부에 따른 분류 UNIQUE 인덱스, NON-UNIQUE 인덱스 인덱스 내부 구조에 따른 분류: B-tree 인덱스, 비트맵 인덱스, 함수 기반 인덱스 1과 2는 인덱스 형태와 속성에 따른 분류이며 , 3은 구조와 내부 알고리즘에 따른 분류로 보면 된다. 인덱스는 테이블에 있는 한 개 이상의 컬럼으로 만들수 있다. 표준인 B-tree 인덱스 키 (인덱스..
오라클 View view는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼수 있게 하는 데이터베이스 객체다. 실제 데이터는 뷰를 구성하는 테이블에 담겨 있지만 마치 테이블처럼 사용할수 있다. 또한 테이블 뿐만 아니라 다른 뷰를 참조해 새로운 뷰를 만들어 사용할수 있다. 데이터를 본다는 의미가 있으므로 뷰의 정의는 데이터를 조회 하는 SELECT 문으로 구성된다. 뷰생성 CREATE OR REPLACE VIEW EMP_DEPT_V1 AS SELECT A.EMPLOYEE_ID, A.FIRST_NAME,A.DEPARTMENT_ID, B.DEPARTMENT_NAME FROM EMPLOYEES A, DEPARTMENTS B WHERE A.DEPARTMENT_ID = B.DEPARTMENT_ID; 뷰객체가 만들어 졌으니 이젠 EMP..
SpringSecurity(Ajax AuthenticationFilter) AbstractAuthenticationProcessingFilter를 상속받아서 필터를 구성하고자 한다 UsernamePasswordAuthenticationFilter도 이 추상클래스를 상속받아서 구성되어 있다. 대부분 인증 처리 기능을 이 추상클래스가 하고 잇다 . 필터 작동조건 AntPathRequestMatcher("/api/login") 로 요청정보와 매칭하고 요청 방식이 Ajax 이면 필터 작동 AjaxAuthenticationToken 생성하여 AuthenticationManager 에게 전달하여 인증처리 Filter 추가 http.addFilterBefore(AjaxAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class) f..