BLOG main image
전체 (276)
[Computer] (42)
[Programming] (62)
[DBMS] (26)
[Operating System] (21)
[Study English] (8)
[For money] (28)
[Interest] (89)
«   2009/11   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
77890 Visitors up to today!
Today 82 hit, Yesterday 46 hit
'Oracle'에 해당되는 글 8건
[폭주기관차, 2007/01/25 11:23, [DBMS]/Oracle]
DECODE 함수는 데이터 들을 다른 값으로 바꾸어 줍니다.

형식

DECODE(VALUE, IF1, THEN1, IF2, THEN2...)
 


VALUE 값이 IF1일경우에 THEN1값으로 바꾸어 주고 VALUE값이 IF2일경우에는 THEN2값으로 바꾸어 줍니다.

- 예제 -

SELECT deptno,
    DECODE(deptno, 10 , 'ACCOUNTING' ,
                   20 , 'RESEARCH' ,
                   30 , 'SALES' ,
                   40 , 'OPERATIONS')
FROM emp ;
 


- 수행 결과 -
     DEPTNO     DECODE(DEP
     ---------- ----------
        20        RESEARCH
        30        SALES
        30        SALES
        20        RESEARCH
        30        SALES
        30        SALES
        10        ACCOUNTING
        20        RESEARCH


부서가 10번이면 'ACCOUNTING'를 20번이면 'RESEARCH'를
30번이면 'SALES'를 40번이면 'OPERATIONS'를 출력하는 예제 입니다.

  ================================================
    * Oracle Community OracleClub.com
    * http://www.oracleclub.com
    * http://www.oramaster.net
    * 운영자 : 김정식 (oramaster _at_ empal.com)
  ================================================
※ oracleclub 강좌를 다른 홈페이지에 퍼가실 경우에는 출처를 꼭 밝혀 주시면
    고맙겠습니다.~^^

Trackback Address :: http://kongmks.cafe24.com/trackback/56
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/25 10:06, [DBMS]/Oracle]
사용법
LPAD( 출력내용, 표시할 자릿수, 채울내용 )


예제1)

SELECT LPAD(23, 8, 0) FROM DUAL;
 


LPAD(23,
--------
00000023

1 rows selected.


- 8자리 수를 맞추기 위하여 앞의 빈 공간은 0으로 채웠다.

예제2)

SELECT LPAD('TEST', 5, 'X') FROM DUAL;
 


LPAD(
-----
XTEST

1 rows selected.


- 5자리 수를 맞추기 위하여 앞의 빈 공간은 'X'로 채웠다.

예제3)

SELECT LPAD('TEST', 3, 'X') FROM DUAL;
 


LPA
---
TES

1 rows selected.


- 3자가 넘어가면 잘라버렸다.

참고 : 보라냥이님 블로그 원문 보기
Trackback Address :: http://kongmks.cafe24.com/trackback/55
Tracked from 폭주기관차의 비망록 | 2007/03/14 17:07 | DEL
LPAD ( 출력할 문자, 자릿수, 채울문자 ) RPAD ( 출력할 문자, 자릿수, 채울문자 )LPAD는 출력할 문자 왼쪽(Left)에 '채울문자'를 채워준다.RPAD는 출력할 문자 오른쪽(Right)에 '채울문자'를 채워준다.SELECT RPAD(TO_CHAR( 32 ), 10, '0') FROM DUAL;RPAD(TO_CH----------32000000001 rows selected.SE..
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/24 15:38, [DBMS]/Oracle]
값이 Null일때 오류를 발생시키고 오류에 대체 하는 값을 출력한다.
NULL값을 다른 값으로 대체해주는 함수입니다.


[형식]

NVL(비교값, 대체값)
 


 

[예시]

SELECT NVL(SUM(A), 0) FROM STUDENT
 

SUM함수 처리과정에서 에러가 발생하였을 경우 기본 값 0을 Return 하게 된다.
                               NULL값이

Mysql에서는 IFNULL이란 함수가 NVL과 동일한 일을 한다. (추가. 2007.12.17)


출처 : 낭길리마님의 블로그 원문 글 보러가기
참고
    ================================================
      * Oracle Community OracleClub.com
      * http://www.oracleclub.com
      * http://www.oramaster.net
      * 운영자 : 김정식 (oramaster _at_ empal.com)
   ================================================


Trackback Address :: http://kongmks.cafe24.com/trackback/49
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/24 09:39, [DBMS]/Oracle]
- 기본적 Join 문...

SELECT *
FROM (
    SELECT 1
    FROM DUAL ) ATable,
  (
    SELECT 2
    FROM DUAL ) BTable;
 


- 결과 보기 -


- 만약 오른쪽 테이블의 Row 수가 많다면...?

SELECT *
FROM (
    SELECT 1
    FROM DUAL ) ATable,
  (
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL ) BTable;
 


- 결과 보기 -


- 만약 왼쪽 테이블의 Row 수가 많다면...?

SELECT *
FROM (
    SELECT 1
    FROM DUAL
    UNION ALL
    SELECT 4
    FROM DUAL
    UNION ALL
    SELECT 5
    FROM DUAL) ATable,
  (
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL ) BTable;
 


- 결과 보기 -



- 만약 양 테이블의 Row 수가 같다면...?

SELECT *
FROM (
    SELECT 1
    FROM DUAL
    UNION ALL
    SELECT 4
    FROM DUAL
    UNION ALL
    SELECT 5
    FROM DUAL) ATable,
  (
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL
    UNION ALL
    SELECT 6
    FROM DUAL) BTable;
 


- 결과 보기 -



