DB/오라클

[ORACLE]DDL 테이블 생성 CREATE TABLE

에크키키 2022. 7. 19. 22:54

DDL(데이터정의어)

  • CREATE: 객체생성
  • ALTER:객체변경
  • DROP:객체삭제
  • TRUNCATE:객체 내용및 저장공간 삭제

(※※RENAME :  DB객체  이름 변경 ,정의어 X)

 

삭제명령어 차이점

 DELETE(DML:데이터 조작어)

TRUNCATE, DROP(DDL:데이터 정의어)

 


DELETE 명령어      : 데이터는 지워지지만 테이블 용량은 줄어 들지 않는다.
                                      원하는 데이터만 삭제할 수 있다.
                                      삭제 후 잘못 삭제한 것은 되돌릴 수 있다.(rollback)  
TRUNCATE  명령어 : 용량이 줄어 들고, index 등도 모두 삭제된다.
                                       테이블은 삭제하지는 않고, 데이터만 삭제한다.
                                       한꺼번에 다 지워야 한다. 
                                       삭제 후 절대 되돌릴 수 없다.   
DROP 명령어           : 테이블 전체를 삭제(테이블 공간과 객체를 삭제한다.)  
                                       삭제 후 절대 되돌릴 수 없다.  

 

테이블 생성 CEATE TABLE

create table dept(
	dno number(2),
       	dname varchar2(14),
       	loc varchar2(13));

 

서브쿼리를 이용한 테이블 생성방법

 

★★무결성 제약조건 

not NULL 조건만 복사,
기본키(=PK), 외래키(=FK)와 같은 무결성제약조건은 복사X
디폴트 옵션에서 정의한 값은 복사
서브쿼리의 출력 결과가 테이블의 초기 데이터로 삽입됨

 

 

create table 테이블명(컬럼명 명시O):지정한 컬럼수와 데이터 타입이 서브쿼리문의 검색된 컬럼과 일치,

create table dept1(dept_id)--dept_id:컬럼명 --수 1개
as 
select dno--컬럼수 1개
from department;
--데이터, 데이터타입만 복사

create table 테이블명(컬럼명 명시X):서브쿼리의 컬럼명이 그대로 복사

create table dept2
as
select eno,ename,salary*12 as "연봉" --산술식에 별칭지정 필수
from employee 
where dno=20;
--데이터, 데이터타입만 복사

테이블 구조만 복사

create table dept3
as
select*
from department 
where 0=1;--항상 거짓인 조건

테이블 구조와 내용복사

/*DEPARTMENT 테이블의 구조와 내용을 복사하여 DEPT_COPY_2란 이름의 테이블을 만드시오.*/
create table dept_copy_2
as
select *
from department;