https://www.youtube.com/watch?v=PC3ypt_VGWI&ab_channel=%EA%B9%80%EA%B0%95%EB%AF%BCSQLP

더보기

sql 명령문 개괄 

시험, 연산 순서 정렬하는 문제 

from - where -  group by - having -  select - order by

 

종류 쓰는 문제 

dml> select, insert, delete, update 

ddl> alter 바꾸다, create, modify, drop

tcl> rollback, commit 

dcl> grant, revoke 

 

select 

 distinct(집약)

중복된 값들은 중복 제거(집약) = 원하는 정보를 집약

 X 

distinct deptno, mgr = group by (deptno, mgr)

as

 select 

 

1. as 생략 가능

2. 컬럼명에 띄어쓰기 

ex. 직원 번호> "직원 번호"

 from 

 

1. as 사용불가

 

concat 

- 연산자가 무슨 기호인가?

 + =  sql server 

 || = oracle

- 인수가 무조건 2개?

concat( , )

 

논리연산자

 and

 or 

 not 

- 의미 

- 연산순위 

1. not 

2. and 

3. or 

nao 

 

 

 

sql 연산자

 - between and

a between 1 and 2 = 1<= a <= 2  

 - in 

a in (1,2,3) 

a=1 or 2 or 3

- like 3문제 

와일드 카드에서 _ : 미지의 한 글자 

%: 0이상의 글자 

ex. '_l%'> 두번째 글자에 l 들어가는 사원들 다 고르는 것 

- escape 

와일드카드(_ %)를 문자로 취급하는 함수 

ex. like 'A_A' > 'A@_A'

EECAPE> '@'

// 와일드카드 앞에, @는 아무 문자 가능

 

- ROWNUM(ORACLE), TOP(SQL SERVER)

(WHERE) ROWNUM=1 포함 

(SELECT) TOP(N)(컬러명) 컬럼명 출력할 때 상위 N개 

 

- 시험,

SELECT EMPNO, SAL 

FROM EMP 

WHERE ROWNUM<= 3

ORDER BY SAL DESC> 가장 마지막에 실행

 

- NULL, 시험 5문제 

 

1. NULL의 정의 

부재, 모르는 값

 

2. NULL의 산술연산

= NULL

 

2. NULL의 비교연산

EX. NULL=NULL

NULL=2

> 알 수 없음(UNKNOWN)

> WHERE(조건=UNKNOWN)> "FALSE"

 

3. 정렬상의 의미 

오라클: 무한대 

SQL SERVER: 최소값, -무한대

 

4. 25:19

[NVL> 널뛰기, (값1. 값2)

NVL2 (1, 2, 3)

ISNULL] (1, 2)

[NULLIF]> 같이 놀자! (1, 2)

[COALESCE]> 널 아닌 첫번째 값 (1, 2 ~ 무한대)

 

정렬 4문제

1. 정렬의 정의, 특성

- 가장 마지막에 실행

- 성능이 느려질 가능성, 소팅 작업 

- 널값과의 관계 

 

2. 컬럼번호 정렬

*출력되는 컬럼의 수 보다 큰 값 불허 

 

3. 인수 두개 정렬 

SAL DESC, ENAME ASC

 

4. 출력되지 않는 컬럼명으로 정렬 가능 

SELECT ENAME 

ORDER BY SAL 

 

 

 

숫자 함수

 

1. ROUND 자릿수 

ROUND(138.94, 인수)

EX. 0.123~

// 반올림 함수 

 

2. CEIL ORACLE/ CEILING SQL SERVER

// 올림 함수

 

문자열 함수 

 

1. UPPER/ LOWER 대/ 소문자

2. LPAD, RPAD/ 공백 채우기, LTRIM, RTRIM/ 공백 제거

3. SUBSTR/ 문자 추출, INSTR/ 문자 위치  찾기 실습하기 

 

날짜 함수

1. TO_CHAR, TO_DATE 실습하기 

 

시험, 다음 중 데이터의 형 변환을 일으키는 함수?

2. SYSDATE(ORACLE)

GETDATE(SQL SERVER)

 