- 실험으로 내린 결론
  : Row가 적은 쪽의 테이블이 기준이 된다.
  : 테이블의 Row 수가 같으면 왼쪽 테이블 기준

- 그렇다면 3개의 테이블일 경우도 Row가 적은 순으로 정렬이 될까?
   A Table = 1, 2, 3
   B Table = 4, 5
   C Table = 6
   위의 결론에 따른 다면 1순위 C, 2순위 B, 3순위 A가 되야한다.


SELECT *
FROM (
    SELECT 1
    FROM DUAL
    UNION ALL
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL) ATable,
  (
    SELECT 4
    FROM DUAL
    UNION ALL
    SELECT 5
    FROM DUAL ) BTable,
  (
    SELECT 6
    FROM DUAL ) CTable;
 


- 결과 보기 -


역시 예상대로 C, B 순으로 테이블이 기준이 잡혔다.

본 실험은 Oracle9i에서 수행되었습니다.
Trackback Address :: http://kongmks.cafe24.com/trackback/46
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/23 15:10, [DBMS]/Oracle]

가정)

CREATE TABLE A
(
    DT DATE
);
INSERT
INTO A(DT)
VALUES( TO_DATE('20061230') );
 

1. BETWEEN 사용
- A.DT BETWEEN '20040101' AND '20041231'

2. TYPE변경 사용
- MS-SQL : CONVERT(VARCHAR(4), A.DT, 112) = '2004'
- ORACLE : TO_CHAR(A.DT, 'YYYY') = '2004'

* DATA의 양이 많을 경우 모든 ROW에 대해 문자변환을 수행함으로 속도에
영향을 미침

출처 : 네이버 지식인 답변


<LIKE 명령어 사용시>

SELECT
    DAT
FROM A
WHERE TO_CHAR(A.DAT, 'YYYYMMDD') LIKE '2006%'
 

 

- 결과 보기 -

Trackback Address :: http://kongmks.cafe24.com/trackback/45
Tracked from 병수의 학교 이야기 Two | 2007/01/24 08:37 | DEL
명국이 블로그에서 펌
Tracked from 즐거운 일상 | 2007/07/24 16:51 | DEL
<font style ='font-size: 10pt; font-family: 1024647_10;'>123</font>
BlogIcon 병수 | 2007/01/24 08:39 | PERMALINK | EDIT/DEL | REPLY
트랙백 테스트 해봤어 ^^;;
BlogIcon 폭주기관차 | 2007/01/24 09:44 | PERMALINK | EDIT/DEL
ㅋㅋㅋ
어때 좋지??
나는 거의 모든글 다 트랙백 걸어버리는데 ㅋㅋ

근데 너 트랙백 걸었던 글 지웠어??

병수 글 안보이넹~~ ㅎㅎ
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/23 12:12, [DBMS]/Oracle]

출처 : 네이버 지식인 답변 글

- 데이터딕셔너리와 함께 Oracle에 의해 자동으로 생성되는 테이블 입니다.
- 모든 사용자는 DUAL이라는 이름으로 엑세스 할 수 있습니다.
- DUAL테이블은 VARCHAR2(1)으로 정의된 DUMMY라는 하나의 열이 있으며 값을 가지는 하나의 행도
   포함되어 있습니다.
- DUAL테이블은 사용자가 계산이나 사용자 함수등을 실행하고자 할 경우에 유용 합니다.

즉 아래와 같이 실행하면 flag라는 컬럼으로 1과 2로 된 두개의 row를 보여줍니다.


SELECT '1' flag FROM dual
UNION ALL
SELECT '2' flag FROM dual
 

Trackback Address :: http://kongmks.cafe24.com/trackback/44
Name
Password
Homepage
Secret
[폭주기관차, 2007/01/22 10:38, [DBMS]/Oracle]

SELECT * FROM Test;
의미 : Test테이블의 모든 컬럼을 출력하라.

--------------
One Two
--------------
30  40
50  60
70  80
--------------

SELECT One FROM Test;
의미 : Test테이블의 One컬럼만 보여준다.

-----
One
-----
30
50
70
-----

SELECT One PRINT FROM Test;
의미 : Test테이블의 One컬럼만 출력하는데, 출력 제목을 PRINT로 표시한다.

-----
PRINT
-----
30
5070
-----


SELECT One, Two TEST FROM Test;
의미 : Test테이블의 One과 Two컬럼을 출력하는데 Two컬럼 제목을 TEST로 표시한다.

--------------
One TEST
--------------
30  40
50  60
70  80
--------------

SELECT a.One, a.Two FROM Test a;
의미 : Test 테이블의 별명으로 a로 지정하였고, a테이블의 One, a테이블의 Two 컬럼을 출력한다.

--------------
One Two
--------------
30  40
50  60
70  80
--------------

SELECT * FROM Test WHERE One = 50;
의미 : Test테이블의 One컬럼의 값이 50인 데이터를 출력하라.

--------------
One Two
--------------
50  60
--------------


SELECT COUNT(*) FROM Test WHERE One = 50;
의미 : Test테이블의 One컬럼의 값이 50인 데이터들의 Count(갯수)를 출력하라.

--------------
COUNT(*)
--------------
1
--------------

SELECT COUNT(*) CNT FROM Test WHERE One = 50;
의미 : Test테이블의 One컬럼의 값이 50인 데이터들의 Count(갯수)를 출력하는데 Count의 제목은 CNT로 하라.

--------------
CNT
--------------
1
--------------

Trackback Address :: http://kongmks.cafe24.com/trackback/34
Name
Password
Homepage
Secret
*1 *2