본문 바로가기
Programming/Database System

SQL (1) - 데이터베이스 객체와 DDL, DML

by kghworks 2022. 3. 23.

목표

  1. 데이터베이스 언어를 이해할 수 있다.
  2. 데이터베이스 정의 언어와 조작어를 이해한다.


목차

  • 데이터베이스 언어
  • 데이터베이스 객체와 스키마
  • DDL, 데이터베이스 객체
  • DML

데이터베이스 언어

https://kghworks.tistory.com/58 참조

 

 위와 같은 데이터베이스 환경에서 사용자는 뷰를 통해 데이터에 접근할 때 질의어를 사용하여 접근하게 됩니다. 이때 사용하는 언어를 SQL이라고 합니다. SQL은 관계 대수를 이용하여 RDBMS의 데이터 관리를 위해 설계된 언어로 현재는 RDBMS가 아닌 DBMS도 SQL을 이용할 정도로 보편화된 데이터베이스 언어입니다. 

 SQL은 비절차적 언어며, 인간의 언어체계와 유사하여 이해가 쉽고 명료한 특징을 가집니다.

 

SQL의 구성

 SQL은 크게 아래와 같이 구성됩니다.

 

  • DDL 
  • DML

 

DDL (데이터 정의 언어, Data Definition Language)

 데이터 베이스의 객체를 생성, 삭제, 조작하는 명령어입니다. CREATE, ALTER, DROP 등입니다.

 

DML (데이터 조작 언어, Data Manipulation Language)

 DDL에 의해 정의된 테이블의 데이터를 조작하는 명령어입니다. CRUD (CREATE, READ, UPDATE, DELETE) 명령을 수행합니다. INSERT, UPDATE, DELTE, SELECT 등이 속합니다.

 


DDL, 데이터베이스 객체

 데이터베이스의 객체는 목적에 따라 크게 2가지로 분류됩니다.

 

  • 데이터 저장 : 테이블, 인덱스, 뷰
  • 데이터 조작 : 트리거, 프로시저, 함수 등

이러한 데이터베이스의 객체들이 모여 하나의 집합을 이루면 그것이 스키마입니다.

 

DDL의 종류

 DDL은 데이터베이스 정의 언어입니다. 즉 위와 같은 데이터베이스 객체를 생성, 삭제 조작하는 명령어의 집합입니다.

 

  • CREATE : 객체 생성
  • ALTER : 객체 수정
  • DROP : 객체 삭제

 

 일반적으로 데이터베이스의 스키마는 수정이 불가능하고 수정하고 싶으면 스키마를 삭제하고 다시 만들어야 합니다. 그러므로 ALTER SCHEMA... 구문은 불가능합니다.

 

DDL 작성 방법

 

 

각 객체별로 DDL을 작성하는 문법은 구글링 하면 자세히 나오니 참고 바랍니다.

 

제약조건

 제약조건이란 테이블에 존재하는 데이터에 제약을 걸어 관리하기 하는 것을 말합니다. 제약조건을 정의한 후 DBMS는 테이블을 조작할 때 제약조건에 만족하는지 지속적으로 검사합니다.  제약조건의 종류에는 다음과 같은 것들이 있습니다.

 

  • NOT NULL : 컬럼이 NULL이 될 수 없음
  • UNIQUE : 테이블 내에서 동일한 값을 가질 수 없음
  • PRIMARY EKY (PK) : 기본키, UNIQUE and NOT NULL
  • FOREIGN KEY (FK) : 외래키, 다른 테이블 참조 컬럼

 

그 외에도 DMBS에 따라 AUTO_INCREMENT (Mysql)와 같은 제약조건이 있습니다.


DML

 DML은 DDL로 정의된 데이터베이스 객체인 테이블에 레코드를 삽입, 수정, 삭제, 검색하는 명령어로 종류는 아래와 같습니다.

 

  • INSERT : 테이블 객체에 레코드를 삽입
  • UPDATE : 테이블 레코드의 컬럼 값을 수정
  • DELETE : 테이블의 특정 레코드를 삭제
  • SELECT : 테이블의 레코드를 검색 (선택)

'Programming > Database System' 카테고리의 다른 글

정규화  (0) 2022.05.02
SQL (2) - 데이터 검색, SELECT  (0) 2022.04.04
관계형 모델  (0) 2022.03.22
[ORACLE] 시퀀스를 여러 테이블에서 공유하면 안될까  (0) 2022.03.03
모델링, ER 모델  (0) 2022.02.22

댓글