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 표준을 오라클에서 확장한 구조체
'코딩을 배우자 > SQL로' 카테고리의 다른 글
[DB] 4. 데이터베이스 설계와 ER모델 (0) | 2017.11.06 |
---|---|
[DB] 3. 관계 대수와 SQL (2) (0) | 2017.11.04 |
[DB] 3. 관계 대수와 SQL (1) (0) | 2017.11.03 |
[DB] 2. 관계 데이터 모델과 제약조건 (0) | 2017.11.02 |
[DB] 1. 데이터베이스 시스템 (0) | 2017.10.17 |