|
'실험노트'에 해당되는 글 2건
[폭주기관차, 2007/05/09 13:30, [DBMS]/Oracle]
SELECT *<결과> ID DATA ----------- ----------- 3 5 7 3 2 9 10 3 4 rows selected. TEST란 Table을 생성하였다. ROWNUM이란 것을 이용하여 결과 값을 2줄만 출력시켜 보겠다. SELECT *<결과> ID DATA ----------- ----------- 3 5 7 3 2 rows selected. 이번엔 2줄 이상부터 출력을 해보겠다. SELECT *<결과> ID DATA ----------- ----------- 0 rows selected. 출력 결과 값이 0개이다. 이번엔 2번째 줄에 있는 값만 출력 해보겠다. SELECT *<결과> ID DATA ----------- ----------- 0 rows selected. 음 그럼 WHERE절에서 ROWNUM은 무엇보다 작은 값만 검색이 되는 것인가 =이나, < 는 검색이 안되는것인가? SELECT *<결과> ID DATA ----------- ----------- 3 5 1 rows selected. 1번 줄은 나온다. 그렇다면 특별한 행 이상을 출력하는 방법은 없는것인가? 아래와 같은 방법을 이용하면 3번째 줄을 출력할 수 있다. SELECT *<결과> RN ID DATA ----------- ----------- ----------- 3 2 9 1 rows selected. 정확히 왜 바로 ROWNUM = 3을 했을 경우 안나오는지 이유에 대해서는 명확하게 알고있지 않다. 좀더 연구를 해봐야할 것 같다. 본 테스트는 Oracle 9i에서 수행되었습니다. Trackback Address :: http://kongmks.cafe24.com/trackback/201
[폭주기관차, 2007/02/27 08:28, [DBMS]/Oracle]
SELECT * FROM A, BTUID NAME TUID TMAX TMIN ----------- ---- ----------- ----------- ----------- 1 kkk 1 48 31 1 jjj 1 48 31 1 kkk 1 80 29 1 jjj 1 80 29 1 kkk 1 94 19 1 jjj 1 94 19 2 bbb 2 88 27 2 bbb 2 75 23 8 rows selected. SELECT * FROM A, BTUID NAM TUID TMAX TMIN ----------- --- ----------- ----------- ----------- 1 kkk 1 48 31 1 jjj 1 48 31 1 kkk 1 80 29 1 jjj 1 80 29 1 kkk 1 94 19 1 jjj 1 94 19 2 bbb 2 88 27 2 bbb 2 75 23 4 35 11 9 rows selected. SELECT * FROM A, BTUID NAM TUID TMAX TMIN ----------- --- ----------- ----------- ----------- 1 kkk 1 48 31 1 kkk 1 80 29 1 kkk 1 94 19 1 jjj 1 48 31 1 jjj 1 80 29 1 jjj 1 94 19 2 bbb 2 88 27 2 bbb 2 75 23 3 ccc 9 rows selected. -- 단지 일반 Join에서 (+)기호가 붙지 않은 Table에 Join되지 않은 값만 출력 됨 SELECT * FROM A LEFT OUTER JOIN BTUID NAM 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. -- Right Table에서 Left Table로 1:1 대입후 Left Table의 Join되지 않는 값은 출력된다. 잘보면 kkk보다 밑에있는 jjj값부터 출력이 되었다. Outer Join을 하면 마지막 테이블서부터 Join을 한다는 것을 알 수 있다. SELECT * FROM A FULL OUTER JOIN BTUID NAM 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 4 35 11 10 rows selected. -- Right Table에서 Left Table로 1:1 대입후 Full(Left/Right) Table의 Join되지 않는 값은 출력된다. SELECT * FROM A RIGHT OUTER JOIN BTUID NAM 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. -- Left Table에서 Right Table로 1:1 대입후 (Right) Table의 Join되지 않는 값은 출력된다. -- (+)기호를 사용한 Outer Join과 ANSI 표준인 Left/Right/Full Outer Join의 결과 값에서는 차이가 없지만 정렬이 다름을 알 수 있다. 정렬이 다르다는 것은 Join하는 순서/방식이 다르다는 뜻이다. 본 실험은 Oracle 9i에서 실험 되었습니다. Trackback Address :: http://kongmks.cafe24.com/trackback/149
|
||||||||||||||||||||||||||||||||||||||