3. 날짜 데이터+100? 100일 이후 , DAY로 인식

DECODE/CASE 

CASE만 시험!

CASE 

 WHEN THEN 1

 WHEN THEN  2

ELSE 3/ ELSE 없을 때, 1, 2 만족X> NULL 

AND

 

집계함수, 시험 2-3문제 

 

1. NULL 과의 관계

34:54

 SUM(A)// 열 계산, 널뛰기

 SUM(A+B+C)// 행 계산, NULL 연산

SUM(A)+SUM(B)+SUM(C) VS

SUM(A+B+C) 차이 기억

 

GROUP BY 

집약 기능, WHERE 다음에 실행, 그룹 수준으로 정보를 바꾼다

HAVING? 그룹에 대한 조건식

JOIN 

 

1. NATURAL JOIN 

USING -

> 중복된 컬럼 "하나"로 출력

> 제일 앞에 등장

> 테이블 ALIAS 사용 불가, 중요

 

2. LEFT, OUTER JOIN 

EX. A LEFT OUTER JOIN B

= A COL1(조인키) =B COL1(+)/ 반대

선행 테이블이 선행 조건절 앞에, 후행 테이블은 후행 조건절 뒤에 있을 경우

서브쿼리  

들어가는 위치 중요

SELCET SCALAR

FROM INLINE VIEW, 메인 쿼리의 컬럼 사용 가능

WHERE 거의 모든 서브쿼리 

GROUP BY X

HAVING 거의 모든 - > 중첩서브쿼리

ORDER BY SCALAR

 

2. 

SELECT

FROM A

WHERE SELECT 

FROM B COL

= A COL1

// A를 찾을 때 까지 = A COL1에 대입 

서브쿼리에는 값이 고정 COLL = A

 

3. 

IN 

ANY/ SOME 

ALL 

EXIST 존재하다

모든 문자 출력 가능> TRUE

(0ROWS)> FALSE

 

집합연산자 46:38

 

UNION 합집합

INTERSECT 교집합 

 

MIINUS(SQL SERVER> EXCEPT )

정렬 작업 존재, 느리다 

 

UNION ALL> 중복 데이터 존재 

정렬 작업X, 빠르다 

 

UNION과 UNION ALL의 비교 , 누가 빠르냐?

 

DDL

 

TCL과 연관지어 생각 

1. 

TRUNCATE VS DROP

입주민 퇴거/ 철거 

구조(로그 데이터, 이전 기억 정보)가 남음/ 구조 삭제

TRUNCATE VS DELETE 

> DDL VS DML

ROLLBACK, COMMIT

DML 

INSERT 

UPDATE 

DELETE 

1. TCL과 연관지어 출제 

2. INSERT 오류사항 

INSERT (인수 3개) VALUSE (인수 2개) 오류

MERGE

 

제약조건 

PK= UNIQUE+ NOT NULL

UNIQUE 

NOTNULL 

 

DCL 

GRANTE 

REVOKE

1. 정의 

 

2. ROLE 5가지 특징 

- 롤은 롤에게 부여 가능

- 사람에게 부여 가능, 

- 사람들은 같은 롤을 가질 수 있음

- 롤을 부여할려면 권한이 필요함

- 롤은 권한이 있는 사용자한테 만들어짐 

명령어가 아닌 객체 중 하나 

객체? 데이터베이스를 구성하는 물질들 

EX. 테이블, 인덱스, 뷰, 롤

 

3. 문법

ON TO 구문

VIEW 

독편보 

*독립성, 기존 테이블의 구조가 변경되면 뷰 구조도 같이 변경, 업데이트 필요 X

*편리성

*보안성

 

그룹함수

ROLL UP

CUBE 

GROUPINGSETS

(GROUPING)

시험, 결과값 주고 뭘 썻는지?, 세개 비교표

EX. ROLLUP(A, B)

ROLLUP(B, A) = 같은 결과X

CUBE(A, B) = 

 

- = 같은 결과

 

1. NULL 다 찾기

2. 총합행 찾기 

있으면 ROLL UP(행의 수가 적으면), CUBE(행의 수가 많으면)

