본문 바로가기

언어/SQL

[기본] SQLD 2과목 1장 공부 정리 3 (테이블명 변경, 칼럼 추가/삭제/변경, 테이블 삭제, 뷰 생성/조회/삭제)

과목 Ⅱ. 데이터모델링의 이해

 

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);

age 칼럼 추가


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 옵션 추가

ename 칼럼의 데이터형길이가 40으로 Null 이 No로 바뀜


2-4) 칼럼 삭제

 

alter table 테이블명

drop column 칼럼명;

 

# 칼럼 삭제 (Oracle, MySQL 동일)

alter table emp
drop column age;

age 칼럼 삭제


2-5) 칼럼명 변경

 

alter table 테이블명

rename column 칼럼명 to 새칼럼명;

 

# 칼럼명 변경 (Oracle, MySQL 동일)

alter table emp
rename column ename to new_ename;

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문은 상당히 자주 활용되는 명령문으로 집중적으로 알아볼 필요가 있다.