seols
[SQLD 자격과정] CH03 SQLD 기본 본문
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 조인
조인
두개 이상의 테이블들을 연결 또는 결합하여 데이터 출력하는 것
최소로 필요한 조인 조건 = 조인되는 테이블 수
'강의 > FASTCAMPUS_SQLD' 카테고리의 다른 글
[SQLD 자격과정] CH05 SQL 최적화 기본 원리 (0) | 2022.10.25 |
---|---|
[SQLD 자격과정] CH04 SQLD 활용 (0) | 2022.10.21 |
[SQLD 자격과정] CH02 데이터 모델과 성능 (0) | 2022.10.18 |
[SQLD 자격과정] CH01 데이터 모델링의 이해 (0) | 2022.10.17 |