코딩항해기

[DBMS/Oracle] 테이블 쿼리문 (DDL) 기초 본문

DBMS/Oracle

[DBMS/Oracle] 테이블 쿼리문 (DDL) 기초

miniBcake 2024. 6. 16. 22:34
 

[요약]

테이블 생성 CREATE TABLE 테이블명(
  컬럼명 자료형
, 컬럼명 자료형
, 컬럼명 자료형 );
테이블 조회 SELECT * FROM 테이블명;
테이블 삭제 DROP TABLE 테이블명;
테이블 삭제(연결값을 삭제 후 삭제) DROP TABLE 테이블명 CASCADE CONSTRAINTS;

 

[제약조건]

Primary Key(PK) 고유한 값으로 각 행의 구분점
중복값X / null X
Foreign Key(FK) 다른 테이블의 PK를 사용
테이블끼리 관계를 맺을 때 사용
중복값O / null O
Unique Key(UK) 중복값X / null O

 

[테이블 수정]

제약조건 추가 ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건(제약조건넣을컬럼명);
제약조건 삭제 ALTER TABLE 테이블명
DROP CONSTRAINT 삭제할제약조건명;
컬럼 추가 ALTER TABLE 테이블명
ADD (추가할컬럼명 자료형);
컬럼명 수정 ALTER TABLE 테이블명
RENAME COLUMN 컬럼명 TO 새컬럼명;
컬럼 자료형 수정 ALTER TABLE 테이블명
MODIFY (컬럼명 변경할자료형);
컬럼 삭제 ALTER TABLE 테이블명
DROP COLUMN 삭제할컬럼명;

DDL이란?

Data Manipulation Language

데이터 정의어 · 테이블이나 컬럼 등을 생성, 수정, 삭제한다

데이터베이스의 전체 골격을 구성하는 역할

 

CREATE(생성), ALTER(수정), DROP(삭제), TRUNCATE(초기화), RENAME(이름변경)

 

총 5가지의 종류가 있다.

 

 

CREATE : 생성

CREATE TABLE 테이블명(
  컬럼명 자료형 
, 컬럼명 자료형
, 컬럼명 자료형
);

 

조건이 없는 테이블 생성의 경우 상단처럼 진행하면 된다. 

 

만일 제약조건 등의 조건이 필요한 경우 해당 되는 컬럼의 뒷부분이나 아래에 모아서 조건을 주게 된다.

CREATE TABLE 테이블명(
  컬럼명 자료형 NOT NULL 
, 컬럼명 자료형 CHECK (조건문)
, 컬럼명 자료형 UNIQUE
, [CONSTRAINT PK명] PRIMARY KEY(컬럼명)
);

 

대괄호 안의 부분은 명칭을 주는 부분이라 생략이 가능하며

컬럼 바로 옆에 제약조건이 붙을 때에는 컬럼명을 명시할 필요가 없지만,

하단에 모아서 줄 때에는 반드시 어느 컬럼에 제약조건을 주는지를 명시해야한다.

 

이 부분은 DDL 제약조건을 정리할 때 자세히 정리하도록 하겠다.

 

 

테이블 이름 생성 규칙
1. 테이블 이름은 문자로 시작해야한다. (한글도 가능하지만 숫자로 시작할 수 없다.)
2. 테이블 이름은 30byte이하여야한다.
3. 같은 사용자 소유의 테이블 이름은 중복될 수 없다.
4. 테이블 이름은 영문자(한글), 숫자, 특수문자($, #, _)를 사용할 수 있다.
5. SQL 키워드는 테이블 이름으로 사용할 수 없다.

열(컬럼) 이름 생성 규칙
1. 열 이름은 문자로 시작해야한다.
2. 열 이름은 30byte 이하여야한다.
3. 한 테이블 내의 열 이름은 중복될 수 없다.
4. 열 이름은 영문자(한글), 숫자, 특수문자($, #, _)를 사용할 수 있다.
5. SQL 키워드는 열 이름으로 사용할 수 없다.

 

DROP : 삭제

DROP TABLE 테이블명;

 

 

삭제는 매우 간단하다. 상단의 쿼리를 작성해 실행시켜주기만 하면 되는데,
해당 테이블의 값을 FK(FOREIGN KEY)로 받는 테이블이 있을 경우 실행되지 않는다.

 

왜냐하면 FK값을 받아올 때 없는 값이 들어갈 수 없기 때문이다.

(NULL이 아니라 실존하지 않는 값을 이야기하는 것)


이럴 때에는 연결된 데이터의 값을 삭제하며 테이블을 삭제하는 명령어를 사용할 수 있다.
DROP TABLE 테이블명 CASCADE CONSTRAINTS;

 


제약조건 추가, 삭제

제약조건은 테이블 생성 후에도 추가하거나 삭제할 수 있다.

 

먼저 삭제의 경우는,

ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건(제약조건 넣을 컬럼명);

 

수정의 경우는,

ALTER TABLE 테이블명
DROP CONSTRAINT 삭제할제약조건명;

 

 


컬럼 추가, 이름 수정, 자료형 수정, 삭제

컬럼의 경우 생성할 때 보면 이름과 자료형을 반드시 지정해 주어야한다. 

따라서 추가할 때에도 컬럼명과 자료형 모두 작성해주어야한다.

 

컬럼 추가의 경우,

ALTER TABLE 테이블명
ADD (추가할 컬럼명 자료형);

 

컬럼에는 이름과 자료형 두 가지가 있으므로, 수정할 때에도 각각 수정할 수 있다.

 

먼저 컬럼명 수정의 경우,

ALTER TABLE 테이블명
RENAME COLUMN 컬럼명 TO 새컬럼명;

 

컬럼 자료형 수정의 경우,

ALTER TABLE 테이블명
MODIFY (컬럼명 변경할자료형);

 

컬럼 추가, 수정 할 때에는 이름과 자료형을 구분하여 추가하고 수정하여주었지만 삭제할 때에는 구분지을 필요가 없다.

 

컬럼 삭제의 경우,

ALTER TABLE 테이블명
DROP COLUMN 삭제할 컬럼명;

 

 

그 외에도 테이블에 관련된 다양한 명령어가 있지만 기초 부분에서는 여기까지 정리!

'DBMS > Oracle' 카테고리의 다른 글

[DBMS/Oracle] 식별자  (0) 2024.07.08
[DBMS/Oracle] 시퀀스 SEQUENCE  (0) 2024.07.07
[DBMS/Oracle] 무결성  (0) 2024.06.24
[DBMS/Oracle] 시퀀스, 집계함수(GROUP BY, HAVING)  (0) 2024.06.21
[DBMS/Oracle] 데이터 쿼리문 (DML) 기초  (0) 2024.06.15