개발여행의 블로그

[SQLD] 요약 정리 본문

카테고리 없음

[SQLD] 요약 정리

개발 여행 2021. 2. 28. 22:33
728x90

이 글은 SQLD 최종 정리강의 1편 - SELECT문장 ~ 트랜잭션 관리 언어(TCL). 깡마SQLD 강의를 보며 정리한 글입니다. 

모든 저작권은 깡마SQLD에 있습니다.


[ 숫자 함수 ]

ROUND - 지정한 자리에서 반올림하는 함수

 

 

ROUND(숫자, 반올림할 자리수)

 

두번째 인수에서 0은 소수점 첫째 자리이다.

 예) 두번째 인수 0일 때 : 소수점 첫째 자리에서 반올림

예) 두번째 인수 -1일 때 : 정수 첫째 자리에서 반올림

예) 두번째 인수 1일 때 : 소수점 둘째 자리에서 반올림


ceil (oracle), ceiling (sql server) - 올림값을 반환하는 함수


문자열 함수

 

uppper

lower

LPAD
RPAD
LTRIM

RTRIM

substr

instr


날짜 함수

 

TO_CHAR : 형변환 함수

TO_DATE : 형변환 함수

sysdate (oracle) / getdate(sql server)

날짜데이터 + 100 = 날짜데이터 + 100일(day로 인식)


DECODE / CASE

 

case에서 else가 없는 경우, 다른 when을 만족하는 조건이 없을 때 null을 반환


집계 함수

★null과의 관계 중요

A B C
null null 1
3 2 2
null 2 3

· SUM(A) = 3

· SUM(B) = 4

· COUNT(A) = 1

· COUNT(*) = 3

 

· SUM(A+B+C) = 7

SUM(A+B+C) 와 SUM(A) + SUM(B) + SUM(C)의 차이 알아두기

A B C A+B+C
null null 1 null
3 2 2 7
null 2 3 null

GROUP BY

 

· 집약 기능이 있다.

· where 다음에 실행된다.

· 그룹 수준 정보로 바꾼다.


JOIN

 

① natural join / using

=> 중복된 컬럼이 사라진다.(하나로만 출력)

=> 중복된 컬럼이 가장 앞에 나온다.

 

② left outer join

-- 같은 결과 리턴

SELECT * FROM A LEFT OUTER JOIN B 
ON A.col1=B.col1

SELECT * FROM A, B
WHERE A.col1=B.col1(+)

 

③ join 순서

SELECT * FROM A, B, C

A와 B를 먼저 조인하고, A와 B를 조인한 테이블과 C를 조인한다. 

 1) A + B ( A+B를 AB라고 정의 )

 2) AB + C


Subquery

 

subquery가 들어갈 수 있는지 파악

   1) select : 단일행 서브쿼리 중 하나인 스칼라 서브쿼리

   2) from : inline view(메인 쿼리의 컬럼 사용 가능)

   3) where : 거의 모든 서브쿼리(중첩 서브 쿼리)

   4) group by : X

   5) having : 거의 모든 서브쿼리(중첩 서브 쿼리)

   6) order by : 스칼라 서브쿼리

 

· IN

· ANY / SOME

· ALL

· EXIST : 존재 하면 TRUE, 0 rows일 경우 FALSE


집합 연산자

union 중복 테이터 X, 정렬 작업 O, 느림

union all → 중복 테이터 O, 정렬 작업 X, 빠름

intersect  정렬 작업 O, 느림

minus (oracle) / except (sql server)  정렬 작업 O, 느림


DDL

TRUNCATE VS DROP

TRUNCATE : 입주민 철거의 의미. 따라서 구조가 남아있다.

 DROP : 건물 철거의 의미. 구조도 삭제된다.

 

TRUNCATE VS DELETE (DDL 과 DML)

DDL 과 DML은 항상 rollback, commit과 연관해서 나온다.


DML

TCL rollback, commit과 항상 연관지어 나온다.

 

INSERT

UPDATE

DELETE

 

MERGE : 기출문제 37회 참고


제약 조건

★ 기억해야할 사항

 

PK : unique + not null

UNIQUE

NOT NULL


DCL

 

grant, revoke의 정의, 문법 (onto)

with admin, with grant option

role의 특징

role은 object 중 하나


VIEW

 

이점

① 독립성 : 기존 테이블의 구조가 변경되어도 view를 따로 업데이트 할 필요는 없다. (실제 테이블과 항상 동기화)

② 편리성 

③ 보안성 : 원하는 정보만 줄 수 있고, 나머지 정보는 숨겨서 줄 수 있다.


그룹 함수

★ 기억해야할 사항

 

roll up

cube

groupingsets

grouping

roll up roll up(A,B) 같은 결과 X
roll up(B,A)
cube cube(A,B) 같은 결과 O
cube(B,A)

 

표를 제시한 후에 빈칸을 두고 들어갈 것이 roll up인지 cube인지 판단

1) null 다 찾기

2) 총합행 있는지 찾기

  X : groupingsets

   O : roll up과 cube 중 하나.

           roll up - 한쪽만 결과가 나와 계층으로 나옴, 행의 수가 적어보일 때

           cube - 양쪽으로 결과 나옴, 행의 수가 많아보일 때


TCL

 

commit과 rollback

 

auto commit off

and

Begin transaction

=> DDL의 commit 기능을 없앤 것

728x90
Comments