없으면 GROUPINGSETS

기출문제 풀면서 연습

 

TCL 

COMMIT, ROLLBACK

SQL SERVER, AUTO COMMIT OFF AND BEGIN TRANSACTION> DDL COMMIT 기능 X

 

https://www.youtube.com/watch?v=PjCSvexo3Ow&t=1999s&ab_channel=%EA%B9%80%EA%B0%95%EB%AF%BCSQLP

더보기

윈도우 함수 

 

1. rows between 

 

range between 

 

결과값에 대한 차이점 

 

같은 값이 있으면 range 

 

2. RANK, 중복 건너 뛴다 

 

EX. 1 1 3 4 

 

DEXSE_RANK 건너뛰지 X

 

EX. 1 1 2 3

 

3. PATITION BY

 

ORDER BY

 

> 무조건 문제풀기 

 

 

 

계층형 질의 

 

1. PRIOR 자식데이터=부모데이터

 

부모에서 자식으로 가면 순방향

 

프 자 부 부 자 순

 

= 부모데이터 = PRIOR 자식 데이터 

 

2. 실습 5:36

 

 

 

절차형 PL/ SQL 

 

*EXCEPTION> 생략 가능 

 

*PROCEDURE

 

반드시 값이 안 나오고

 

TRIGGER

 

커밋, 롤백 불가

 

보통 DML에서 많이 사용  

 

USER DEFINED FUNTION 

 

반드시 값이 나오고

 

 

 

데이터모델링 

 

업무> 데이터모델화

 

 

 

엔터티 

 

지도를 그리는 방법 

 

업무상 관리하고자 하는 대상

 

1. 엔터티 도출 

 

EX. 병원에서 환자를 관리하고할 때, 

 

2. 특징

 

- 특성을 두 개 이상

 

- 인스턴스 두 개 이상

 

- 하나 이상의 관계

 

- 업무 프로세스에 이용 

 

3. 분류

 

유형에 따른

 

- 유형

 

- 개념 

 

- 사건

 

유 개 사

 

- 기본

 

- 중심

 

- 행위 

 

기 중 행

 

 

 

속성 

 

관리하고 하는 대상(인스턴스)의 특성들

 

// 속성은 열, 인스턴스는 행

 

속성은 인스턴스들의 집합

 

2. 분류 

 

- 기본 속성

 

- 설계 속성

 

- 파생 속성

 

정의 확인

 

 

 

2. 분류 

 

- 기본 속성

 

- 설계 속성

 

- 파생 속성

 

정의 확인

 

 

 

도메인, 시험 두 문제

 

1. 지정해줄 수 있는 것? 

 

데이터 유형, 크기, 제약 조건

 

EX. 물리적 데이터 모델링, CHECK, PRIMARY KEY> 도메인에 해당

 

값의 범위 

 

 

 

관계

 

1. IE

 

- PK

 

BARKER

 

- #

 

// PK 표기법

 

2. 관계 선택 사항 16:31

 

필수/ 선택

 

- IE 

 

- BARKER

 

 

 

식별자

 

1. 식별/ 비식별자 관계 표기법 

 

- ERD 

 

점선> 비식별자 

 

실선> 식별자

 

2. 주식별자 특징

 

유 최 불 존

 

- 유일성? 인스턴스를 유일하게 구분

 

- 최소성? 여러가지 속성을 묶어서도 식별자 가능 , 그게 최소여야 함

 

- 불변성? 한 번 만들면 바뀌지 않아야 한다

 

- 존재성? NOT NULL

 

네 가지 다 만족하면 후보키, 후보키에서 대표로 선정> 기본키/ 대체키

 

 

 

식별자 관계, 비식별자 관계 

 

*강한 관계, 약한 관계

 

*단점? SQL 구문이 복잡?/ 조인

 

기본키가 계속 상속되면서 내려가기 때문에 , PK 속성수가 증가

 

/ 조인이 많아져서 느려짐

 

*ERD에서 어떻게 기술되는지?

 

ERD 서술 규칙

 

1. 시선, 좌상에서 우하로 

 

