Notice
Recent Posts
Recent Comments
Link
Tags
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

JongDDA의 한걸음 한걸음씩

SQL - DDL(데이터 정의 언어) 본문

개발/SQL

SQL - DDL(데이터 정의 언어)

종따 2021. 7. 26. 13:03
728x90

 

DDL(Data Definition Language) : 오브젝트를 생성하고, 변경하고, 관리하는 명령어 

 

데이터베이스를 정의하는 언어이며, 데이터리를 생성,수정,삭제하는 등의 데이터의 전체 골격을 결정하는 역할을 하는 언어이다.

 

종류 역할
CREATE(생성) 데이터베이스, 테이블 등을 생성하는 역할
ALTER(수정) 테이블을 수정하는 역할
TRUNCATE(잘라내기) 데이터베에스, 테이블을 삭제하는 역할
DROP(삭제) 테이블을 초기화 시키는 역할

 

CREATE 

 

새로운 오브젝트나 스키마를 생성할 때 사용하는 명령어

 

구조

CREATE TABLE 테이블명
( 컬럼명 데이터 유형(길이),
  컬럼명 데이터 유형(길이),
  컬럼명 데이터 유형(길이));

 

데이터 유형은 크게 문자형/ 숫자형 / 날짜형으로 구분할 수 있다.

 

데이터 유형 설명
NUMBER[(P,S)] 자릿수가 P이고 소수점 이하 자릿수가 S인 숫자
CHAR[(SIZE)] 길이가 SIZE바이트인 고정 길이 문자 데이터(읽는 속도 빠르다.)
VARCHAR2(SIZE) 가변 길이 문자 데이터(공간 효율적)
DATE 날짜 및 시간 값
LONG 가변 길이 문자 데이터

 

EX)

CREATE TABLE new_table
( no NUMBER(3),
  name VARCHAR(10),
  birth DATE );

EX2)

CREATE TABLE EMPS
    (EMPNO NUMBER(4),
     ENAME VARCHAR2(20),
    JOB VARCHAR2(9),
    MGR NUMBER(4),
    HIREDATE DATE,
     SAL NUMBER(7,2),
    COMM NUMBER(7,2),
    DEPTNO NUMBER(2));

 

- 테이블 구조 확인

 

DESC EMPS

-> 테이블 잘 생성되었는지 확인

 

-> 아직 아무런 데이터도 넣어주지 않았기 때문에 조회가 되지 않는다.

->  INSERT 명령어를 이용해 데이터를 넣어줄 수 있다. (추후 학습)

 

- 테이블 복사

 

구조

CREATE TABLE 복사해서 저장할 테이블명
AS
SELECT * FROM 복사할 테이블명;

일부 컬럼만을 복사할 수 있고 WHERE 절을 사용해 특정 데이터만 복사할 수 있다.

 

EX)

CREATE TABLE EMPS2
AS
SELECT * FROM EMPS;

EMPS 테이블을 복사하여 EMPS2 테이블로 저장

 

ALTER 

: 만들어져 있는 오브젝트를 변경하는 명령어

: 테이블의 경우 컬럼을 추가하거나 컬럼을 삭제하거나 컬럼 이름이나 테이블 이름을 바꾸는 등의 작업을 수행한다. 

: ALTER을 통해 변경하면 ROLLBACK, FLASHBACK을 통한 복구가 어려우니 신중히 실행해야 한다.

 

- 새로운 컬럼 추가

 

ALTER TABLE 테이블명
ADD 추가할컬럼명 데이터 유형(길이);

EX)

ALTER TABLE EMPS
ADD HP VARCHAR2(10);

-- EMPS 테이블에 VARCHAR2(10)인 HP 컬럼 추가

 

- 컬럼 데이터 크기 변경

 

ALTER TABLE 테이블명
MODIFY 컬럼명 변경할 데이터 유형(길이);

EX)

ALTER TABLE EMPS
MODIFY HP VARCHAR2(13);


- 테이블의 컬럼 이름 변경

ALTER TABLE 테이블명
RENAME COLUMN 기존컬럼명 TO 변경할컬럼명;

EX)

ALTER TABLE EMPS
RENAME COLUMN HP TO MP;

- 컬럼 삭제

ALTER TABLE 테이블명
DROP COLUMN 컬럼명;

EX)

ALTER TABLE EMPS
DROP COLUMN MP;

 

TRUNCATE

: 테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납하는 명령어

: 명령어를 수행하면 해당 테이블의 데이터가 모두 삭제되지만 테이블 자체가 지워지는 것은 아니다. 

: ROLLBACK 되지 않으며 부분적으로 삭제 불가능하다.

 

구조

TRUNCATE TABLE 테이블명;

 

DROP

: 테이블 자체를 삭제하는 명령어

: 삭제시 휴지통으로 보내진다. 

 

구조

DROP TABLE 테이블명;

 

- 휴지통 출력

SHOW RECYCLLBIN

 

- 복원

FLASHBACK TABLE 테이블명
TO BEFORE DROP;

 

- 휴지통가지 않고 완전삭제

DROP TABLE 테이블명 PURGE;


- 휴지통 비우기

PURGE RECYCLENIN;

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'개발 > SQL' 카테고리의 다른 글

SQL - VIEW(뷰)  (0) 2021.07.28
SQL - DML(데이터 조작 언어)  (0) 2021.07.28
SQL - 조인(JOIN)  (0) 2021.07.25
SQL - 복수행 함수(그룹함수), GROUP BY 절  (0) 2021.07.25
SQL 이란? Window 10 Oracle 11g 다운로드 및 설치  (0) 2021.07.24
Comments