brunch

SQLD 요약정리, 3편

3. SQL 기본

by 브래드

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

오늘은 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: 날짜와 시각




66.jpg




(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




88.jpg




(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 활용을 함께 살펴보아요.


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

keyword
작가의 이전글SQLD 요약정리, 2편