데이터 정의 언어(DDL) 소개

DDL은 Data Definition Language의 약자로, SQL(Structured Query Language)에서 데이터베이스 설계를 전반적으로 기술하기 위한 명령어 집합입니다. DDL의 주요 명령어는 다음과 같습니다.

  • CREATE: 새로운 객체를 생성하는 데 사용됩니다.
  • ALTER: 기존 객체의 구조를 변경하는 데 사용됩니다.
  • DROP: 객체를 삭제하는 데 사용됩니다.

MySQL에서 CREATE, ALTER, DROP 명령어 사용

a. CREATE

CREATE 명령어는 새로운 데이터베이스, 새로운 테이블 또는 새로운 를 생성하는 데 사용됩니다.

  • 예: CREATE DATABASE toko_buku;
  • 설명: 이 명령어는 toko_buku라는 이름의 새로운 데이터베이스를 생성하는 역할을 합니다.

b. ALTER

ALTER 명령어는 이미 생성된 테이블의 구조를 변경하는 데 사용됩니다. 이 작업은 열을 추가, 삭제, 변경하거나 테이블을 수정하고 열에 새로운 속성을 부여하는 데 사용할 수 있습니다.

  • 예: ALTER TABLE buku ADD judul_buku varchar(20);
  • 설명: 이 명령어는 buku 테이블에 최대 20자의 varchar 데이터 유형을 가지는 judul_buku라는 새로운 필드(열)를 추가하는 역할을 합니다.

c. DROP

DROP 명령어는 데이터베이스에서 객체를 영구적으로 삭제합니다. 객체는 데이터베이스 자체, 테이블, 함수인덱스프로시저트리거 또는 가 될 수 있습니다.

  • 예: DROP DATABASE toko_buku;
  • 설명: 이 명령어는 toko_buku라는 이름의 데이터베이스를 삭제하는 역할을 합니다.

MySQL의 데이터 유형

적절한 데이터 유형의 선택은 데이터베이스 저장 효율성에 매우 중요합니다. 다음은 MySQL의 데이터 유형 범주입니다.

A. 숫자 데이터 유형

숫자 데이터를 저장하는 데 사용됩니다.

  • TINYINT: 정수(양수/음수)를 저장합니다. 범위: -128 ~ 127. 크기: 1바이트 (8비트).
  • SMALLINT: 정수를 저장합니다. 범위: -32768 ~ 32767. 크기: 2바이트 (16비트).
  • MEDIUMINT: 정수를 저장합니다. 범위: -8388608 ~ 8388607. 크기: 3바이트 (24비트).
  • INT: 정수를 저장합니다. 범위: -2147483648 ~ 2147483647. 크기: 4바이트 (32비트).
  • BIGINT: 큰 범위의 정수를 저장합니다. 범위: -9223372036854775808 ~ 9223372036854775807. 크기: 8바이트 (64비트).
  • FLOAT: 단정도 부동 소수점 숫자를 저장합니다. 크기: 4바이트 (32비트).
  • DOUBLE / REAL: 배정도 부동 소수점 숫자를 저장합니다. 크기: 8바이트 (64비트).
  • DECIMAL / NUMERIC: 매우 높은 정밀도의 고정 소수점 숫자를 저장합니다. 크기: 8바이트 (64비트).

B. 문자열 데이터 유형 (텍스트)

문자 또는 텍스트 데이터를 저장하는 데 사용됩니다.

  • CHAR: 고정 길이 문자열 데이터를 저장합니다 (예: 상품 ID, 주민등록번호). 범위: 0 ~ 255자.
  • VARCHAR: 가변 길이 문자열 데이터를 저장합니다. 범위: 0 ~ 65,535자 (최신 버전).
  • TINYTEXT: 짧은 텍스트 데이터를 저장합니다. 범위: 0 ~ 255자.
  • TEXT: 표준 텍스트 데이터를 저장합니다. 범위: 0 ~ 65,535자.
  • MEDIUMTEXT: 중간 길이의 텍스트 데이터를 저장합니다. 범위: 0 ~ 16,777,215자.
  • LONGTEXT: 매우 긴 텍스트 데이터를 저장합니다. 범위: 0 ~ 4,294,967,295자.

