sqld 개념 요약 정리3

sun·2024년 7월 23일
0

SQLD

목록 보기
3/7

제 3장. SQL 기본

1. 관계형 데이터 베이스

  • 관계형 데이터 베이스는 정규화를 통해 합리적인 모델링으로 이상현상을 제거하고 데이터 중복을 피할 수 있다.
  • 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있다.
  • 보안 기능을 제공하며 데이터 무결성을 보장한다.

2. SQL문 종류

1- DDL : 데이터 정의어
예) CREATE / ALTER / DROP / RENAME
2- DML : 데이터 조작어
예) SELECT / INSERT / UPDATE / DELETE
3- DCL : 데이터 제어어
예) GRANT / REVOTE
4- TCL : 트랜잭션 제어어
예) COMMIT / ROLLBACK

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

  • 단수형 권고한다.
  • 다른 테이블명과 중복되면 안된다.
  • 데이터 유형을 반드시 지정해야 한다.
  • 테이블 생성 시 끝은 ';'로 끝나야 한다.
  • A-Z , a-z , 0-9 , _, $, # 문자만 허용 함.
  • 테이블 명과 칼럼 명은 문자로 시작한다.

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

4. 제약 조건

기본키(PK)

  • 하나의 테이블에 단하나의 기본키만 정할 수 있다.
  • UNIQUE & NOT NULL

고유키

  • UNIQUE
  • NULL 입력 가능

NOT NULL

  • NULL 입력 가능

CHECK

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

외래키(FK)

  • 두개의 테이블을 연결하는 연결다리 역할
  • null 값 허용

5. TCL 특징

트랜잭션

  • 트랜잭션은 데이터베이스의 논리적 연산단위
  • 하나의 트랜잭션에는 하나 이상의 sql문장이 포함된다.
  • 트랜잭션은 분할할 수 없는 최소의 단위이며 전부 적용하거나 전부 취소한다.

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

COMMIT / ROLLBACK / SAVEPOINT

1- COMMIT

  • COMMIT 명령어를 통해 트랜잭션을 완료할 수 있다.
  • COMMIT 이전에는 데이터 변경 이전 상태로 복구 가능하다. 또한 현재 사용자는 결과를 확인할 수 있지만, 다른 사용자는 현재 사용자가 수행한 명령을 확인할 수 없다. 다른 사용자가 변경 불가능하다.
  • COMMIT 이후에는 이전 데이터는 영원히 잃어버리게 된다. 모든 사용자가 결과를 확인할 수 있으며, 잠금이 풀리고 다른 사용자들이 조작할 수 있다.

2- ROLLBACK
3- SAVEPOINT

6. WHERE 절

  • WHERE절을 통해 자료에 대한 필터 기능을 수행할 수 있다.
  • 연산자 우선 순위

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

6. 단일 행 함수

문자형 함수

  • LOWER, UPPER, SUBSTR, LENGTH, RTRIM, LIRIM 등

숫자형 함수

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

날짜형 함수

  • SYSDATE, EXRTACT 등

변환형 함수

  • TO_NUMBER, TO_CHAR, TO_DATE 등

NULL 관련 함수

  • NVL, ISNULL, NULLIF, COALESCE 등

8. GROUP BY 절

  • 집계함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행함
    - 예외적으로 COUNT(*)은 NULL 값을 포함한 행의 수를 출력한다.
  • GROUP BY 절에는 ALIAS명을 사용할 수 없음 (FROM절에도 AILAS 사용불가)
  • 집계 함수는 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절

참고 :
https://brunch.co.kr/@4ec2ea79b44a440/158

0개의 댓글