제 2절 DDL

suyeon-jung·2021년 11월 11일
0

SQLD

목록 보기
2/19

1. 데이터 유형

  • CHAR(s) : 고정 길이 문자열 정보, s만큼 최대 길이를 갖고 고정 길이를 가지므로 할당된 변수 값이 s보다 작을 경우 그 차이 길이만큼 공백으로 채워짐
  • VARCHAR(s) : 가변 길이 문자열 정보, s만큼 최대 길이를 갖지만 가변 길이로 조정이 되기 때문에 할당도딘 변수 값의 바이트만 적용
  • NUMERIC : 정수/실수 등 숫자 정보
  • DATE : 날짜와 시각 정보

2. CREATE TABLE

CREATE TABLE 을 통해 테이블을 생성

  • 테이블명은 다른 테이블과 식별될 수 있도록 고유해야 함
  • 테이블 내 칼럼명은 중복될 수 없음
  • 각 칼럼은 콤마(,)로 구분되고 ;로 끝남
  • 칼럼 뒤에 데이터 유형이 지정되어야 함
  • 테이블명과 칼럼명은 반드시 문자로 시작해야 함(A-Z, a-z, 0-9, _, $, #), 대소문자 구분 없음
  • DATE 유형은 별도로 크기 지정 하지 않음
  • 칼럼에 대한 제약조건이 있으면 CONSTRAINT를 이용하여 추가 가능
CREATE TABLE [테이블명] ([칼럼명] [DATATYPE] DEFAULT [형식]...);
  • 제약 조건
  1. PRIMARY KEY : 기본키 정의
  2. UNIQUE KEY : 고유키 정의
  3. NOT NULL : NULL 입력 금지
  4. CHECK : 입력할 수 있는 값의 범위 제한, 논리식
  5. FOREIGN KEY : 외래키 정의

3. ALTER TABLE

ALTER TABLE을 통해 테이블 구조 변경

  • 칼럼 추가
ALTER TABLE [테이블명] ADD [추가 칼럼명] [데이터 유형];

주의: 새롭게 추가된 칼럼은 테이블의 마지막 칼럼이 되며 칼럼 위치를 지정할 수 없음

  • 칼럼 삭제
ALTER TABLE [테이블명] DROP [삭제 칼럼명];
  • 칼럼 수정
    칼럼의 데이터 유형, 디폴트값, NOT NULL 등 제약조건에 대한 변경 포함
ALTER TABLE [테이블명] MODIFY ([칼럼명] [데이터 유형] DEFAULT [디폴트값] NOTNULL);
  • 주의

    • 해당 칼럼의 크기를 늘릴 수는 있지만 줄이지는 못함
    • 해당 칼럼이 NULL값만 가지고 있거나 테이블에 아무 행도 없으면 칼럼의 폭을 줄일 수 있음
    • 해당 칼럼이 NULL값만을 가지고 있으면 데이터 유형을 변경할 수 있음
    • 해당 칼럼의 DEFAULT 값을 바꾸면 변경 작업 이후 발생하는 행 삽입에만 영향을 미침
    • 해당 칼럼에 NULL 값이 없을 경우에만 NOT NULL제약조건을 추가할 수 있음
  • 칼럼 이름 변경

ALTER TABLE [테이블명] RENAME COLUMN [변경해야 할 칼럼명] TO [새로운 칼럼명];
  • 제약조건 삭제
ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건명];
  • 제약조건 추가
ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건] (칼럼명);

4. RENAME TABLE

RENAME [변경전 테이블명] TO [변경후 테이블명];

테이블명 변경

5. DROP TABLE

DROP TABLE [테이블명] CASCADE CONSTRAINT;

테이블 삭제

  • CASCADE CONSTRAINT : 참조되는 제약조건에 대해서도 연쇄적으로 삭제

6. TRUNCATE TABLE

TRUNCATE TABLE [테이블명];

테이블 자체를 삭제하는 것이 아니라 해당 테이블에 있던 모든 행을 제거하고 저장공간을 재사용 가능하도록 해제하는 것

0개의 댓글