Programming/SQL
[SQL] DDL (테이블 생성, 변경, 삭제)
앵도라지
2023. 2. 4. 20:23
데이터베이스의 데이터를 조회하고, 수정하거나 삭제하려면, 그 이전에 테이블이 존재해야 한다.
DDL은 (Data Definition Language) 관계형 데이터베이스의 구조를 정의하는 언어다.
(DDL, DML, DCL, TCL에 대한 설명은 앞 게시물을 확인하면 된다)
https://cherish22.tistory.com/47
테이블의 생성, 변경, 삭제 과정에 대해 알아보자.
한 장 요약은 아래와 같다.
1. 테이블 생성 (CREATE)
1) 기본적인 테이블 생성
- 테이블을 생성하는 방법에는 여러가지가 있는데, 아주 간단하게 테이블을 생성하는 방법은 아래와 같다.
- 생성되는 테이블 명을 입력한다. (영문자로 시작)
- 생성될 테이블의 칼럼 명과 데이터 타입을 지정한다.
- 이 중 하나의 칼럼을 기본키로 지정할 수 있다.
Create Table Test
( #소괄호로 시작한다.
name varchar2(20) primary key,
age number(10),
발매일 date
); #세미콜론으로 끝난다.
이 때, 데이터 타입은 number, varchar2, char, date 등이 있다.
varchar2는 가변길이 문자열로 지정할 때, char는 고정된 크기의 문자로 지정할 때, date는 날짜형으로 지정할 때 사용한다.
2) 제약조건을 사용한 테이블 생성 (constraint)
- 기본키, 외래키, 기본값, not null 등은 테이블을 생성할 때 지정할 수 있다.
- constraint : 외래키, 기본키와 기본키의 이름을 지정할 수 있다.
- 기본키는 1개 이상 지정 가능하다.
- 외래키를 지정하기 위해서는 마스터 테이블이 생성되어 있어야 한다.
- number(10, 2) : 소수점 둘째자리 까지 저장된다는 의미다.
- sysdate : 오늘 날짜를 조회할 수 있다.
3) CASCADE를 사용한 테이블 생성
- CASCADE 옵션은 참조 관계 (기본키와 외래키 관계)가 있을 경우 참조되는 데이터를 자동으로 반영할 수 있다.
- ON DELETE CASCADE 옵션은 자신이 참조하고 있는 테이블 (DEPT)의 데이터가 삭제되면 자동으로 자신도 삭제된다.
- CASCADE 사용시 참조 무결성을 준수할 수 있다.
Create Table EMP (
empno number(10),
ename varchar2(20),
sal number(10, 2) default 0,
deptno varchar2(4) not null,
createdate date default sysdate,
constraint e_pk primary key(empno),
constraint d_fk foreign key(deptno)
references dept(deptno)
ON DELETE CASCADE
);
INSERT INTO EMP VALUES(100, '가나다라', 1000, '1000', sysdate);
2. 테이블 변경
- ALTER TABLE문을 통해 테이블 변경을 할 수 있으며, 테이블명 변경, 칼럼 추가, 변경, 삭제 등을 할 수 있다.
1) 테이블명 변경
- ALTER TABLE ~ RENAME TO문을 사용하면 된다.
ALTER TABLE TEST
RENAME TO NEW_TEST;
2) 칼럼 추가
- ALTER TABLE ~ ADD 문을 통해 칼럼을 추가한다.
ALTER TABLE TEST
ADD (age number(2) default 1);
3) 칼럼 변경
- ALTER TABLE ~ MODIFY문을 사용하면 칼럼을 변경할 수 있다.
- 데이터 타입이나 데이터 길이를 변경할 수 있다.
- 칼럼 변경 시 제약 조건 설정도 가능하다.
- 칼럼의 데이터 타입을 변경하 ㄹ때 기존 데이터가 있는 경우 에러가 발생한다.
ALTER TABLE TEST
MODIFY (ename varchar2(20) not null);
4) 칼럼 삭제
- ALTER TABLE ~ DROP COLUMN문으로 삭제한다.
ALTER TABLE NEW
DROP COLUMN age;
5) 칼럼명 변경
- ALTER TABLE ~ RENAME COLUMN ~ TO 문으로 변경할 수 있다.
ALTER TABLE TEST
RENAME COLUMN ename to new_name;
3. 테이블 삭제
- DROP TABLE 문을 사용해서 삭제할 수 있다.
- DROP TABLE은 테이블의 구조와 데이터를 모두 삭제한다.
DROP TABLE TEST;
- DROP TABLE 에서 “CASCADE CONSTRAINT” 옵션을 사용할 수 있다.
- “CASCADE CONSTRAINT” 옵션은 해당 테이블의 데이터를 외래키로 참조한 슬레이브 테이블과 관련된 제약사항도 삭제할 때 사용된다.
다음은 DML에 대해 알아보자
2023.02.05 - [Programming/SQL] - [SQL] DML (데이터 삽입, 삭제, 수정, 선택)
[SQL] DML (데이터 삽입, 삭제, 수정, 선택)
이제, 본격적으로 데이터를 삽입하고 삭제, 수정, 선택하는 방법에 대해서 알아보자. 앞서 정리한 내용을 참고하면 이해가 쉽다. [Programming/SQL] - [SQL] SQL의 종류와 정의 [SQL] SQL의 종류와 정의 일
cherish22.tistory.com