JongDDA의 한걸음 한걸음씩
SQL - DDL(데이터 정의 언어) 본문
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;
'개발 > 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 |