한 눈에 끝내는 SQL
    • 01
      시작하기에 앞서
    • 강의의 방향
      프로그래밍이란?
      SQL이란?
      실습 환경 구축: 구름IDE
      SQL 맛보기
    • 02
      데이터베이스에 대하여
    • 학습 목표
      데이터와 DBMS
      데이터 모델
      관계 데이터 모델
      데이터 타입
      정리
    • 03
      DDL과 친해지기
    • 학습 목표
      CREATE
      ALTER
      DROP
      TRUNCATE
      정리
    • 04
      키와 제약 조건
    • 학습 목표
      키(Key)란?
      키의 종류
      제약 조건이란?
      제약 조건 설정_1. CREATE문
      제약 조건 설정_2. ALTER문
      외래키와 참조 무결성
      ON 키워드
      제약조건 제거하기
      정리
    • 05
      DML과 친해지기
    • 학습 목표
      샘플 데이터베이스
      SELECT_1. SELECT의 기본
      SELECT_2. 별칭과 정렬
      SELECT_3. 결과 개수 제한, 필터링
      SELECT_4. WHERE 절과 주요 연산자
      SELECT_5. 알아두면 좋은 연산자
      정리
    • 06
      DML과 더 친해지기
    • 학습 목표
      함수의 개념과 종류
      조건 함수_1
      조건 함수_2
      문자열, 산술 함수_1
      문자열, 산술 함수_2
      문자열, 산술 함수_3
      문자열, 산술 함수_4
      날짜 함수
      정리
    • 07
      DML과 더 많이 친해지기
    • 학습 목표
      집계 함수_1
      집계 함수_2
      그룹핑
      UNION
      서브쿼리
      중첩된 서브쿼리
      JOIN_1
      JOIN_2
      정리
    • 08
      DML과 절친되기
    • 학습 목표
      INSERT_1
      INSERT_2
      UPDATE
      DELETE
      이상(Anomaly)
      데이터베이스 정규화
      정리
    • 09
      DCL과 친해지기
    • 학습 목표
      사용자 관리
      사용자 권한
      정리
    • 10
      SQL 응용으로 레벨 업!
    • 학습 목표
      복제 테이블 돌리
      우리나라 인구는 총 몇 명일까_1. 도시 정보 추출
      우리나라 인구는 총 몇 명일까_2. 인구 정보 추출
      이번 달 영업왕을 찾아라!_1. 기초
      이번 달 영업왕을 찾아라!_2. 심화
      GROUP_CONCAT
      정리
    • 11
      사용자 정의 함수
    • 학습 목표
      구조와 사용
      변수
      조건 분기_1. IF
      조건 분기_2. CASE
      반복_1. WHILE과 루프 제어문
      반복_2. REPEAT & LOOP
      응용하기
      정리
    • 12
      뷰와 친해지기
    • 학습 목표
      뷰 특징, 생성
      뷰 수정 및 삭제
      뷰와 DCL
      정리
    • 13
      소울메이트: PHP와 MariaDB
    • 학습 목표
      MySQLi
      PDO
      익명 방명록 만들어보기
      정리
    • 14
      파이썬에 MariaDB 끼얹기
    • 학습 목표
      PyMySQL
      SQLAlchemy
      주소록 만들어보기
      정리
    • 15
      쿼리 최적화에 손가락 찍어보기
    • 학습 목표
      EXPLAIN
      인덱스 개요
      문장 최적화 기법
      커버링 인덱스
      정리
    • 16
      마치며...
    • 맺음말
    데이터와 DBMS
    02 데이터베이스에 대하여
    데이터와 DBMS

    데이터란 무엇일까요? 데이터는 실체를 나타내는 값들의 집합이라고 볼 수 있습니다. 아무런 가공 과정 없이 수집된 값이나 자료 자체를 데이터하고 부르며, 이렇게 수집된 데이터를 분석한 뒤 새로운 사실을 유추하여 내린 결론을 정보(information)라고 합니다. 또한, 데이터베이스는 Data + Base 단어 그대로 서로 관련된 데이터들을 효율적으로 관리하기 위해 구조화한 데이터 집합을 뜻합니다. 그렇다면 이 데이터베이스는 어떻게 관리해야 할까요?


    DBMS


    DBMS란 DataBase Management System의 줄임말로, 컴퓨터에 저장된 데이터베이스를 관리해주는 소프트웨어를 지칭합니다. 만약 데이터를 파일 단위로 직접 관리한다면 수십여 건 정도는 각자의 노하우를 기반으로 무리 없이 사용할 수 있습니다. 하지만, 데이터 수가 증가하여 관리해야 할 파일 또한 늘어나게 된다면 분명히 언젠가 한계에 부딪힐 것은 자명한 사실입니다. 때문에 DBMS를 활용하여 데이터를 데이터베이스로 정리하여 좀 더 효율적으로 데이터를 통제하고 관리하게 되었습니다.

    DBMS는 1960년대의 계층형 DB를 사용하는 HDBMS인 IMS가 최초로 출시된 이래, 네트워크형, 관계형, 객체형 등으로 진화를 거듭해오고 있습니다. 현재 출시된 DBMS의 종류는 매우 다양하며, 현재에는 관계형 DBMS (RDBMS)를 주로 사용 중에 있습니다. 대표적인 RDBMS에는 Oracle, MySQL(MariaDB), PostgreSQL, Microsoft SQL Server, IBM DB/2 등이 있으며, 각각의 RDBMS는 서로 다른 특징과 장단점을 가지고 있으며, 본 강좌 <바로 실행해보면서 배우는 SQL>에서는 MysQL(MariaDB)를 기준으로 설명하고자 합니다.


    MySQL과 MariaDB


    MySQL은 오라클에서 제공하고 있는 오픈소스 RDBMS입니다. Windows, Linux, Unix 등 다양한 운영체제에 설치하여 사용할 수 있으며, Community 버전만 무료로 제공되고 있습니다. 상업적으로 사용하려면 비용을 지불해야 하지만, 저렴한 가격과 범용성 등으로 다수의 기업에서 사랑받고 있는 DBMS입니다.

    MariaDB는 MySQL에서 파생된 오픈소스 RDBMS입니다. MySQL을 관리하던 기업 Sun을 오라클이 인수했지만, MySQL의 기능 개선 등이 제대로 이루어지지 않음에 반발하여, 기존의 MySQL 개발자들이 별도로 MariaDB 재단을 세워 관리하고 있습니다. 대부분의 기능이 MySQL과 호환되는 특징으로 인해 MySQL 대용으로 MariaDB를 사용하는 추세가 빠르게 증가하고 있습니다. 구름EDU에서 여러분이 실습하게 될 환경 역시 MariaDB를 기준으로 합니다. '한 눈에 끝내는 SQL'에서 다루는 수준에서는 MariaDB의 SQL과 MySQL의 SQL 사이에 큰 차이점이 없습니다. 이 점을 숙지하시기 바랍니다.

    질문하기