한 눈에 끝내는 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
      마치며...
    • 맺음말
    SQL이란?
    01 시작하기에 앞서
    SQL이란?
    default

    SQL은 Structured Query Language (구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어입니다. SQL은 1970년대에 IBM에서 최초 개발되었으며 관계형 모델이라는 이론에서 파생된 특징을 가지고 있는데, 현재 SQL의 표준으로 ANSI SQL이 정립되었습니다. 각 DBMS 프로그램에서 ANSI SQL을 기반으로 개발된 개별 SQL을 사용하며 서로 근소한 차이를 보입니다.


    SQL 문법의 종류


    SQL 문법은 크게는 3가지의 종류로 나누어지며, 종류마다 정의는 아래와 같습니다.

    • DDL(Data Definition Language, 데이터 정의 언어)
      릴레이션을 정의하기 위해 사용하는 언어입니다. (CREATE, ALTER, DROP...)
    • DML(Data Manipulation Language, 데이터 조작 언어)
      데이터를 추가/수정/삭제하기 위한, 즉 데이터 관리를 위한 언어입니다. (SELECT, INSERT, UPDATE...)
    • DCL(Data Control Language, 데이터 제어 언어)
      사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어입니다. (GRANT, REVOKE...)


    SQL의 언어적 특성


    각 프로그래밍 언어가 가진 고유한 특성은 꼭 구별 지어 알아두어야 사용할 때 오류를 줄일 수 있습니다. SQL은 다음과 같은 언어적 특성을 갖습니다.

    1. SQL은 대소문자를 가리지 않습니다.
      (단, 서버 환경이나 DBMS 종류에 따라 데이터베이스 또는 필드명에 대해 대소문자를 구분하기도 합니다.)
    2. SQL 명령은 반드시 세미콜론(;)으로 끝나야 합니다.
    3. 고유의 값 따옴표('') 감싸줍니다.
      ex) SELECT * FROM EMP WHERE NAME = 'James';
    4. SQL에서 객체를 나타낼 때는 백틱(``)으로 감싸줍니다.
      ex) SELECT `COST`, `TYPE` FROM `INVOICE`;
    5. 주석은 일종의 도움말로, 주석 처리된 문장은 프로그램에서 동작하지 않습니다. 한 줄 주석은 문장 앞에 -- 를 붙여서 사용합니다.
      ex) -- SELECT * FROM EMP; 이 쿼리는 실행되지 않습니다.
    6. 여러 줄 주석은 /* */ 로 감싸줍니다.
      ex)
      /* 
      SELECT * FROM EMP WHERE EMPID=(SELECT * FROM EMP WHERE NAME='홍길동')
      */
    질문하기