brunch

You can make anything
by writing

C.S.Lewis

by 브래드 Mar 11. 2023

SQLD 요약정리, 3편

3. SQL 기본

안녕하세요, 브래드입니다.

오늘은 SQLD 요약정리 3편으로 다양한 SQL문을 포함한 SQL 기본에 관하여 함께 알아보아요.



제 3장. SQL 기본

  (1) 관계형 데이터 베이스

    - 관계형 데이터 베이스는 정규화를 통해 합리적인 모델링으로 이상현상을 제거하고 데이터 중복을 피할 수 있다.

    - 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있다. 

    - 보안기능을 제공하며 데이터무결성을 보장한다.



  (2) SQL문 종류

    1) DDL: 데이터 정의어

        ex) CREATE / ALTER / DROP / RENAME 


    2) DML: 데이터 조작어

        ex) SELECT / INSERT / UPDATE / DELETE

 

    3) DCL: 데이터 제어어

        ex) GRANT / REVOKE


    4) TCL: 트랜잭션 제어어

        ex) COMMIT / ROLLBACK



  (3) 테이블명 설정 시 유의사항

    - 단수형 권고

    - 다른 테이블명과 중복되면 안됨

    - 데이터 유형을 반드시 지정해야 함

    - 테이블 생성 시 끝은 ';'로 끝나야 함

    - A-Z, a-z, 0-9, _, $, # 문자만 허용 함

    - 테이블 명과 칼럼 명은 문자로 시작


*주요 데이터 타입 
 1) CHAR: 고정길이문자열
 2) VARCHAR: 가변길이문자열
 3) NUMBER: 정수 및 실수
 4) DATE: 날짜와 시각







  (4) 제약 조건

    1) 기본키(PK)

        - 하나의 테이블에 단 하나의 기본키만 정의할 수 있음

        - UNIQUE & NOT NULL


    2) 고유키

        - UNIQUE 

        - NULL 입력 가능


    3) NOT NULL

        - NULL 값의 입력 금지


    4) CHECK

        - 입력할 수 있는 값 종류 및 범위 제한


    5) 외래키(FK)



  (5) TCL 특징

     5-1. 트랜잭션 

    - 트랜잭션은 데이터베이스의 논리적 연산단위

    - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함됨

    - 트랜잭션은 분할할 수 없는 최소의 단위이며 전부 적용하거나 전부 취소한다.


*트랜잭션의 4가지 특성
 1) 원자성: 모두 성공적으로 끝나거나 모두 실패해야 함
 2) 일관성: 실행되기 이전 데이터가 온전하다면, 실행된 이후에 데이터베이스의 내용에 잘못이 있으면 안됨
 3) 고립성: 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안됨
 4) 지속성: 성공적으로 트랜잭션이 수행되면 영구적으로 저장됨 



   5-2. COMMIT / ROLLBACK / SAVEPOINT

    1) COMMIT

        - COMMIT 명령어를 통해 트랜잭션을 완료할 수 있음

        - COMMIT 이전에는 데이터 변경 이전 상태로 복구 가능함. 또한 현재 사용자는 결과를 확인할 수 있지만, 다른 사용자는 현재 사용자가 수행한 명령을 확인할 수 없음. 다른 사용자가 변경 불가능

        - COMMIT 이후에는 이전 데이터는 영원히 잃어버리게 됨. 모든 사용자가 결과를 확인할 수 있으며, 잠금이 풀리고 다른 사용자들이 조작할 수 있음


    2) ROLLBACK


    3) SAVEPOINT



  (6) WHERE절

    - WHERE 절을 통해 자료에 대한 필터 기능을 수행할 수 있음

    - 연산자 우선 순위

   1) 괄호()
   2) NOT
   3) 비교연산자
   4) AND
   5) OR







  (7) 단일 행 함수

    1) 문자형 함수

        - LOWER, UPPER, SUBSTR, LENGTH, RTRIM, LTRIM 등


    2) 숫자형 함수

        - ABS, MOD, ROUND, TRUNC, SIGN, CEIL, FLOOR 등


    3) 날짜형 함수

        - SYSDATE, EXTRACT 등

   

    4) 변환형 함수

        - TO_NUMBER, TO_CHAR, TO_DATE 등


    5) NULL 관련 함수

        - NVL, ISNULL, NULLIF, COALESCE 등



  (8) GROUP BY 절

        - 집계함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행함

           *예외적으로 COUNT(*)은 NULL 값을 포함한 행의 수를 출력한다

        - GROUP BY 절에는 ALIAS 명을 사용할 수 없음 (FROM절에도 ALIAS 사용 불가)

        - 집계 함수는 WHERE 절에는 올 수 없음

       - HAVING 절은 GROUP BY 절에 조건을 주는 역할로 일반적으로 GROUP BY 절 뒤에 위치하지만, GROUP BY 절 앞에도 위치할 수 있음



  (9) ORDER BY 절

        - 특정 칼럼을 기준으로 정렬할 때 사용

        - SELECT 절에 사용된 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용할 수 있음

        - 기본적으로 오름차순(ASC) 정렬됨

        - ORACLE 내에서는 NULL 값을 가장 큰 값으로 간주하기 때문에 오름차순으로 정렬할 때는 가장 마지막에, 내림차순으로 정렬할 때는 가장 먼저 위치함

        - SELECT 절 내에 위치하고 있지 않은 칼럼도 ORDER BY를 수행할 수 있음



*SELECT 문의 실행순서

1) FROM절
2) WHERE절
3) GROUP BY절
4) HAVING절
5) SELECT절
6) ORDER BY절 





지금까지 SQLD 요약정리 3편으로 데이터 베이스 및 다양한 SQL 구문 등에 관해 살펴보았습니다. 

다음시간에는 SQL 기본에 이어서 SQL 활용을 함께 살펴보아요.


브래드였습니다. 감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari