[SQL/Oracle] 테이블 생성, 수정, 삭제
2022. 5. 18. 11:51ㆍDB/Oracle
반응형
Oracle에서 테이블을 관리하는 명령어를 살펴보자.
테이블 생성, 복제
테이블을 생성하는 방식은 다음과 같다.
create table 테이블명 (
컬럼명, 타입
);
account 테이블을 만든다고 가정할 때, 아래와 같이 만들 수 있다.
create table account (
id varchar2(20),
name varchar2(30),
balance number
);
실행 결과
기존에 만들어진 테이블을 복제하거나, 테이블의 일부를 가져와 생성할 수도 있다.
이럴 땐 기존 select-from-where절을 통해 원하는 기준을 설정해 가져오면 된다.
예제를 보며 정리해보자.
-- 테이블 복제
create table dept3
as select * from dept2;
-- 테이블 일부 복제
create table dept5
as select * from dept2
where area='서울지사';
-- 데이터 없이 테이블 구조만 복제하고 싶을 때
create table dept6
as select * from dept2
where 1=2; -- 항상 조건절을 false로 만들어주면 된다.
테이블 수정 - 테이블명 변경, 컬럼 수정
이때, 테이블의 컬럼을 수정하는 것과 데이터 값을 변경&추가 하는 것과 헷갈리면 안된다!
이름, 나이, 몸무게의 컬럼을 가진 테이블이 있을 때,
몸무게 -> 키 로 바꾸는것이 컬럼 수정
["홍길동", 22, 68] 의 데이터를 ["김길동", 24, 75]로 바꾸는 것은 데이터 수정
테이블에 컬럼 추가 (default는 생략가능, 데이터 삽입 시 기본값을 자동으로 넣어준다)
alter table 테이블명 add (컬럼이름 타입 [default]);
테이블 컬럼명 변경
alter table 테이블명 rename column 컬럼 to 바꿀컬럼의이름;
테이블명 변경
rename 테이블 to 바꿀이름;
컬럼 데이터 크기 조정
alter table 테이블명 modify(컬럼 타입);
아래 예제를 참조해서 마무리해보자
-- 컬럼 추가
alter table dept6
add (location varchar2(20));
-- 컬럼명 변경
alter table dept5
rename column location to loc;
-- 테이블명 변경
rename dept6 to dept7;
-- 컬럼 데이터 크기 조정
alter table dept5 modify(loc varchar2(30));
테이블 삭제 및 컬럼 삭제
테이블 삭제
drop table 테이블명;
컬럼 삭제
alter table 테이블명 drop column 컬럼명;
전체 데이터 삭제
truncate table 테이블명; -- 데이터가 있던 공간까지 전부 삭제
delete from 테이블명 where 지울조건; -- 데이터값만 삭제,
drop vs truncate vs delete?
delete는 데이터만 삭제하여 데이터를 할당한 공간은 남아있다.
truncate는 이러한 공간까지 전부 삭제한다
drop은 테이블 자체를 삭제
예제와 함께 마무리해보자
-- 컬럼 삭제
alter table dept7 drop column location2;
-- 전체 데이터 삭제
truncate table dept5;
-- 테이블 삭제
drop table dept5;
'DB > Oracle' 카테고리의 다른 글
[Oracle] Tablespace & User생성 (feat. DBeaver) (0) | 2022.08.02 |
---|---|
[SQL/Oracle] 데이터 삽입, 변경, 삭제 (0) | 2022.05.18 |
[SQL/Oracle] 쿼리 조건문 - case (0) | 2022.05.17 |
[SQL/Oracle] null 치환하기 - NVL(), NVL2() (0) | 2022.05.17 |