|
'조인'에 해당되는 글 2건
[폭주기관차, 2007/04/18 09:40, [DBMS]/Oracle]
SELECT *<결과> USR ID USR TMP ----------- ----------- ----------- ----------- 2 48 2 62 3 4 3 75 3 4 3 13 13 55 22 67 5 rows selected. 즉, 좌측은 USR, ID 컬럼은 A Table, 우측 USR, TMP는 B Table을 의미 [가정] A.USR와 B.USR는 조인조건 B의 TMP가 62인 값이 데이터를 삭제 하려고 할 경우 DELETE FROM B명령을 수행하면 B테이블의 값은 지워지지만 A테이블의 값은 지울 수가 없다. 그럴 경우 ROWID IN이란 명령을 사용하면 된다. B테이블에 지워야할 조건을 가지고 있으므로 먼저 지워서는 안된다. DELETE FROM A<결과> 1 rows Deleted 1 rows Deleted 그렇다면 ROWID IN 안의 결과 값이 궁금할 것이다. (아래 결과는 데이터 삭제 전에 나온 값입니다.) SELECT A.ROWID<결과> ROWID ------------------- AAAHI8AAGAAIHQWAAD 1 rows selected. 음.. 무슨 뜻일까...? ㅋ (아래 결과는 데이터 삭제 전에 나온 값입니다.) SELECT ROWID FROM A;<결과> ROWID ------------------- AAAHI8AAGAAIHQWAAA AAAHI8AAGAAIHQWAAB AAAHI8AAGAAIHQWAAC AAAHI8AAGAAIHQWAAD 4 rows selected. Oracle에서는 테이블의 각 행에 ROWID란 고유 번호를 가지고 있는 것 같다.^^ 3개 이상 테이블 삭제시는 삭제할 ROWID를 따로 임시 테이블을 만들어서 삭제하면 편리할 듯 하다^^ 본 실험은 Oracle 9i에서 하였습니다. Trackback Address :: http://kongmks.cafe24.com/trackback/195
[폭주기관차, 2007/02/27 13:25, [DBMS]/Oracle]
<Right Outer Join> SELECT * FROM A RIGHT OUTER JOIN BRight Outer Join은 Left에서 Right로 맨 밑의 행에서부터 대입된다. A Row 1(1, kkk) ----> B Row 5(1, 94, 19) 대입 A Row 1(1, kkk) ----> B Row 4(1, 80, 29) 대입 A Row 1(1, kkk) ----> B Row 1(1, 48, 31) 대입 A Row 1의 tUid랑 b의 tUid랑 같은 값이 이제 없으므로 다음 Row로 간다. A Row 2(2, bbb) ----> B Row 3(2, 75, 23) 대입 A Row 2(2, bbb) ----> B Row 2(2, 88, 27) 대입 < 중략 > 마지막으로 B Row 6(4, 35, 11)은 일치하는 값이 없지만 출력한다. TUID NAME TUID TMAX TMIN ----------- ---- ----------- ----------- ----------- 1 kkk 1 94 19 1 kkk 1 80 29 1 kkk 1 48 31 2 bbb 2 75 23 2 bbb 2 88 27 1 jjj 1 94 19 1 jjj 1 80 29 1 jjj 1 48 31 4 35 11 9 rows selected. 이 결과 값은 Oracle 9i에서 수행된 값입니다. <Left Outer Join> SELECT * FROM A Left Outer Join BLeft Outer Join이므로 Right에서 Left로 대입된다. B Row 1(1, 48, 31) --> A Row 4(1, jjj) 대입 B Row 1(1, 48, 31) --> A Row 1(1, kkk) 대입 B Row 2(2, 88, 27) --> A Row 2(2, bbb) 대입 B Row 3(2, 75, 23) --> A Row 2(2, bbb) 대입 B Row 4(1, 80, 29) --> A Row 4(i, jjj) 대입 < 중략 > 마지막 A Row 3(3, ccc)은 일치하는 것이 없으므로 출력 TUID NAME TUID TMAX TMIN ----------- ---- ----------- ----------- ----------- 1 jjj 1 48 31 1 kkk 1 48 31 2 bbb 2 88 27 2 bbb 2 75 23 1 jjj 1 80 29 1 kkk 1 80 29 1 jjj 1 94 19 1 kkk 1 94 19 3 ccc 9 rows selected. 이 결과 값은 Oracle 9i에서 수행된 값입니다. Trackback Address :: http://kongmks.cafe24.com/trackback/150
|
||








