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


1. CREATE 명령 ( 생성하기 )

   (1) 테이블 복사(특정컬럼만)

      [EX] CREATE TABLE [원하는 TABLE명]

            AS

               SELECT ... 

               FROM [복사할 TABLE명]

               WHERE ... ;



   (2) 테이블 복사(구조만)

      [EX] CREATE TABLE [원하는 TABLE명]

            AS

               SELECT * FROM [복사할 TABLE명] WHERE 1=2;



   (3) 가상 컬럼 테이블 생성(11g, 12c 가능)

      : 임의로 연산된 값이 들어갈 수 있도록 설정 가능 ( 유지보수 하기 힘들듯.. 그래서 딱히 쓰일지는 모르겠다. )


      [EX] CREATE TABLE [원하는 TABLE명]

            (

               NO1 NUMBER NOT NULL

              ,NO2 NUMBER NOT NULL

              ,NO3 NUMBER GENERATED ALWAYS AS (NO1 + NO2) VIRTUAL

            );

                                                                                            - VIRTUAL은 생략 가능!

      [조회방법]

         INSERT INTO [생성된 TABLE명] (NO1, NO2) VALUES (10, 20);

   SELECT * FROM [생성된 TABLE명];




2. ALTER 명령 ( 수정하기 )

   (1) 컬럼 추가

      [EX] ALTER TABLE [생성된 TABLE명]

            ADD ( [원하는 COLUMN명] VARCHAR(20) );


   (2) 컬럼명 변경

      [EX] ALTER TABLE [생성된 TABLE명] RENAME COLUMN [바꾸기 전 COLUMN명] TO [바꾼 후 COLUMN명];


   (3) 컬럼 삭제

      [EX] ALTER TABLE [생성된 TABLE명] DROP COLUMN [생성된 COLUMN명];


   (4) 읽기 전용 & 읽기/쓰기 전용으로 셋팅 : 변경이 잘 없는 코드성 자료에 쓰기 적합

      ALTER TABLE [생성된 TABLE명] READ WRITE;

      ALTER TABLE [생성된 TABLE명] READ ONLY;


     -> ui 단(변경이 잘 없는 부분)에서 풀고 쓰기를 활용해서 값 저장하고 읽기 전용으로 다시 묶는 방식으로 쓰면 괜찮을듯




3. TRUNCATE 명령

   : TABLE 남기고, DATA, MEMORY, INDEX 모두 삭제

   * 주의할점 : ROLLBACK 불가능, 무조건 전체 삭제, TABLE 처음 상태로 초기화

    (DELETE 보다 빠르게 처리함, 대용량 DATA처리에 유리)


   [EX] TRUNCATE TABLE [삭제할 TABLE명];




4. DROP 명령

   : TABLE을 포함해서 전부 다 삭제

   [EX] DROP TABLE [삭제할 TABLE명];


※ 기본구문

 

 - 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

 


1. 테이블 컬럼 추가하기(ALTER TABLE ADD)

[문법] ALTER TABLE 테이블명 ADD(컬럼명 데이타타입(사이즈));

( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(13) 타입으로 추가할 때

-> ALTER TABLE USER ADD(USER_NAME VARCHAR2(13)); 

 

2. 테이블 컬럼 수정하기(ALTER TABLE MODIFY)

[문법] ALTER TABLE 테이블명 MODIFY(컬럼명 테이타타입(사이즈));

( EX ) USER라는 테이블에 USER_AGE 라는 컬럼을 NUMBER(3) 타입으로 수정할 때

-> ALTER TABLE USER MODIFY(USER_AGE NUMBER(3));

 

3. 테이블 컬럼 삭제하기(ALTER TABLE DROP)

[문법] ALTER TABLE 테이블명 DROP COLUMN 컬럼명

( EX ) USER라는 테이블에 USER_NAME라는 컬럼을 삭제할 때

-> ALTER TABLE USER DROP COLUMN USER_NAME;

 

4. 테이블 컬럼 이름 변경하기(ALTER TABLE RENAME)

[문법] ALTER TABLE 테이블명 RENAME COLUMN 원래컬럼명 TO 바꿀컬럼명;

( EX ) USER라는 테이블에 USER_NAME 이라는 컬럼을 USER_FIRST_NAME으로 변경할 때

-> ALTER TABLE USER RENAME COLUMN USER_NAME TO USER_FIRST_NAME;

 

 

컬럼 수정 작업은 테이터가 별로 없는 테이블이나 시작 단계에서 작업을 하는 것을 추천합니다.

1. 데이터가 많으면 수정하는데 시간이 많이 걸릴 것입니다.

2. 컬럼 수정으로 인해 컬럼명이 매칭이 되지 않아서 프로그램 오류가 발생할 수도 있습니다.

+ Recent posts