데이터베이스 객체

데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말.

 

- 스키마

데이터베이스 객체는 스키마라는 그릇 안에 만들어진다.

객체의 이름이 같아도 스키마가 서로 다르면 이름이 중복되어도 상관없다.

 

MySQL에서는 CREATE DATABASE 명령으로 작성한 데이터베이스가 스키마가 되고

Oracle 등에서는 데이터베이스와 데이터베이스 사용자가 계층적 스키마가 된다.

 

테이블 안에는 열을 정의할 수 있고 스키마 안에는 테이블을 정의할 수 있다.

각각의 그릇 안에서는 중복되지 않도록 이름을 지정한다.

이름이 충돌하지 않도록 기능하는 그릇을 네임스페이스(namespace)라고 부르기도 한다.

(스키마나 테이블은 네임스페이스이기도 하다)

 

테이블 작성, 삭제, 변경

SYNTAX)

CREATE TABLE 테이블명 (열 정의1, 열 정의2, ...)
DROP TABLE 테이블명
ALTER TABLE 테이블명 하부명령

 

SELECT, INSERT, DELETE, UPDATE는 SQL명령중에서도 DML(데이터 조작 명령)로 분류된다.

 

DDL은 데이터를 정의하는 명령으로, 스키마 내의 객체를 관리할 때 사용된다.

 

1. 테이블 작성

 

CREATE TABLE 테이블명 (
	열 정의1,
    열 정의2,
    ...
)

자료형은 INTEGER나 VARCHAR 등을 지정한다.

특히 CHAR나 VARCHAR와 같은 문자열형으로 지정할 때는 최대길이를 괄호로 묶어줘야 한다.

 

기본값을 설정할 때는 DEFAULT로 지정하되 자료형에 맞는 리터럴로 기술한다. 기본값은 생략할 수 있다.

 

마지막으로 열이 NULL을 허용할 것인지를 지정한다.

NULL을 명시적으로 지정하거나 생략했을 경우는 NULL을 허용하고 NOT NULL을 지정하면 NULL을 허용하지 않는다.

 

 

2. 테이블 삭제

DROP TABLE 테이블명

테이블을 삭제한다.

 

 

TRUNCATE TABLE 명령을 사용하면 테이블 정의는 그대로 둔 채 데이터만 전부 삭제할 수 있다.

TRUNCATE TABLE 테이블명

 

3. 테이블 변경

ALTER TABLE 테이블명 변경명령

ALTER TABLE로 할 수 있는 일은 크게 두 가지로 분류할 수 있다.

1) 열 추가, 삭제, 변경

2) 제약 추가, 삭제

 

- 열 추가

ALTER TABLE 테이블명 ADD 열 정의

 

- 열 속성 변경

ALTER TABLE 테이블명 MODIFY 열 정의

 

- 열 이름 변경

 

ALTER TABLE로 열 이름을 변경할 때는 CHANGE 하부명령을 사용한다.

ALTER TABLE 테이블명 CHANGE [기존 열 이름][신규 열 정의]

 

- 열 삭제

 

ALTER TABLE로 열을 삭제할 때는 DROP 하부명령을 사용한다.

ALTER TABLE 테이블명 DROP 열명

 

4. ALTER TABLE로 테이블 관리

실제 업무에서 자주 사용하는 ALTER TABLE을 이용한 테이블 관리 example

 

- 최대길이 연장

ex)

ALTER TABLE sample MODIFY col VARCHAR(30);

 

- 열 추가

ex)

ALTER TABLE sample ADD new_col INTEGER

+ Recent posts