- ALTER table 구테이블명 RENAME TO 신테이블명;(테이블명변경)
SQL> ALTER TABLE emp RENAME TO new_emp;
- ALTER table 테이블명 RENAME COLUMN 구컬럼명 TO 신테이블명;(테이블컬럼명변경)
SQL> ALTER TABLE emp RENAME COLUMN job TO jobname;
- ALTER table 테이블명 RENAME CONSTRAINT 구제약조건명 TO 신제약조건명;
(제약조건명변경)
② 컬럼 추가
- SQL> ALTER TABLE emp ADD(addr varchar2(50));
③ 컬럼 변경
- SQL> ALTER TABLE emp MODIFY(ename varchar2(50) NOT NULL);
* 컬럼이 이미 데이터를 가지고 있을 경우 다른 데이터형으로 변경 불가능
④ 컬럼 삭제
- SQL> ALTER TABLE emo DROP COLUMN SAL;
⑤ 제약조건의 삭제
- SQL> ALTER TABLE emp DROP PRIMARY KEY;
* CASCADE 연산자와 함께 사용하면 외래키에 의해 참조되는 기본키도 삭제될 수 있다
- SQL> ALTER TABLE emp DROP CONSTRAINT emp_pk_empno CASCADE
⑥ 테이블 TRUNCATE
- SQL> TRUNCATE TABLE emp;
* 테이블을 TRUNCATE하면 테이블의 모든 행이 삭제되고 사용된 공간이 해제
* TRUNCATE table은 DDL명령이므로 롤백 데이터가 생성되지 않는다
* DELETE 명령으로 데이터를 지우면 롤백명령어로 복구 할 수 있지만
TRUNCATE 명령으로 데이터를 삭제하면 롤백을 할 수가 없다
* 행당 인덱스도 같이 잘려 나간다
* 외래키가 참조중인 테이블은 TRUNCATE할 수 없다
⑦ 테이블 삭제
- SQL> DROP TABLE emp;(테이블 삭제)
- SQL> DROP TABLE emp CASCADE CONSTRAINT;(제약조건도 같이 삭제)
* CASCADE CONSTRAINT : 외래키에 의해 참조되는 기본키를 포함한 테이블일 경우
기본키를 참조하던 외래키 조건도 같이 된다
⑧ 테이블의 KEY찾기
- primary key찾기
SQL> SELECT * FROM user_ind_columns WHERE table_name="codetable";
- 서로 연결되는 key찾기
SQL> SELECT constraint_name,constraint_type,r_constraint_name FROM
user_constraints WHERE table_name="TABLE_NAME";
⑨ 테이블 구조보기
- SQL> DESC table_name;
⑩ 제약조건 확인
- SQL> SELECT table_name,constraint_name,constraint_type FROM
user_constraints WHERE table_name in("DEPARTMENT","EMPLOYEE")'
⑪ 테이블 복사
- 테이블A의 내용을 테이블B로 복사하는 방법(테이블A,B가 이미 존재)
SQL> INSERT INTO b SELECT * FROM a;
- 테이블A의 내용을 테이블B를 생성하면서 복사하는 방법(테이블A만 존재)
SQL> CREATE TABLE b AS SELECT * FROM a;
*SQL> CREATE TABLE emp_41 AS SELECT id,last_name,userid,start_date FROM
s_emp WHERE dept_id=41;
(where절에 엉뚱한 조건을 주면 emp_41이란 이름으로 테이블이 만들어진다)
* 기존테이블을 부분 또는 완전히 복사할 때는 서브쿼리를 가진 create table명령어를
사용해서 쉽게 테이블 복사가능
* 제약조건, 트리거 그리고 테이블권한은 새로운 테이블로 복사되지 않는다
* 제약조건은 not null제약 조건만 복사된다
- 테이블A가 있고 테이블A와 구조가 같고 내용은 복사하지 않는 테이블B를 생성하는 방법
SQL> CREATE TABLE b AS SELECT * FROM a WHERE 1=2;
⑫ 테이블 합치기
- SQL> CREATE TABLE sa4 AS SELECT saname,sajob FROM sawon
WHERE sajob='과장';
- SQL> CREATE TABLE sa5 AS SELECT saname,sajob FROM sawon
WHERE sajob='부장';
→ 위 두테이블 합치기
SQL> CREATE TABLE sa45 AS SELECT * FROM sa4 UNION SELECT * FROM sa5;
⑬ 컬럼에 해당하는 테이블명 알아내기
- SQL> SELECT table_name FROM user_tab_cols WHERE column_name='sal';
- SQL> SELECT count(column_name) "column count" FROM cols WHERE
table_name='emp';
[출처] [본문스크랩] 오라클 테이블 관리|작성자 어린나무
'공부하자 > Oracle' 카테고리의 다른 글
SQLPlus 기본 명령어 (0) | 2008.06.04 |
---|---|
오라클과 NLS의 찰떡궁합 들여다보기 (0) | 2008.06.04 |
오라클 기본 명령 (0) | 2008.06.04 |
오라클 에러메세지 정리 2 (0) | 2008.06.04 |
오라클 에러코드 전체목록 (0) | 2008.06.04 |