과목 Ⅱ. 데이터모델링의 이해
1장 SQL 기본
3절 DDL(Data Definition Language)
2. 테이블 변경
: 테이블명 변경, 칼럼 추가/변경/삭제를 할 수 있다.
기본적인 구문은 ## ALTER TABLE 테이블명 ~ ; ##
(Alter문은 "수정"이 아니라 "변경"이라는 단어를 쓴다는 점 명심하자.)
빠르게 달려보자.
2-1) 테이블명 변경
alter table 테이블명
rename to 새로운이름;
#테이블명 변경 (Oracle, MySQL 동일)
alter table emp
rename to new_emp;
공부 속도를 위해 굳이 캡처는 하지 않기로 했다.
2-2) 칼럼 추가
새로운 칼럼을 추가
alter table 테이블명
add (칼럼명 데이터형식(n) 옵션);
#칼럼 추가
alter table emp
add (age int(2) default 1);
2-3) 칼럼 변경
칼럼의 데이터 타입, 제약 조건 등 변경
alter table 테이블명
modify 칼럼명 데이터타입(n) 옵션;
# Oracle 기준
alter table emp
modify (ename varchar2(40) not null); #Oracle은 괄호를 추가해주어야 함
# MySQL 기준
alter table emp
modify ename varchar(40) not null; #가변문자형 20길이던 ename 칼럼의 길이를 40으로 바꾸고 not null 옵션 추가
2-4) 칼럼 삭제
alter table 테이블명
drop column 칼럼명;
# 칼럼 삭제 (Oracle, MySQL 동일)
alter table emp
drop column age;
2-5) 칼럼명 변경
alter table 테이블명
rename column 칼럼명 to 새칼럼명;
# 칼럼명 변경 (Oracle, MySQL 동일)
alter table emp
rename column ename to new_ename;
3. 테이블 삭제
Drop table 테이블명;
#테이블 삭제
Drop table emp;
#Oracle cascade constraint 옵션
- drop table 테이블명 cascade constraint : 해당 테이블을 참조한 슬레이브 테이블과의 제약사항까지 모두 삭제된다.
4. 뷰(View)의 생성과 삭제
- 뷰 : 테이블로부터 유도된 가상의 테이블
실제 데이터를 갖고 있지 않고 테이블을 참조해서 원하는 칼럼만 조회가 가능함
- 뷰의 특징
- 참조한 테이블이 변경되면 뷰도 변경됨
- 뷰의 검색은 참조한 테이블과 동일하게 할 수 있지만, 뷰에 입력, 수정, 삭제하는 것은 안됨
- 특정 칼럼만 조회함으로써 보안성 향상
- 한 번 생성된 뷰는 변경 불가, 변경을 원하면 삭제 후 재생성
- 뷰의 장점
- 보안 향상
- 데이터 관리가 간단해짐
- SELECT문이 간단해짐
- 한 테이블에 여러 뷰 생성 가능
- 뷰의 단점
- 독자적인 인덱스를 만들 수 없음
- 삽입, 수정, 삭제 불가
- 데이터 구조 변경 불가
4-1) 뷰 생성
Create view 뷰이름 as
select * from 테이블;
#뷰 생성
create view t_emp as
select * from emp;
4-2) 뷰 조회
select * from 뷰;
#뷰 조회
select * from t_emp;
4-3) 뷰 삭제
drop view 뷰;
#뷰 삭제
drop view t_emp;
지난번 DDL문 중 테이블 생성에 이어서 테이블 변경, 테이블 삭제와 뷰 생성/조회/삭제에 대해 알아보았다.
다음은 DML문을 알아보자.
DML문은 상당히 자주 활용되는 명령문으로 집중적으로 알아볼 필요가 있다.