개발 강의 정리/SQL
[SQL] CREATE, ALTER, DROP, TRUNCATE
심사기
2021. 5. 24. 11:40
DICTIONARY
USER_XXX : 내가 소유한(내가 만든) 객체들의 정보
ALL_XXX : 내가 접근 할 수 있는 객체들의 정보
DBA_XXX : DBA ROLE로 접근
<CREATE TABLE>
제약조건 이름 : 테이블명_컬럼명_PK/UK/NN/FK/CK - 의미를 갖는 이름을 지정한다.
콤마의 위치가 중요!
<1>
CREATE TABLE 테이블 명 (
컬럼명 데이터타입()
CONSTRAINT 제약조건명 KEY ,
)
<2>
CREATE TABLE 테이블 명 (
컬럼명 데이터타입(),
컬럼명 데이터타입()
CONSTRAINT 제약조건 명 NOT NULL, //NOT NULL 조건은 제약조건을 분리해서 지정할 수 없음.
컬럼명 데이터타입(),
CONSTRAINT 제약조건명 KEY(컬럼), //제약조건과 컬럼을 분리해서 지정할 수 있음
CONSTRAINT 제약조건명 FOREIGN KEY(컬럼) REFERENCES 참조테이블명(참조 컬럼명),
)
<2> 번 방식으로 선언하면 복합키를 선언 할 수 있음
CONSTRAINT 제약조건명 PRIMARY KEY (컬럼1, 컬럼2)
<ALTER TABLE>
1.새로운 컬럼 추가
ALTER TABLE 테이블 명 ADD ( 컬럼명 데이터타입 [DEFAULT 디폴트값]);
2. 기존 컬럼 수정
:데이터 타입 사이즈 변경, 테이블의 데이터가 NULL일 경우 타입 변경 가능
:NOT NULL 제약 조건 추가.
ALTER TABLE 테이블명 MODIFY( 컬럼명 데이터타입 [DEFAULT 디폴트값])
3.열 삭제
ALTER TABLE 테이블명 DROP (열삭제);
4.UNUSED 컬럼 지정
ALTER TABLE 테이블명 SET UNUSED COLUMN 컬럼명;
5.UNUSED 컬럼 삭제
ALTER TABLE 테이블명 DROP UNUSED COLUMNS;
<TRUNCATE TABLE>
:테이블에서 모든 행을 제거
:해당 테이블이 사용하는 저장공간을 해제한다
:TRUNCATE 명령어를 사용한 행 제거 작업은 롤백 할 수 없다. (사용과 동시에 COMMIT되기 때문)
TRUNCATE TABLE 테이블명;
<DROP TABLE>
:테이블의 모든 데이터 및 구조를 삭제한다.
:보류중인 트랜잭션을 모두 커밋한다.
:인덱스를 모두 삭제한다
:DROP TABLE은 롤백 할 수 없다. (사용과 동시에 COMMIT되기 때문)
DROP TABLE 테이블명;