새소식

SQL

SQL | MySQL | 관계형 데이터베이스와 자료형

  • -

 

 

 

00. 관계형 데이터베이스(RDBMS, Relational Database)

 

· 특징

    - 파일보다 빠르게 데이터에 접근할 수 있음

    - 특정 패턴에 맞춰 데이터를 쉽게 추출 가능

    - 여러 사용자의 동시 접근이 가능

    - 데이터에 임의의 순서로 접근 가능

    - 자체적으로 권한 시스템을 가지고 있음

 

· 종류

 

    - Oracle 

      : 오라클에서 개발, 가장 많이 사용하는 RDBMS

      : 중앙 집중 방식, Administration Monitoring 가능 

      : Multiple Database 튜닝 가능 / 다른 Admin User들과 공유 가능

      : 다양한 핸들링 지원, 자원의 확장성과 장애에 대한 대처가 유연 

 

    - MySQL

      : MySQL은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원

      : C언어, C++, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공

      : 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용 가능, 히 PHP와 함께 웹 개발에 자주 사용 

      : 널리 알려진 표준 SQL 형식을 사용 

 

    - MariaDB

      : 오픈소스 관계형 데이터 베이스로 MySQL과 동일한 소스코드를 기반으로 함

      : 기존의 MySQL 엔터프라이즈에서 플러그인으로 제공한 쓰레드풀 기능 내장

 

    - PostgreSQL

     : 오픈소스 관계형 데이터 베이스로 현재 많은 기업에서 사용하는 RDBMS

     : 인덱스에 특화된 Partial Index, Parallel Index Scan을 지원

     : 읽기가 많은 간단한 작업의 경우 PostgreSQL은 일반적으로 MySQL과 같은 다른 RDBMS보다 성능이 떨어짐 

 

    - MS SQL Server 

     : MS 제품군이기 때문에 Window server에서만 구동이 되고 C#과는 가장 높은 호환성 

 

    - MS Access

    - SQLite

 

 

SQLD 시험 준비했을 때는 Mysql 사용하고 , 인턴 당시엔 PostgreSQL, 통계청에서는 Oracle을 사용했는 데,

기본적인 틀은 다 같고, 함수나 자료형에서 약간의 차이만 있는 것 같다.

 


 

01. DATABASE의 개념 

 

데이터베이스란? 한마디로 데이터를 유기적으로 결합하여 저장한 집합체라고 보면 된다.

 

 

· 데이터베이스의 구성 

 

    · 테이블(Table) : 데이터들로 이루어진 표

    · 열(column), 필드(field) : 특정한 종류의 데이터를 위하여 사용되는 지정된 영역

    · 행(row), 레코드(record) : 정보 처리를 위하여 하나의 단위로 취급되는 관련 데이터의 모임

    · 값(value): 행과 열에 대응되는 자료 

    · 키(key), 기본 키(primary key) : 테이블에서 유일한 식별의 기준이 되는 열 

 

    · 스키마(schema) : 데이터베이스에서 테이블 디자인

 

출처:https://code.google.com/archive/p/onlinearchaeologicaldatabase/downloads

 

·SQL

 

   - SQL(Structured Query Language): 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해

     설계된 특수 목적의 프로그래밍 언어

   - 다수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택

 

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

       : create(테이블 생성), alter(테이블 수정), drop(테이블 삭제), truncate(테이블 초기화)

 

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

      : Insert(데이터 삽입), Update(데이터 수정), Delete(데이터 삭제)

 

  ˇ 데이터 제어 언어 : DCL(Data Control Language)

      : Grant(데이터 권한 부여), Revoke(데이터 권한 회수)

 

  ˇ 트랜잭션 제어 언어 : TCL(Transaction Control Language)

      : Commit(수정 작업 저장), Rollback(수정한 작업취소), Savepoint(특정 지점으로 되돌리기)

 

 

 

 


 

 

02. 자료형 (Data Types) 

 

참고 페이지 

https://dev.mysql.com/doc/refman/8.0/en/preface.html

 

MySQL :: MySQL 8.0 Reference Manual :: Preface and Legal Notices

Preface and Legal Notices This is the Reference Manual for the MySQL Database System, version 8.0, through release 8.0.32. Differences between minor versions of MySQL 8.0 are noted in the present text with reference to release numbers (8.0.x). For license

dev.mysql.com

 

1) 숫자 자료형 

 

· 정수(Integer Types)

 

자료형 Storage(바이트) SIGNED UNSIGNED
TINYINT 1 -128 ~ 127 0 ~ 255
SMALLINT 2 -32,768 ~ 32,767 0 ~ 65,535
MEDIUMINT 3 -8,388,608 ~ 8,388,607 0 ~ 16,777,215
INT, INTEGER 4 -2,147,483,648 ~ 2,147,483,647 0 ~ 4,294,967,295
BIGINT 5 -2^63 ~ 2^63 - 1 0 ~ 2^64 - 1

 

· 실수형(Floating-Point Types)

 

자료형 Storage(바이트) 범위  비고
DECIMAL(s, d)   s 최대 65 고정 소수점(좁은 범위 수, 정확한 값)
실수 부분 총 자릿수(s) , 소수 부분 자릿수(d) 
FLOAT 4 -3.402...E+38 ~ -1.175...E-38 , 0 , 1.175...E-38 ~ 3.402...E+38 부동 소수점(넓은 범위 수)
DOUBLE 8 -1.797...E+308 ~ -2.225E-308 , 0 , 2.225...E-308 ~ 1.797...E+308 부동 소수점(넓은 범위 수)

 

 

 

2) 문자 자료형 

 

· 문자형 :  CHAR, VARCHAR

    - 검색시 CHAR가 더 빠르고, VARCHAR 컬럼 길이 값이 4글자보다 적을 경우 CHAR로 자동 변환

 

자료형 설명 차지하는 바이트 최대 바이트 
CHAR(s) 고정 사이즈
(남는 글차 스페이스로 채움)
s(고정값) 255
VARCHAR(s) 가변 사이즈  실제 글자 수[최대 s] + 1 [글자수 정보] 65,535

 

· 텍스트

 

자료형 최대 바이트 크기
TINYTEXT 255
TEXT 65,535
MEDIUMTEXT 16,777,215
LONGTEXT 4,294,967,295 or 4GB

 

3) 시간 자료형 

 

자료형 설명 비고
DATE YYYY-MM-DD  
TIME HHH:MI:SS HHH: -838 ~ 838까지의 시간 
DATETIME YYYY-MM-DD HH:MI:SS 입력된 시간을 그 값 자체로 저장
TIMESTAMP YYYY-MM-DD HH:MI:SS MySQL이 설치된 컴퓨터의 시간대를 기준으로 저장,
시간 자동기록, 국제적인 서비스를 할 경우 사용 

 

 

 


참고 문헌(reference)

 

Contents