C. 날짜 및 시간 데이터 유형

날짜와 시간 데이터를 저장하는 데 사용됩니다.

  • DATE: 날짜를 저장합니다 (형식: YYYY-MM-DD). 범위: ‘1000-01-01’ ~ ‘9999-12-31’. 크기: 3바이트.
  • TIME: 시간을 저장합니다 (형식: HH:MM:SS). 범위: ‘-838:59:59’ ~ ‘+838:59:59’. 크기: 3바이트.
  • DATETIME: 날짜와 시간의 조합을 저장합니다 (형식: YYYY-MM-DD HH:MM:SS). 범위: ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’. 크기: 8바이트.
  • YEAR: 연도를 저장합니다 (형식: YYYY). 범위: 1900 ~ 2155. 크기: 1바이트.

D. BLOB 데이터 유형 (바이너리)

BLOB은 Binary Large Object의 약자입니다. 순수 이진 데이터를 저장하는 데 사용되며, 대소문자를 구분하며 이미지, 문서, 오디오 등의 멀티미디어 파일에 이상적입니다.

  • BIT: 이진 데이터를 저장합니다. 범위: 64개의 이진 자릿수.
  • TINYBLOB: 최대 크기 255바이트.
  • BLOB: 최대 크기 65,535바이트.
  • MEDIUMBLOB: 최대 크기 16,777,215바이트.
  • LONGBLOB: 최대 크기 4,294,967,295바이트.

SQL의 키 유형

SQL에서 키는 테이블의 데이터 행을 고유하게 구분하거나 한 테이블을 다른 테이블과 연결(관계)하기 위해 사용되는 하나 이상의 속성(열) 조합입니다.

  • 슈퍼 키: 테이블의 각 데이터 행을 고유하게 식별하는 데 사용할 수 있는 속성 집합입니다.
  • 후보 키: 중복 속성이 없는 최소 슈퍼 키입니다. 후보 키는 고유한 값을 식별할 수 있는 가장 작은 필드 조합에서 선택됩니다.
  • 기본 키: 레코드의 주요 식별자로 선택된 후보 키입니다. 기본 키의 데이터는 비워둘 수 없고 (Not Null중복될 수 없습니다. 각 테이블은 하나의 기본 키만 가질 수 있습니다.
  • 대체 키: 기본 키로 선택되지 않은 후보 키입니다.
  • 외래 키: 한 테이블을 다른 테이블과 연결하여 부모-자식 관계를 형성하는 데 사용되는 키입니다. 부모 테이블의 기본 키는 관련(자식) 테이블의 외래 키에 의해 참조됩니다.
  • 복합 키: 엔터티를 고유하게 식별하기 위해 두 개 이상의 속성으로 구성된 키입니다. 일반적으로 기본 키 요건을 충족하는 단일 열이 없을 때 사용됩니다.

MySQL의 제약 조건 유형

제약 조건은 데이터 무결성과 유효성을 유지하기 위해 열이나 테이블에 적용되는 제한 규칙입니다.

  • NOT NULL: 레코드 삽입 시 열을 비워둘 수 없도록 보장합니다. 해당 열은 반드시 데이터로 채워져야 합니다.
  • UNIQUE: 열 내의 모든 값이 서로 다르도록 보장합니다 (레코드 중복 없음).
  • PRIMARY KEY: NOT NULL과 UNIQUE 제약 조건의 조합입니다. 테이블의 각 행을 고유하게 식별합니다. 테이블당 하나의 PRIMARY KEY만 허용됩니다.
  • FOREIGN KEY: 테이블 간의 참조 무결성을 유지합니다. 자식 열의 값이 부모 열(다른 테이블)에 유효한 참조를 가지고 있음을 보장합니다.
  • CHECK: 데이터가 데이터베이스에 저장되기 전에 유효성 검사 또는 확인을 수행합니다. 데이터는 boolean 값으로 평가되며, 조건을 충족하면 true가 되어 저장되지만, false이면 SQL이 거부하고 오류 메시지를 표시합니다.

Shares:
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다