Developer Note/국비과정 수업내용 정리&저장

24년 10월 18일

DH_PARK 2024. 10. 21. 02:42

오라클에서 디폴트 값을 넣을 때는 디폴트라는 것을 명시해야하고

MYSQL 은 NULL 쓰면 디폴트값이 알아서 들어간다.

CHECK : 제약조건 값 지정

U = UNIQUE : 기본키는 아니지만 중복된 값을 넣을 수 없음

SQL 에서의 인덱스 : 데이터의 검색을 효율적으로 하기 위해 인덱스를 지정해준다

  • 데이터가 많으면 많을 수록 유리한데 적을 때는 오히려 불리하다.

오라클에서는 인덱스를 재구성할 수 있음

COMMIT 을 하고 난 뒤에는 롤백이 안된다.

오라클에서의 CONCAT 함수 : MOBILE1||'-'||MOBILE2

파이프라인( || ) 을 사용해서 가운데 붙여줄 문자열을 삽입한다.


PL/SQL 이란 ?

SQL 을 확장한 절차적 언어이다.

관계형데이터베이스에서 사용되는 ORACLE 의 표준데이터 엑세스 언어로 , 프로시저 생성자를 SQL 과 완벽하게 통합한다.

※ 오라클에서 지원하는 프로그래밍 언어의 특성을 수용해서 SQL 에서는 사용할 수 없는 절차적 프로그래밍 기능을 가지고 있어 SQL 의 단점을 보완했다.

프로시저란 ?

DB 에 일련의 작업절차를 데이터베이스 관리시스템에 저장한 것으로 영구저장모듈이라고도 불린다.

간단히 말해 여러줄의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리의 집합이다.

경량화된 함수 함수보다 처리하는과정이 다르긴한데 수행능력은 프로시저가 더 빠름

drop procedure Proc04;

create or replace procedure Proc04 # 프로시저 생성
(
    s IN number,
    e IN number
)
IS
    num1 number := s;
BEGIN
   
    WHILE(num1<=e) --NUM이 10보다 작을때까지 LOOP실행
    LOOP
    DBMS_OUTPUT.PUT_LINE(num1); --출력
    num1 := num1+1;  
    END LOOP;  -- 루프 종료
END;

exec Proc04(5,10);
exec Proc04(7,20);

트리거란 ?

영어로는 방아쇠라는 뜻인데 방아쇠를 당기면 총기 내부에서 일련의 작업이 실행되어 총알이 발사된다.

이처럼 DB 에서도 트리거는 특정 테이블에 CURD 같은 DML 문이 실행 될 때 , DB 에서 자동으로 동작하도록 작성된 프로그램이다.

※ 사용자가 직접 호출하는 것이 아닌 , DB에서 자동적으로 호출하는 것이 트리거다.

예를 들어 쇼핑몰 리스트를 관리하고 있다고 할 때 , 수천,수만명의 직원들이 제품의 주문실적을 조회를 할때 DB에서는 수만건의 데이터를 읽고 주문실적 , 주문량 , 주문가격 등을 계산해야 한다 . 이 때 데이터가 많으면 많아질수록 시스템 속도가 굉장히 느려질 것이다.

이 때 트리거 를 사용하면 좋은데 , 주문한 건이 입력될 때

상품별로 판매수량 , 판매금을 집계하여 집계자료를 생성하도록 만들 수 있다.

트리거는 DB의 보안의 적용 , 유효하지 않은 트랜잭션의 예방 등에 이용할 수 있다.

'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글

24년 10월 25일  (0) 2024.10.25
24년 10월 22일  (0) 2024.10.23
24년 10월 17일  (1) 2024.10.21
24년 10월 15일  (1) 2024.10.21
24년 10월 14일  (0) 2024.10.21