2. 관계명 반드시 표기X

 

3. UML은 객체지향모델에서만 사용

 

 

 

성능 데이터 모델링

 

1. 종류

 

- 아키텍처 

 

데이터들의 구조> 테이블, 파티션을 정규화 반정규화

 

성능이 더 좋다

 

- SQL 명령문 수리

 

조인수행원리 시험 4문제

 

OPTIMIZER 

 

실행계획 시험 1문제

 

 

 

정규화

 

1. 방법, 시험

 

1차? 원자성 확보

 

2차? 부분함수 종속성 제거 

 

3차? 이행함수 ~

 

BCNF? 

 

2. 이상 현상 

 

- 삭제이상 

 

- 삽입이상

 

3. 성능

 

SELECT에서는 느려질 수 있음(JOIN)

 

INSERT, UPDATE 성능 증가

 

정규화 제일 먼저

 

 

 

반정규화 

 

*데이터 무결성 해침

 

대범한 통조림

 

대상 조사

 

대량범위? 대량범위처리 빈도 수 조사

 

범위처리? 빈도수

 

통계처리? 여부

 

 

 

응용 시스템 연계

 

클러스터링/ 인덱스

 

 

 

 

이후에 반정규

 

 테이블 반정규화 

 

- 병합

 

1:1

 

1:M

 

슈퍼/ 서브

 

- 분할

 

이 부분에 통중 있어요

 

부분 테이블

 

통계 테이블

 

중복 테이블

 

 

 

 속성 반정규화

 

파 오 이

 

1. 파생

 

2. 오류 

 

3. 이력 컬럼

 

4. PK를 일반 속성에 편입

 

5. 중복 속성

 

 

 

 관계 반정규화

 

1. 중복관계 추가

 

 

 

대량 데이터에 따른 성능 

 

1. ROW MIGRATION 

 

ROW CHAINING 읽어보기

 

이것들에 대한 해결 방법 

 

LIST 파티션

 

RANGE 파티션, 쉬움, 가장 많이 사용 

 

HASH 파티션, 어려움

 

각각 특징(관리를 얼마나 쉽게 할 수 있냐) 문제

 

 

 

슈퍼/ 서브타입 31:49

 

1. 용량

 

- 작은 경우, ONE TO ONE , 트랜잭션이 개별로 

 

- 큰 경우

 

트랜잭션 유형으로 분류 

 

트랜잭션

 

 1 공통/ 차이점에 따라서 별개 트랜잭션으로 들어온다 = PLUS TYPE 

 

 2 전체 통합 = SINGLE TYPE

 

시험, 그림보여주고 이건 언제 쓰냐 

 

공통/차이의 타입은?

 

 

 

분산데이터베이스 

 

투명성

 

1. 특징

 

- 반정규화와 유사 

 

- 데이터 무결성 해침

 

 

 

조인 수행 원리 

 

시험 4문제

 

- NL

 

랜덤 엑세스 

 

대용량 소트 작업 유리

 

- SORT MERGE

 

조인키 기준으로 정렬

 

 등가, 비등가

 

- HASH

 

등가 조인만 사용

 

선행 테이블 작다

 

HASH 처리 별도공간 필요

 

 

 

옵티마이저 

 

요즘 안 나옴

 

CBO(COST BASED ) 

 

- 경로가 경제적이고 저렴한 것

 

RBO(RULL BASED )

 

- 규칙에 따라

 

 

 

인덱스 

 

1. 인덱스 언제 사용 

 

(부정형, LIKE 함수, 묵시적 형변환 사용 X)

 

2. 인덱스 사용시 성능이 저하, 

 

DML/ INSERT, UPDATE, DELETE 

 

 

 

실행계획 

 

1. 순서, 시험 1문제

 

EX. 들여쓰기 실행 순서

 

// 들여쓰기 부터 실행, 같은 레벨 뭉텅이로 처리

 

 

 

# 정규화, PIVOT/ UN PIVOT, MERGE 

 

 

 

체크!

 

2. 이상 현상 

 

- 삭제이상 

 

- 삽입이상

+ Recent posts