[Oracle] DDL(Data Definition Language) - 데이터 정의어, 자료형
데이터 정의어(Data Definition Language)
데이터베이스를 정의하는 언어이며, 데이터리를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어 입니다. 데이터베이스, 테이블등을 생성하는 역할을 합니다.
* CREATE
▶ 데이터 베이스, 테이블 등을 생성하는 역할을 합니다.
* ALTER
▶ 테이블을 수정하는 역할을 합니다.
* DROP
▶ 데이터베이스, 테이블을 삭제하는 역할을 합니다.
* TURNCATE
▶ 테이블을 초기화 시키는 역할을 합니다.
위의 DML명령어들을 살펴 보기전에 앞서, Oracle DBMS의 자료형부터 먼저 알아보겠습니다.
자료형(TYPE) : 용량은 항상 넉넉하게 주도록 한다.
숫자
NUMBER(precision) : 정수
NUMBER(precision, 소수점 자리수) : 실수
NUMBER : 생략 시 22byte까지 입력 가능(38자리 정수)
문자열
CHAR(길이) : 고정형
CHAR(4)에 'A'를 넣으면 A^^^ 빈 자리가 공백으로 채워집니다.
형식을 정한 날짜, 주민등록번호처럼 글자 수가 절대 변하지 않는 값을 넣습니다.
VARCHAR(길이), VARCHAR2(길이) : 가변형
값의 길이만큼 공간이 배정됩니다. 글자 수에 변화가 있는 값을 넣습니다.
날짜
DATE : FORMAT에 맞춰서 날짜를 저장하는 타입
* CREATE
※ CREATE명령어 ()안에서 공백('\n')이 있으면 오류가 납니다.
※ 제약조건을 설정하는 CONSTRAINT 키워드로 PRIMARY KEY를 설정했습니다.
CREATE TABLE TBL_ANIMAL(
ID NUMBER /*PRIMARY KEY*/,
--예약어를 컬럼명으로 사용하고 싶다면 ""를 붙여준다.
"TYPE" VARCHAR2(1000),
AGE NUMBER(3),
FEED VARCHAR2(1000),
CONSTRAINT ANIMAL_PK PRIMARY KEY(ID)
);
CREATE TABLE TBL_STUDENT(
ID NUMBER,
NAME VARCHAR2(1000),
MAJOR VARCHAR2(1000),
GENDER CHAR(1) DEFAULT 'F' NOT NULL CONSTRAINT BAN_CHAR CHECK(GENDER IN('M','F')),
BIRTH DATE CONSTRAINT BAN_DATE CHECK(BIRTH >= TO_DATE('1980-01-01','YYYY-MM-DD')),
CONSTRAINT STUDENT_PK PRIMARY KEY(ID) );
※ 조합키 사용
CREATE TABLE TBL_FLOWER(
flowerName VARCHAR2(1000),
flowerColor VARCHAR2(1000),
flowerPrice NUMBER,
CONSTRAINT FLOWER_PK PRIMARY KEY(flowerName, flowerColor)
);
* ALTER
제약 조건 추가
ALTER TABLE TBL_ANIMAL ADD CONSTRAINT ANIMAL_PK PRIMARY KEY(ID);
제약 조건 삭제
ALTER TABLE TBL_ANIMAL DROP CONSTRAINT ANIMAL_PK;
컬럼 추가
ALTER TABLE TBL_ANIMAL ADD(GENDER CHAR(1));
컬럼 이름 수정
ALTER TABLE TBL_ANIMAL RENAME COLUMN ID TO NUM;
컬럼 삭제
ALTER TABLE TBL_ANIMAL DROP COLUMN GENDER;
컬럼 변경
ALTER TABLE TBL_ANIMAL MODIFY(FEED VARCHAR2(1000));
테이블 이름 수정
ALTER TABLE TBL_ANIMAL RENAME TO TBL_ANIMAL2;
* DROP
DROP TABLE TBL_ANIMAL;
* TURNCATE
TRUNCATE TABLE TBL_ANIMAL;
TRUNCATE, DROP, DELETE 차이
이상으로 데이터 정의어 DML에대해 알아보았습니다.
'KoreaIt Academy > Oracle DBMS' 카테고리의 다른 글
[Oracle] DCL(Data Control Language) , TCL(Transaction Control Language) (0) | 2021.08.07 |
---|---|
[Oracle] DML(Data Manipulation Language) - 데이터 조작어 (0) | 2021.08.05 |
[Oracle] 데이터 모델링 (0) | 2021.08.04 |
[Oracle] DMBS(Database Management System), 무결성 (0) | 2021.08.04 |
[Oracle] DBeaver(Oracle DBMS IDE) 설치 및 단축키 (0) | 2021.08.04 |
댓글