<ALTER>
- 테이블 변경
- 컬럼의 추가/삭제/수정, 제약 조건의 추가/삭제
ALTER TABLE PLAYER_TEMP
뒤에 ADD가 오냐, MODIFY가 오냐 RENAME이 오냐에 따라 수정됨
<컬럼의 추가, ADD>
- 새로 추가한 컬럼은 테이블의 맨 마지막에 추가됨
ALTER TABLE PLAYER_TEMP ADD (ADDRESS VARCHAR2(80));
<컬럼의 삭제 DROP COLUMN>
- drop후에 최소 1개 이상의 컬럼이 남아있어야함.
ALTER TABLE PLAYER_TEMP DROP COLUMN ADDRESS;
<컬럼명 변경 RENAME COLUMN>
- 이름만 바꾸고 모든 정의가 그대로 유지됨
ALTER TABLE PLAYER_TEMP RENAME COLUMN PLAYER_ID TO PLAYER_NEW_ID;
<컬럼 정의 수정 MODIFY>
- 이미 입력되어 있는 값에 영향을 미치는 변경은 허용하지 않음
- 데이터 타입 변경 ( 테이블에 아무 행이 없고, NULL만 갖고 있을때 가능)
- 컬럼 크기 변경 (크기 확대 : 항상 가능 /
축소 : 아무 행도 없거나, 컬럼이 NULL만 갖고 있거나, 저장된 값을 수용할 수 있는 크기로만 축소가능)
- default 값 추가 및 수정 ( 이후 삽입되는 행에만 영향 미침)
- NOT NULL 제약 조건 추가 (테이블에 아무 행 없거나, NULL이 없을때만 가능)
: 삭제 (항상 가능)
: 추가 / 삭제
ALTER TABLE 테이블명 MODIFY (속성명 NOT NULL / NULL);
Q. PLAYER_TEMP 테이블에서 PLAYER_NAME 속성이 NULL 값을 허용하도록 정의 변경
ALTER TABLE PLAYER_TEMP MODIFY (PLAYER_NAME NULL);
<제약 조건의 추가/삭제 ADD/DROP CONSTRAINT>
- 테이블 생성 이후에도 제약 조건을 추가/삭제 할 수 있음.
ALTER TABLE PLAYER_TEMP(테이블명)
ADD CONSTRAINT PLAYER_TEMP_FK(constraint 이름)
FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);
ALTER TABLE PLAYER_TEMP
DROP CONSTRAINT PLAYER_TEMP_FK;
Q. PLAYER_TEMP에서 PLAYER_NEW_ID를 PK로 정하기
ALTER TABLE PLAYER_TEMP
ADD CONSTRAINT PLAYER_TEMP_PK PRIMARY KEY (PLAYER_NEW_ID);
<RENAME>
- 테이블 이름 변경
RENAME 기존 테이블명 TO 새로운 테이블명
RENAME PLAYER_TEMP TO OLD_PLAYER;
<사용자 생성 객체의 확인>
SELECT * FROM USER_OBJECTS;
--테이블을 불러오려면 WHERE문으로 TABLE만 불러오기
SELECT *
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE';
<테이블 삭제>
DROP TABLE TEAM;
- 만약 제약 조건으로 인해 삭제가 안되어서 오류가 생긴다면,
DROP TABLE TEAM
CASCADE CONSTRAINT;
제약 조건도 함께 삭제 해주면 된다.
'데이터베이스 > SQL' 카테고리의 다른 글
SQLD 를 위한 SQL기본문법 정리 6 - Function_2 (0) | 2024.02.14 |
---|---|
SQLD 를 위한 SQL기본문법 정리 6 - Function_1 (0) | 2024.02.14 |
SQLD 를 위한 SQL기본문법 정리 4 - DDL, 테이블 생성 (0) | 2024.02.13 |
SQLD 를 위한 SQL기본문법 정리 3 (0) | 2024.02.07 |
SQLD 를 위한 SQL기본문법 정리 2 (0) | 2024.02.05 |