-
SQL DDL_AlterData Base_Oracle/SQL 2020. 1. 4. 15:34
DDL _ Create, Alter, Drop
Data Definition Language : 데이터 정의어
Table Create생성, Alter수정, Drop삭제 구문Alter
테이블의 구조를 수정하는 구문
ADD_이미 생성된 테이블에 필드 추가
이미 데이터가 저장되어 있다면 제약을 받음
§ 형식
[ SQL> alter table 수정table명 add (추가할 필드명 자료형 제약조건); ]
※ 제약조건 : 올바른 값만 입력 받을 수 있도록 하는 규칙# 예제
▶ [ SQL> alter table b_prtest add (tel varchar2(15) not null);
1행에 오류:
ORA-01758: 테이블은 필수 열을 추가하기 위해 (NOT NULL) 비어 있어야 합니다. ]
※ 수정할 테이블에 이미 NULL값이 있다면 NOT NULL 조건을 추가할 수 없음
Not Null 제약조건 생략 → Null 허용▶▶[ SQL> alter table b_prtest add (tel varchar2(15)); ]
Not null 조건을 넣으려면 이미 있는 데이터를 전부 삭제해야 하기 때문에 포기함ID NAME TEL 1 홍길동 2 이순신 3 강감찬 Modify_필드 내용 변경
§ 형식
[ SQL> alter table 수정table명 modify (수정할 필드명 자료형 제약조건); ]
※ 데이터가 이미 저장되어 있는 경우에는 자료형, 제약조건 수정 제한
데이터 길이 확장만 가능, 기존의 정보가 훼손될 수 있기 때문에 축소는 불가
varchar2(15) → varchar2(30) O, varchar2(30) → varchar2(15) X# 예제
[ SQL> alter table b_prtest modify(name varchar2(30));
SQL> desc b_prtest ]이름 널? 유형 ID NUMBER(5) NAME VARCHAR2(30)
15 → 30TEL VARCHAR2(15) Drop_필드 삭제
§ 형식
[ SQL> alter table 수정table명 drop column 삭제할 필드명 ; ]
# 예제
b_prtest 테이블에서 tel 필드 삭제
[ SQL> alter table b_prtest drop column tel; ]이름 널? 유형 ID NUMBER(5) NAME VARCHAR2(30) Rename_필드 이름 변경
§ 형식
[ SQL> alter table 수정table명 rename column 수정전 필드명 to 수정후 필드명; ]
# 예제
b_prtest 테이블의 name필드의 이름을 irum으로 변경
[ SQL> alter table b_prtest rename column name to irum;
SQL> desc b_prtest ]
※ Oracle 버전에 따라서 데이터가 들어있으면 필드명이 변경되지 않기도 함이름 널? 유형 ID NUMBER(5) NAME VARCHAR2(30)
Alter문은 테이블내 필드를 수정할 때 많이 사용됩니다.
'Data Base_Oracle > SQL' 카테고리의 다른 글
SQL 제약조건(Constraint) 종류 및 개요 (0) 2020.01.04 SQL DDL_Drop, Rename (0) 2020.01.04 SQL_DDL Create & 자료형 & 데이터 백업 (0) 2020.01.04 SQL 그룹함수, Group by, Having 조건식 (0) 2020.01.04 SQL 중첩함수, 동적 매개변수 활용 (0) 2020.01.03