1. 테이블 조회하기


  - 테이블 목록 조회

     SELECT * FROM all_all_tables

     SELECT * FROM dba_tables

     SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE'


  - 테이블 목록 조회 (접속한 계정)

     SELECT * FROM tabs

     SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'

     SELECT * FROM USER_TABLES


  - 테이블 코멘트 조회

     SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME = '테이블명'

     SELECT * FROM USER_TAB_COMMENTS

 

2. 컬럼 조회하기

  - 컬럼 조회

     SELECT * FROM COLS WHERE TABLE_NAME = '테이블명'

     SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '테이블명'

     SELECT * FROM USER_TAB_COLUMNS


  - 컬럼 코멘트 조회

     SELECT * FROM USER_COL_COMMENTS


ROWNUM을 활용하여 간단하게 순번을 지정 할 수 있기 때문에 간편하게 순번들을 먹일것입니다.

 

(EX) "ABC" TABLE

 

A

B

C

TEST12

TESTTEST12

TESTTESTTEST12 

TEST123

TESTTEST123

TESTTESTTEST123 

 

 

 -> SELECT ROWNUM, A, B, C FROM ABC

 

ROWNUM 

 1

 TEST12

 TESTTEST12

TESTTESTTEST12 

 2

 TEST123

 TESTTEST123

TESTTESTTEST123 

 

 

하지만...

 

ORDER BY를 사용한다면 상황은 달라집니다.

 

왜냐?

 

ROWNUM이 ORDER BY 보다 우선순위가 앞서기 때문이죠. (ROWNUM으로 순번 먹히고 ORDER BY로 재정렬..)

 

 

 

위 상황에서 대처하는 방법

 

=> RANK 함수를 활용하여 순번을 임의로 정의해주면 됩니다.

 

 

※ A컬럼을 기준으로 순번을 먹이는 예입니다.

 

(EX) SELECT (RANK() OVER(ORDER BY A)) ROWNUMS, A, B, C FROM ABC

 

 

 

 

정상적으로 출력되는 모습을 보실 수 있을 것입니다 ^^

 


※ 기본구문

 

 - INSERT INTO [TABLE명_1(컬럼1, 컬럼2, ...)]

   SELECT [컬럼1, 컬럼2, ...] FROM [TABLE명_2] WHERE [조건]

 


 

 

[예제]  A_TABLE의 A, C, E 컬럼을 J_TABLE의 J, K, M 컬럼에 복사

 

(존재하는(생성한) 테이블 : A_TABLE, J_TABLE)

 

  1. A_TABLE의 컬럼 : A, B, C, D, E, F, G, H, I

 

1

999 

999 

999 

999 

999 

999 

999

999

999 

999 

999 

999 

 

  2. J_TABLE의 컬럼 : J, K, L, M, N

 

 J

null

null

null

null

null

 

 

=> INSERT INTO J_TABLE(J, K, M)

     SELECT A, C, E

     FROM  A_TABLE

     WHERE A > 0

 

COMMIT 해주면 복사 완료!

 

 

3. 작업 후, J_TABLE의 컬럼 : J, K, L, M, N

 

 J

null 

null 

4

5

null

6

null

 

+ Recent posts