본문 바로가기

DB

(52)
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..
Oracle(트리거생성,UPDATE,INSERT) 일단 트리거를 쓰는 이유, 고려할점에 대해서 구글링 해본 내용등를 보자 ! 활용 1.데이터 무결성의 강화 -전체 데이터베이스에 걸쳐 영향 받은 테이블을 연속적으로 변경함으로서 데이터 무결성을 강화하는데 사용될 수 있다. - 중복되었거나 파생된 데이터에 대해 트리거를 사용하는 것이 좋다. 2.참조 무결성의 강화 -연속적인 삭제 / 갱신이 일어날 필요가 있을 때 적절한 작업을 하도록 보장하는데 유용하다. - FOREIGN KEY, REFERENCE 제약을 사용할 수도 있다. - 자신의 오류 메시지를 정의할 수 있다. 3.업무 규칙의 설정 - 제약에 의해 표현될 수 있는 것보다 복잡한 제약을 표현할 수 있다. 4.감사기능의확장 -상세한 변경 내역을 추적하려면, 트리거를 적용하거나 Log Miner를 이용해 아..
Oracle(프로시저) 매게 변수 없는 프로시저 CREATE OR REPLACE PROCEDURE MEMBER IS # 사용할 변수선언 BEGIN #실행구간 PL/SQL ,EXCEPTION INSERT INTO TBL_MEMBER(MEMBER_NAME,MEMBER_PASSWORD)VALUES('TEST','1'); END MEMBER; 실행구문 EXECUTE MEMBER; 실행하게 되면 MEMBER_NAME 과 MEMBER_PASSWOR에 'TEST','1' 이 저장될것이다. 매게 변수 있는 프로시저 CREATE OR REPLACE PROCEDURE MEMBER (MEMBER_NAME IN VARCHAR2, MEMBER_PASSWORD IN VARCHAR2, MEMBER_ROLE IN VARCHAR2, MEMBER_EMAIL ..
Oracle(테이블 생성,제약조건,시퀀스) 테이블 생성 CREATE TABLE 테이블명 ( 컬럼명 타입(길이), 컬럼명 타입(길이)) . . . 컬럼명 타입(길이)) ); CREATE TABLE TBL_MEMBER( MEMBER_NAME VARCHAR2(30), MEMBER_PASSWORD VARCHAR2(50), MEMBER_ROLE VARCHAR2(30), MEMBER_EMAIL VARCHAR2(60), MEMBER_ADDRES VARCHAR2(100), MEMBER_AGE VARCHAR2(60), ); 컬럼명과 타입명, 길이만 설정했지만 NOT NULL을 추가적으로 설정할 수 있다. 위 처럼 NOT NULL을 적지않으면 디폴트로 NULL 가능이 설정된다. 테이블 생성후에도 NOT NULL 조건과 제약조건을 추가 할수 있고 삭제 할수 있다. ..
Oracle(Join ) 유형 및 구분 DB 공부는 항상 해야한다고 생각한다 시간날때 마다 하고 있지만 쉽지가 않다 ㅜ 오늘은 JOIN 에 대해서 정리를 해보고자 한다 기억보다 기록을 하자 Join은 여러 테이블에서 데이터를 가져 오는 구문이다 프로젝트를 하거나 연관성 있는 데이터를 한꺼번에 출력을 해야하거나 할때 꼭 사용한다 그러니 꼭 알아두자 JOI문을 조금더 성능 향상 시키기 위해서는 몇가지의 조건이 있다 테이블 접두어를 사용하여 여러 테이블에 있는 열 이름을 한정한다 테이블 접두어를 사용하여 성능을 향상 시킨다 전체 테이블 이름 접두어 대신 테이블 alias를 사용한다 테이블 alis로 테이블에 짧은 이름을 지정한다 - 이거는 메모리를 적게 사용한다 열 alis를 사용하여 이름은 같지만 서로 다른 테이블에 상주하는 열을 구분한다 SEL..
Oracle (변환 함수) 오라클 서버는 어떤 일정한 데이터 형의 데이터를 사용해야 하는곳에 , 그것과 다른 데이터형의 데이터를 사용할수 있게 한다 이것은 오라클 서버가 자동적으로 데이터형을 변환할 수 있을 때 허용한다 데이터형 변환은 오라클 서버에 의해서 암시적으로 행해지거나 또는 사용자에 의해서 명시적으로 행해질 수 있다. FROM TO VARCHAR2 OR CHAR NUMBER VARCHAR2 OR CHAR DATE NUMBER VARCHAR2 DATE CARCHAR2 명시적인 데이터 형 변환 SQL은 변환 함수를 통하여 어떤 데이터형의 값을 다른 데이터형의 값으로 변환 하기 위하여 어레의 함수를 제공한다 함수 사용목적 TO_CHAR 숫자나 문자값을 지정한 형식의 VARCHAR2 문자열로 반환한다 TO_NUMBER 숫자를 포..