이것은 정상적인 삽입 메서드를 파괴 하는 방법, INSERT 문에서 하나 이상의 테이블에 삽입 작업을 완료할 수 있습니다. 이 삽입 방법의 작은 비트.
1. 테이블 T를 만들고 테스트 데이터를 데이터 원본으로 초기화.
Sec@ora10g > 만들기 테이블 T (x 숫자 (a), y varchar2 (10));
Sec@ora10g > t 값 삽입 (1, 'a');
Sec@ora10g > 삽입 t 값 (2, ' B');
Sec@ora10g > t 값 (3, ' C')를 삽입
Sec@ora10g > t 값 삽입 (4, 'd ');
Sec@ora10g > 삽입 t 값 (5, ' e');
Sec@ora10g > 삽입 t 값 (6, ' F');
Sec@ora10g > 저지;
2. 보기 데이터 테이블 T에 대 한
Sec@ora10g > 선택 * T;에서
X Y
---------- ----------
1 A
2 b
3 C
4 D
5 E
6 F
6 행 선택입니다.
3. 만들기 우리 삽입 하려면 대상 테이블 T1 및 T2 테이블.
Sec@ora10g > 선택으로 CREATE TABLE T1 * t에서 0 = 1;
테이블 생성입니다.
Sec@ora10g > 선택으로 CREATE TABLE t2 * t에서 0 = 1;
테이블 생성입니다.
4. 첫 번째 다중 테이블 삽입 방법을 모두 삽입
1 완료 모든 삽입 삽입
sec@ora10g > T1 T2 선택 모두에 삽입 * t;에서
만든 행입니다.
이 실제로 즉 6에서 T1 테이블 및 T2 테이블 삽입 6, 12 데이터 삽입 데이터의 12 삽입 되는 보여 줍니다.
2 T1 테이블에 삽입 된 데이터를 확인 합니다.
Sec@ora10g > 선택 * T1;에서
X Y
---------- ----------
1 A
2 b
3 C
4 D
5 E
6 F
6 행 선택입니다.
3 t 2 테이블에 삽입 된 데이터를 확인 합니다.
Sec@ora10g > 선택 * t2;
X Y
---------- ----------
1 A
2 b
3 C
4 D
5 E
6 F
6 행 선택입니다.
좋아, 모든 명령을 완료 하는 삽입 하는 임무.
5. 먼저 여러 표 삽입 방법 삽입 2
1 명확한 테이블 T1 및 T2
sec@ora10g > T1;에서 삭제
sec@ora10g > t2; 삭제
Sec@ora10g > 저지;
2 삽입 삽입 완료
sec@ora10g > 삽입 x > = 5 다음 t 1 때 x > = 2 다음 선택으로 * T;에서
만든 5 행입니다.
처리 논리는이, 먼저 T-테이블 5 보다 크거나 X 열 값을 사용 하 여 데이터를 찾아 검색 (여기 "5, e"와 "6, f") T1 테이블에 삽입, 이전 쿼리에 표시 되는 데이터는 다음 제외 하 고 T-테이블 찾은 고 X 열 값이 2 보다 크거나 데이터 다음 T2 테이블에 삽입 (여기는 "2, b", "3, c", 및 "4, d")입니다. 참고 삽입의 진짜 목적은 먼저 동일한 데이터를 한 번만 삽입 하는 것입니다.
3은 T1 테이블에 삽입 된 데이터를 확인 합니다.
Sec@ora10g > 선택 * T1;에서
X Y
---------- ----------
5 E
6 F
4 T2 테이블에 삽입 된 데이터를 확인 합니다.
Sec@ora10g > 선택 * t2;
X Y
---------- ----------
2 b
3 C
4 D
5는 "데이터만 삽입 한 번"의 진정한 반성 위한 목적, 우리는 조건 거꾸로 넣고 한 번 삽입.
sec@ora10g > T1;에서 삭제
sec@ora10g > t2; 삭제
sec@ora10g > 삽입 x > = 2 다음 t 1 때 x > = 5 다음 선택으로 * T;에서
만든 5 행입니다.
Sec@ora10g > 선택 * T1;에서
X Y
---------- ----------
2 b
3 C
4 D
5 E
6 F
Sec@ora10g > 선택 * t2;
행 선택
좋아, 목표 달성, 두 번째 조건을 만족 하는 데이터는 이미에 포함 된 첫 번째 조건이 데이터가 두 번째 테이블에 삽입 됩니다.
같은 삽입 상태 바꿉니다 "모두 삽입" "모든"비교 결과를 삽입.
sec@ora10g > T1;에서 삭제
5 행 삭제입니다.
sec@ora10g > t2; 삭제
0 행 삭제입니다.
sec@ora10g > 모두 삽입 때 x > = t 1에 다음 2 때 X > = 5 다음 T2 선택으로 * t;에서
7 행 생성입니다.
Sec@ora10g > 선택 * T1;에서
X Y
---------- ----------
2 b
3 C
4 D
5 E
6 F
Sec@ora10g > 선택 * t2;
X Y
---------- ----------
5 E
6 F
아니다에 거기 계몽의 기초는 케이크에 착 빙의 느낌입니다. 그거에요.
6. Oralce 공식 문서 참조 링크
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9014.htm#SQLRF01604
7입니다. 요약
이 작고 작은 고급 SQL 기법 응용에 유용 하다. 천천히 그것을 느낀다.
행운.
Secooler
10.01.06
-끝-