seols

[SQLD 자격과정] CH03 SQLD 기본 본문

강의/FASTCAMPUS_SQLD

[SQLD 자격과정] CH03 SQLD 기본

설이야 2022. 10. 20. 11:04

1 관계형 데이터베이스 개요

데이터 베이스 : 데이터를 일정한 형태로 저장해놓은 것

DBMS(Database Management System) : 데이터의 손상을 피하고, 데이터 복구 기능을 만족시켜주는 시스템

관계형 데이터 베이스 :  이상현상 제거, 데이터 중복을 피함, 동시성 관리, 병행 제어/ 보안 기능, 데이터 무결성 보장 회복/복구

SQL(Structured Query Language) : 관계형 데이터 베이스에서 데이터 정의/조작/제어하기 위한 언어

DML(Data Manipulation Language), DDL(Definition), DCL(Control), TCL(Transaction Control) 

 

테이블 :  관계형 데이터베이스의 기본 단위

정규형 : 테이블을 분할하여 정합성 확보, 중복 줄이는 프로세스

기본 키 : 각 행을 한가지의미로 특정

외부 키 : 다른 테이블의 기본 키로 사용되고 있는 관계를 연결

 

ERD(Entity Relationship Diagram)

테이블 간 상관 관계 도식화, 엔터티,관계,속성으로 구성

2 DDL(DATA DEFINITION LANGUAGE)

주요 데이터 타입

CHAR(L) : 고정 길이 문자열

VARCHAR(L) : 가변 길이 문자열

NUMBER(L,D)  : 정수, 실수 / L(전체 자리 수), D(소수점 자리 수)

DATE : 년월일시분초

 

CREATE

제약조건 : 사용자가 원하는 조건의 데이터만 유지, 특정 컬럼에 설정

제약조건 종류

기본키 : 하나의 테이블에 하나의 기본 키, NULL값 불가

고유키 : 고유한 키, NULL 가능

NOT NULL : NULL값 입력 금지

CHECK : 값 종류 및 범위 제한

외래키 : 다른 테이블의 기본키를 외래키로 지정

* 추가 컬럼 위치 지정 불가

* 한 번 삭제된 컬럼 복구 불가능

 

ALTER ADD/DROP/MODIFY/RENAME : 테이블 내 컬럼/제약 조건 추가/삭제/정의/이름변경

RENAME : 테이블 이름 변경

TRUNCATE : 테이블 데이터 비우기

DROP : 테이블 제거

3 DML(DATA MANIPULATION LANGUAGE)

INSERT

UPDATE

DELETE

SELECT

ALIAS : AS로 컬럼 이름 지정 가능

|| : 문자열 연결 가능

4 TCL(TRANSACTION CONTROL LANGUAGE)

트랜잭션의 특성

데이터베이스의 논리적 연산단위

하나의 트랜잭션에는 하나 이상의 SQL 문장

원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)

 

COMMIT
ROLLBACK

COMMIT 이전에는 변경 사항 취소 가능 > 롤백 기능

데이터 이전 상태로 복구, 다른사용자들이 데이터 변경 가능

COMMIT 변경된 데이터를 테이블이 영구적으로 반영하라

ROLLBACK 변경전으로 돌아가라

 

DDL 문장 실행 시 자동 COMMIT

정상적 접속 종료 시 자동 COMMIT

이상 종료 시 자동 ROLLBACK

5 WHERE 절

원하는 자료만을 검색, FROM절 다음에 위치

 

연산자의 우선순위

() > NOT > 비교,SQL비교 > AND > OR

와이드카드

% : 0개 이상 어떤 문자

_ : 1개의 단일 문자

 

문자유형 비교 방법

길이가 다르면 작은 쪽에 공백 추가

공백의 수만 다르면 같은 값으로 결정

 

한쪽만 VARCHAR일 땐, 공백도 문자로 판단 > TRIM()함수로 공백제거하여 비교하면 같은 값으로 비교

상수값과 비교 > 변수타입과 동일하게 바구고 비교

6 함수(FUNCTION)

단일 행 함수

SELECT, WHERE, ORDER BY절에서 사용가능

각 행에 대한 결과 리턴

함수의 중첩이 가능

 

데이터 변환의 종류

명시적 형 변환 : 데이터 유형을 변환하도록 명시 <<<이걸 쓰는 게 좋음

암시적 형 변환 : DBMS가 자동으로 데이터 유형 변환

 

 NULL에 연산해도 NULL

7 GROUP BY, HAVING 절

집계함수

그룹당 단 하나의 결과를 돌려주는 함수

SELECT, HAVING절, ORDER BY절에서 사용가능

COUNT, AVG, SUM 등

* ALL(default, 모든 값), DISTINCT(유일한 값)

 

GROUP BY절

GROUP BY절에서 소그룹별 기준을 정한 후, SELECT 절에 집계 함수 사용

ALIAS 사용 못함

HAVING 절은 GROUP BY절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건 표시

HAVING절은 일반적으로 GROUP BY절 뒤에 위치 (바껴도 상관은 없음)

 

HAVING 절

집계된 결과 집합을 기준으로 특정 조건을 주고 싶은 경우

 

NULL은 집계함수에 포함되지 않음!!

COUNT(*)은 NULL 포함, COUNT(NUM)은 NULL 미포함.

8 ORDER BY 절

ORDER BY 정렬

특정 컬럼을 기준으로 정렬하여 출력

기본적으로 오름차순, 제일 마지막에 위치

NULL값을 가장 큰 값으로 간주

SELECT문에 없는 컬럼으로도 정렬 가능

 

SELECT문 실행 순서

FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY

9 조인

조인

두개 이상의 테이블들을 연결 또는 결합하여 데이터 출력하는 것

최소로 필요한 조인 조건 = 조인되는 테이블 수

 

 

 

 

 

 

 

 

Comments