[ORACLE] DDL 데이터 정의어
- Computer/DB
- 2020. 9. 14.
★ DDL (Data Definetion Language)
데이터의 논리적인 물리적 구조를 정의하는 언어로
DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정하는 목적으로 사용된다.
대표적으로 CREATE, ALTER, DROP가 있다.
명령어 |
내용 |
CREATE TABLE |
테이블 생성 |
ALTER TABLE |
테이블 수정 |
DROP TABLE |
테이블 삭제 |
TRUNCNATE |
테이블 내용만 삭제 |
CREATE TABLE
CREATE TABLE TEST
(
CUSTNO NUMBER,
CUSTNAME VARCHAR2(10)
);
TEST TABLE이라는 이름으로
CUSTNO, CUSTNAME 칼럼(속성)을 가진 테이블을 생성한다.
CREATE TABLE
(
속성명 속성타입 [속성 값]
);
가장 기본적이며, 생성의 규칙이다.
한개의 임의의 속성명과 속성명에 담을 숫자, 문자, DATE 등 타입 지정 및 옵션을 설치할 수가 있다.
타입명 |
설명 |
NUMBER |
숫자만 담는다 |
VARCHAR, VARCHAR2 |
문자열을 담는다 |
DATE |
날짜, 시간등을 담는다 |
속성 값은 속성 타입(메모리 최대 크기)으로 지정이 된다.
단, NUMBER, DATE는 최대크기를 생략하고 생성할 수가 있다.
속성 이름 |
내용 |
PRIMARY KEY |
테이블의 기본키 정의한다. 기콘키는 NOT NULL, UNIQUE 제약이 포함되어 있다. |
FOREIGN KEY |
외래 키를 정의한다. 참조 대상을 테이블 이름(열 이름)으로 명시한다. |
UNIQUE |
해당 열은 중복을 제외한다. |
NOT NULL |
해당 열은 NULL값을 제외한다. |
CHECK |
개발자가 정의하는 제약 조건 |
속성값을 이어 붙임으로써, 테이블에 더욱 명확한 명시를 주고
테이블에 제약조건을 적절히 사용함으로써, ORACLE ERROR 방지 및 중복된 데이터를 최소화할 수 있게 된다.
또한 PRIMARY KEY와 FOREIGN KEY를 활용해서 데이터의 관리 또한 유용하게 할 수 있게 도와준다.
이제 이 모든 속성을 적절하게 사용 하게 될 경우에는 아래와 같은 코드가 완성된다.
CREATE TABLE TEST
(
CUSTNO NUMBER,
CUSTNAME VARCHAR2(20) NOT NULL,
PRIMARY KEY(CUSTNO)
);
위의 내용의 복습한 내용이다.
CUSTNO에 PRIMARY KEY를 부여하여 NOT NULL과 UNIQUE 속성을 부여했다.
그리고 CUSTNAME에 NOT NULL을 입력하여 무조건 값을 입력하게 만들었다.
ALTER TABLE
ALTER는 테이블에 대한 정의를 변경할 때 사용한다.
DB를 처음 배울 때에 ALTER는 매우 친숙하지 못하고 어렵게 느껴진다. 그래서 DROP 사용 후 CREATE를 사용하는 경우가 번번이 일어나는데, 만약 TABLE안에 데이터가 중요하게 여겨질 경우 TABLE에 대한 정의를 변경해야 하므로 기초적으로 배워두는 것도 나쁘지 않다.
ALTER 내용 |
내용 |
ALTER TABLE 테이블명 ADD 속성명 데이터 타입 |
TABLE의 속성값을 추가한다. |
ALTER TABLE 테이블명 MODIFY 속성명 데이터 타입 |
TABLE의 속성타입을 변경한다. |
ALTER TABLE 테이블명 DROP COLUMN 속성명 |
TABLE의 속성을 삭제한다. |
ALTER TABLE 테이블명 RENAME TO 새로운 테이블명 |
TABLE의 이름을 변경한다. |
ALTER TABLE 테이블명 RENAME COLUMN 기존 칼럼명 TO 새로운 칼럼명 |
TABLE의 속성명을 변경한다. |
ALTER TABLE의 기본적인 사용법과 예시이다.
ALTER TABLE TEST RENAME TO EMP;
TEST 테이블 명을 EMP 테이블 명으로 변경한다.
ALTER TABLE EMP ADD BIRTHDAY DATE;
EMP 테이블에 DATE타입을 가진 BIRTHDAY라는 속성명을 추가한다.
DROP TABLE
DROP TABLE 테이블명 [CASCADE OR RESTRICTED];
DROP TABLE 테이블명.
테이블을 삭제한다.
DROP TABLE 속성 |
내용 |
CASCADE |
제거할 요소를 참조하는 다른 모든 개체를 함께 제거 |
RESTRICTED |
다른 개체가 제거할 요소를 참조 중일 때는 제거를 취소 |
DROP TABLE의 속성명은 생략이 가능하며, 속성 부여에 따라서 FOREIGN KEY의 유무에 따라 결과가 달라질 수가 있다.
TRUNCNATE TABLE
DROP TABLE과 비슷하지만, TABLE 자체를 완전히 지우는 DROP과 다르게
TRUNCATE는 TABLE을 새로 만든 것처럼 내용만 삭제한다.
TRUNCNATE TABLE TEST;
DROP 테이블과 형식은 같다.
'Computer > DB' 카테고리의 다른 글
[Oracle] 프로시저를 통해서 Table 생성하기 (0) | 2020.09.20 |
---|---|
[ORACLE] DML 데이터 조작어 (0) | 2020.09.14 |
[ORACLE] PL/SQL 기초 이해 (0) | 2020.09.01 |
[Oracle] 오라클 Developer 설치하기 (0) | 2020.04.24 |
[Color Scripter] 칼라 스크립터를 소개합니다. (0) | 2020.04.23 |