프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)


DB 환경 : Oracle Database 11.2.0.4


쿼리 : 샘플데이터 생성 dbms_random

테이블 생성

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
31
32
33
34
35
36
SQL> 
CREATE TABLE BUHA
(
  C1 NUMBER
  , DATE_COL1 DATE
  , CH1 VARCHAR2(10)
  , CH2 VARCHAR2(10)
  , CH3 VARCHAR2(10)
);
 
CREATE TABLE BUHB
(
  C1 NUMBER
  , DATE_COL1 DATE
  , CH1 VARCHAR2(10)
  , CH2 VARCHAR2(10)
  , CH3 VARCHAR2(10)
);
 
CREATE TABLE BUHC
(
  C1 NUMBER
  , DATE_COL1 DATE
  , CH1 VARCHAR2(10)
  , CH2 VARCHAR2(10)
  , CH3 VARCHAR2(10)
);
 
CREATE TABLE BUHD
(
  C1 NUMBER
  , DATE_COL1 DATE
  , CH1 VARCHAR2(10)
  , CH2 VARCHAR2(10)
  , CH3 VARCHAR2(10)
);


데이터 삽입

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
31
32
33
34
35
36
SQL>
BEGIN
FOR i IN 1..10000
          LOOP
                   INSERT INTO BUHA VALUES 
                   (i, SYSDATE, dbms_random.string('x',10), dbms_random.string('x',10), dbms_random.string('x',10));
          END LOOP;
END;
/
 
BEGIN
FOR i IN 1..10000
          LOOP
                   INSERT INTO BUHB VALUES 
                   (i, SYSDATE, dbms_random.string('x',10), dbms_random.string('x',10), dbms_random.string('x',10));
          END LOOP;
END;
/
 
BEGIN
FOR i IN 1..10000
          LOOP
                   INSERT INTO BUHC VALUES 
                   (i, SYSDATE, dbms_random.string('x',10), dbms_random.string('x',10), dbms_random.string('x',10));
          END LOOP;
END;
/
 
BEGIN
FOR i IN 1..10000
          LOOP
                   INSERT INTO BUHD VALUES 
                   (i, SYSDATE, dbms_random.string('x',10), dbms_random.string('x',10), dbms_random.string('x',10));
          END LOOP;
END;
/


4개 테이블 조인

1
2
3
4
5
6
7
SQL>
SELECT *
FROM BUHA, BUHB, BUHC, BUHD
WHERE 1=1
AND BUHA.C1=BUHB.C1
AND BUHB.C1=BUHC.C1
AND BUHC.C1=BUHD.C1;



참조 : https://positivemh.tistory.com/242