본문 바로가기
데이터/Database

[데이터베이스] 데이터베이스, SQL에 대한 개괄적인 내용 정리

by dwoi 2023. 4. 19.

빅데이터를 어떻게 처리하는 지에 대해 알아보고 단계별로 어떤 기술이 적용되는지에 대해 공부한 내용을 정리

 

목차

     


    데이터베이스(Database)


    1. 데이터베이스와 DBMS

    DB : 여러 숫자 데이터의 집합체이고 특정 데이터를 확인하고 싶을 때 쉽게 찾을 수 있도록 정리된 형태

    DBMS(Database management system) : 데이터들을 관리하는 시스템을 제공하는 소프트웨어

    1.1. DBMS 사용목적

      1. 생산성
        • 시스템 개발과정에서 데이터 검색, 추가, 삭제, 갱신 등의 업무는 빈번함
        • 이러한 기능을 DBMS가 제공함으로써 생산성 향상에 기
      2. 기능성
        • 데이터베이스를 다루는 많은 기능을 제공
        • 복수 사용자의 대응하거나 대용량의 데이터를 저장하고 고속으로 검색
        • Multi User Multi Tasking
        • 기능 확장을 위한 다양한 Interface 제
      3. 신뢰성
        • 대규모 데이터를 안전하게 처리하기 위한 멀티 노드를 이용한 확장성(Scalbaility)과 부하분산(Load Balancing)
        • 이러한 DBMS의 구성을 Clustering 또는 Scale Out이라 부름
        • DBMS는 Import/Export 기능을 이용하여 데이터베이스를 활용하거나 백

     

    1.2. SQL

    • 사용자와 DBMS간의 대화에 필요한 언어가 SQL
    • SQL은 RDBMS에서 사용

    SQL을 통해 데이터 조작, 데이터 정의, 데이터 제어 등이 가능함.

    ◆DML

    • Data Manipulation Language
    • 데이터베이스에 데이터를 추가 또는 삭제하거나 내용을 갱신하는 등 데이터를 조작할 때 사용
    • 기본

    ◆ DDL

    • Data Definition Language
    • 스키마, 테이블, 뷰 등의 "데이터베이스 객체(Object)"를 만들거나 삭제하는 명령어

    ◆ DCL

    • Data Control Language
    • Transcaction을 제어하는 명령과 데이터베이스 객체의 접근권한 등을 제어하는 명령어 

     

    1.3. 데이터베이스 종류

    • RDB가 가장 많이 사용
      • 계층형 데이터 베이스 : 계층구조의 저장방식의 데이터베이스
      • 관계형 데이터 베이스 : 2차원 구조의 테이블 구조
      • 객체 지향 데이터 베이스 : 객체를 처리하기 위하여 개발된 데이터베이스
      • XML 데이터베이스 : XML의 마크업 문서를 저장하고 조회하기 위하여 개발, XQuery 사용
      • key-value 스토어 : key_Value 구조의 NoSQL을 지하는 데이터베이스

     

    1.4. 데이터베이스 서버

    • RDBMS는 다수의 클라이언트를 지원하기 위하여 Client/Server 구조의 아키텍처
    • 클라이언트가 SQL을 이용하여 서버에 데이터를 요청
    • 서버는 SQL을 처리하여 클라이언트에 결과를 반환

      RDBMS는 사용자별 접근을 인증으로 통제

    ID와 Password 필요◆ 3 Tier 구조

     


    2. SQL를 이용한 테이블 검색

    2.1. Hello World

    ◆ select * from 테이블명; 실행

    특정 테이블을 선택해서 보여줌.

    세미콜론 주의

    2.1.1. Select  명령 구문

    •  select는 DML에 속하는 명령으로 SQL에서 가장 많이 활용
    • 이 명령어를 통하여 데이터베이스에서 데이터를 읽어옴
    •  select 명령은 ‘질의’ 또는 ‘쿼리’라고 불리기도 함

     

    2.1.2. 예약어와 데이터베이스 객체명

    예약어 : select * from :

    객체 : 테이블 뷰 등 다양하게 존재

     

    • 조회하고자 하는 테이블이 존재하지 않을 경우 에러 발생
    • 예약어는 데이터베이스 객체명으로 사용할 수 없음
    • 예약어 및 데이터베이스 객체명은 대소문자를 구분하지 않음

    2.1.2. 테이블

    • select 명령을 실행하여 성공하면 표 형식의 데이터가 출력
    • 표 형식의 데이터는 행(레코드)과 열(컬럼/필드)로 구성
    • 행은 모두 동일 형태로 되어 있고 열이 옆으로 나열
    • 열마다 컬럼명이 지정되고 동일한 자료형으로 구성
    • 각각의 행과 열이 만나는 부분은 셀이라 하고 셀은 하나의 데이터 값을 출력

     

    2.1.3. 값이 없는 데이터 = null

    아무것도 저장되지 않은 상태를 의미

     

    2.2. desc 명령

    • 테이블의 구조를 확인하는 명령어
    mysql > desc sample21;

    2.2.1. 자료형

    • 테이븛은 하나 이상의 컬럼으로 구성되면 desc 명령어로 그 구조를 참조
    • 테이블의 각 컬럼은 동일한 자료형 사용

    • 정수형 (int)
    • 실수형 (float)
    • char형 : 고정 길이 문자형
      • char(12)
      • 12개의 고정길이를 갖는다는 뜻
      • 고정 길이 이상의 문자는 저장이 되지 않고, 길이가 짧은 문자는 공백문자를 채운 후 저장
    • varchar형 : 가변 길이 문자형
      • varchar(30)
      • 30개의 최대 저장 길이를 지정하는 것 char형과 같지만 데이터 크기에 따라 저장공간 크기가 변경
    • date 형 :  날짜의 데이터 형
      • 0000-00-00 ~ 9999-12-31
    • time 형 ; 시간의 데이터 형
      • 12:09:10
    •  datetime 형 :  날짜와 시간의 데이터 형
      • ’2019-12-25 12:09:10’
      • year, timestamp

     

    2.3. 검색 조건 지정하기

    select 컬럼 from 테이블명 where 조건식;
    • * 또는 컬럼명을 지정할 수 있음
    • 테이블의 컬럼에 정의된 순서와 동일하지 않아도 됨.

    2.3.1. Where 구

    • where 구를 통해 필요한 레코드만 선택해서 지정할 수 있음
    • where 뒤에는 조건을 표시
    • 생략 시 전제 지정
    • 컬럼 연산자 상수로 구성되고 조건이 참인 레코드만 선택

    • 문자형과 날짜형의 자료는 싱글 쿼테이션(‘ ‘)으로 상수 지정
    •  년월일은 하이픈(-)으로 시간은 콜론(:)으로 구분
    • 자료형에 맞게 표시된 상수값을 리터럴(literal)이라 하고, 문자열 리터럴은 싱글 쿼데이션으로 표시

     ◆ Null 값 검색

    'is null' 또는 'is not null'로 비교

     

    ◆ 비교 연산자

    •   : 좌변과 우변의 값이 같을 경우 참
    • <>  : 좌변과 우변의 값이 다를 경우 참
    • >  : 좌변이 우변의 값보다 큰 경우 참
    • >=  : 좌변이 우변의 값보다 같거나 클 경우 참
    •  <  : 좌변이 우변보다 작은 경우 참
    •  <=  : 좌변이 우변보다 같거나 작을 경우 참

     

    ◆ 논리 연산자

    And

    Or

    Not

     

     패턴 매칭

    • like : 문자형 데이터에 대하여 패턴 매칭
    • 메타 문자 사용
    • % : 임의 문자열
    • _ : 임의 문자 하나

    ※ 검색 대상에 % 있는 경우 이스케이프 문자를 사용

     


    마무리

    테이블을 SQL을 통해 read하는 방법에 대해 익힘.


     

     

    댓글