INSERT문

  • 기존의 릴레이션에 투플을 삽입
  • 참조되는 릴레이션에 삽입되는 경우 문제 없음.
  • 참조하는 릴레이션에 삽입되는 경우 참조 무결성 제약조건 위배가능
  • INSERT  INTO 릴레이션 (애트리뷰트1, ..., 애트리뷰트n)  VALUES (값1, ..., 값n);
  • 릴레이션에 한 번에 여러 개의 투플들을 삽입하는 경우 WHERE절을 이용해 지정해주면 된다.
DELETE문
  • 한 릴레이션으로부터 한 개 이상의 투플들을 삭제
  • 참조되는 릴레이션은 참조 무결정 제약조건 위배가능
  • 참조하는 릴레이션을 삭제하는 경우 문제 없음
  • DELETE  FROM 릴레이션  WHERE 조건;
UPDATE문
  • 한 릴레이션에 들어 있는 투플들의 애트리뷰트 값들을 수정
  • 기본 키나 외래 키에 속하는 애트리뷰트의 값이 수정되면 참조 무결성 제약조건을 위배할 수 있음
  • UPDATE 릴레이션  SET 애트리뷰트 = 값  WHERE 조건;
트리거 : 명시된 이벤트가 발생할 때마다 DBMS가 자동적으로 수행하는, 사용자가 정의하는 문으로 DB의 무결성을 유지하기 위한 일반적이고 강력한 도구이다.
트리거 활성(이벤트) -> 수행되는 조건(컨디션) -> 조건이 참일 때 수행되는 동작 (액션) ☞ 이벤트-조건-동작(ECA)규칙


내포된 SQL (embedded SQL)

  • SQL이 호스트 언어의 완전한 표현력을 갖고 있지 않기 때문에 모든 질의를 표현할 수는 없다.
  • SQL은 조건문과 반복문, 입출력, GUI등의 기능이 미약하다.
  • 따라서 C나 자바를 이용한 프로그램에 SQL문을 삽입하여, DB에 접근하는 부분은 SQL이 맡고 SQL에 없는 기능은 호스트 언어로 작성하는 형태를 내포된 SQL이라고 한다.
  • 데이터 구조의 불일치 문제(impedance mismatch)가 발생할 수 있다.
  • 호스트 변수는 SQL문에 포함된 C프로그램의 변수이다. 둘 사이의 통신을 위해 사용 (EXEC SQL ~)
    • 정적인 SQL문 : C프로그램에 내포된 오나전한 SQL문
    • 동적인 SQL문 : 불완전한 SQL문으로서 일부 또는 전부를 질의가 수행될 때 입력할 수 있다.
  • 커서 : 호스트 언어와 SQL문 사이의 불일치 문제를 해결하기 위해 사용된다. 한 번에 한 투플씩 가져오는 수단이다.
WHENEVER절 : 자동적인 에러 검사와 에러 처리를 위한 구문
- WHENEVER <조건> <동작> 형식으로 사용된다.

SQL 통신 영역 (SQLCA) : C프로그램에 내포된 SQL문에 발생하는 에러들을 사용자에게 알려준다.
오라클 통신 영역 (ORACA) : SQLCA 표준을 오라클에서 확장한 구조체




+ Recent posts