오라클 SQL DBEAVER / DDL, DROP, ALTER, ROLLBACK

2021. 8. 3. 17:23dummmy

반응형
더보기
CRUD: 데이터 기본 처리 기능 --CREATE: INSERT --READ:SELECT --UPDATE:UPDATE --DELETE:DELETE
더보기
DDL(CREATE,ALTER,DROP) --CREATE: 데이터베이스 객체 생성 --ALTER: 생성한 객체를 수정 --DROP: 생성산 객체를 삭제
더보기

ALTER

1.추가 ALTER TABLE DEPT_COPY ADD(LNAME VARCHAR2(20)); --LNAME 컬럼이 추가된다

2.삭제 ALTER TABLE DEPT_COPY DROP COLUMN LNAME;

  • 기본값 적용해서 추가 (위의 LNAME은 NULL값이 들어가있었음) DEFAULT ' ' ALTER TABLE DEPT_COPY ADD (LNAME VARCHAR2(20) DEFAULT '한국');
  • -컬럼에 제약조건 추가하기 DEPT_TITLE에 고유값 제약조건추가 ALTER TABLE DEPT_COPY2 ADD CONSTRAINT UK_DEPT_TITLE UNIQUE(DEPT_TITLE);
  • -LNAME에 필수 입력사항에 대한 제약조건 추가(NOTNULL)

ALTER TABLE DEPT_COPY2 MODIFY LNAME CONSTRAINT NN_DEPT_LNAME NOT NULL;

더보기
제약조건 확인하기 SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='DEPT_COPY2';INSERT INTO DEPT_COPY2 VALUES('D10','샘플부서','L1','한국'); --SQL Error [12899] [72000]: ORA-12899: value too large for column "KH"."DEPT_COPY2"."DEPT_ID" (actual: 3, maximum: 2) DEPT_ID가 2 크기로 되어있어 D10이 안들어감. 칼럼의 자료형 크기 수정 필요. ALTER TABLE DEPT_COPY2 MODIFY DEPT_ID VARCHAR2(10) MODIFY DEPT_TITLE VARCHAR2(30); // 예를들어, 이미 들어간 값들이 5 이상인데, 3으로(이미 들어간 값보다 작게) 변경하려고 한다면 에러가 난다. 그러니 원래값보다 크기를 늘릴 수만 있다
더보기
테이블의 이름 변경 ALTER TABLE DEPT_COPY2 RENAME TO DEPT_COPY_SECOND;
더보기
테이블 이름 변경 한정하여 짧게 줄여쓸 수 있다 RENAME DEPT_COPY_SECOND TO DEPT_COPY2
더보기
ROLLBACK; 롤백은 가장 최근의 시점으로만 돌아갈 수 있다. 삭제(DROP)한 것은 ROLLBACK해도 돌아가지 않는다 DDL 명령어는 사용자 계정 설정 정보에 대한 하나의 연결 객체로 처리하여 COMMIT/ROLLBACK이 불가능하다 또한 이전에 DML을 사용한 후에 DDL명령어를 사용하면 그 이전까지의 데이터 조작 내용이 자동으로 COMMIT 처리 된다
더보기
DROP : SQL Error [12983] [72000]: ORA-12983: cannot drop all columns in a table 칼럼 삭제시에는 반드시 하나 이상의 컬럼이 존재해야 한다. ALTER TABLE DEPT_COPY2 DROP COLUMN DEPT_ID
더보기
ALTER TABLE DEPT_COPY DROP (LNAME); LNAME에 ( )
더보기
여러컬럼 한번에 삭제 ALTER TABLE DEPT_COPY DROP (DEPT_TITLE , LOCATION_ID);
더보기
제약조건 삭제 ALTER TABLE CONST_TAB DROP CONSTRAINT CK_TAB;
더보기
ALTER TABLE CONST_TAB MODIFY (AGE NULL); NULL을 허용
반응형