SQL

SQLD 정리강의 정리 -1

monawa 2023. 6. 6.
728x90

1. SQL 명령문 개괄

1)연산순서 

FROM -WHRER- GROUPM BY - HAVING -SELECT - ORDERBY

 

2)종류 고르기

  • DML - SELECT, INSERT, DELETE, UPDATE
  • DDL - ALTER, CREATE, MODIFY, DROP
  • TCL - ROLLBACK, COMMIT
  • DCL - GRANT, REVOKE

 

2. SELECT

distinct  (집약 /중복제거) -  distinct 컬럼1,컬럼2 =>  (컬럼1,2)라고 생각하면된다

as

select as생략가능
컬렴명에 띄어쓰기 가능 (컬럼명에 띄어쓰기 있을 경우 따옴표 "직원 번호")
from as사용불가 (오라클에서) 
where as사용불가

CONCAT

  • SQL SERVER : +
  • ORACLE : ||
  • CONCAT은 인수가 2개 -> CONCAT( A, B )

 

3.논리연산자

  • and -  A 그리고 B
  • or -  A,나 B
  • not -  A , B 둘다 X
  • 연산순위 NOT, AND, OR (NAO 나오)
    • NOT(조건) AND(조건), NOT(조건) OR(조건)
    • NOT 먼저 -> AND -> OR

 

4. SQL 연산자 

A between 1 and 2  1=<A<=2

A IN (1,2,3)  A=1 OR A=2 OR A=3

LIKE _미지의 한글자 %0이상의 글자

  • LIKE escape 와일드카드를 문자로 취급
  • ename like A_A => A@_A
  • escape @ (아무문자 가능)

 

5. NULL 의 정의

1) 부재,모르는값

2) NULL 산술연산 NULL+2 , NULL-4,NULL *NULL  = NULL

3) 비교연산 NULL=2 , NULL=NULL -> 알수없음

4) 정렬상 의미  오름차순일시  오라클 : 맨마지막 , SQL : 맨처음에

5)     

  • (널뛰기)
    NVL      :   (값1, 값2)                  값1이 isnull이면 값2 아니라면 값 1
    NVL2    :  (값1, 값2, 값3)           값1인 isnull이면 값3 아닐 경우 값2
    isnull    :   (값1, 값2)                  값1이 isnull이면 값2 아니라면 값 1
  • (같이 놀자!)
    nullif      : (값1, 값2)                   두 개의 값이 같으면 null 다르면 값1
  • (널 아닌 첫 번째 값)
    coalesce    :  (값1, 값2, ...)        널 아니면 첫번째 값 , 맨 앞 첫 널 아닌 값.

 

6. 정렬

1) 특성

  • 정렬의 특성 가장 마지막에 실행
  • 성능이 느려지는 함수 
  • NULL값과의 관계

2) 컬럼번호 정렬

출력되는 컬럼의 수보다 큰값 X

 

3) 인수 두개

앞에꺼 정렬하고 같으면 뒤에꺼

 

4) SELECT에 없어도 정렬가능 (단 그룹시는 X)

 

7.숫자함수 

ROUND -  자리수 확인 

CEIL(오라클) = CEILING(SQL)

 

8. 문자열함수

  • upper : 대문자로 변환
  • lower : 소문자로 변환
  • Lpad : 왼쪽에 문자를 채움 -> 기본 공백, 원하는 문자로 채우기 가능
  • Rpad : 오른쪽에 문자를 채움
  • LTrim : 왼쪽 공백을 지움 혹은 문자를 넣으면 반복되는 문자를 지움
  • RTrim : 오른쪽 공백을 지움

 

9. 날짜 함수

TO_CHAR

TO_DATE

형변환 되느냐 문제 많음

  오라클에서 sysdate 현재 시간 

 

10 CASE WHEN THEN 

ELSE 없을시 NULL 

 

11. 집계함수

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) =  NULL+7+NULL = 7
  • SUM(A)+SUM(B)+SUM(C) =  13

 

12. GROUP BY

집약기능 , 그룹수준 정보변경

 

13. JOIN

1)NATNANL JOIN  / USING  -> 중복된 컬럼 하나 , 제일 앞에 등장 

  • NATNANL JOIN - ALIAS 사용 가능
  • USING - ALIAS 사용 X

 

2) LEFT OUTER JOIN 

A LEFT OUTER JOIN B = A COL = BCOL(+)

 

3) A,B,C 조인시 순서

AB 조인 후 C 합쳐짐

 

14. 서브쿼리

select  SCALAR  
form Inline View 메인 쿼리의 컬럼 사용가능 
where 거의 모든 서브쿼리 중첩서브쿼리 
group by X  
having 거의 모든 서브쿼리  중첩서브쿼리
order by SCALAR  

 

in 서브쿼리 출력값들 or 조건

any /some - 서브쿼리 출력값들중 가장 작거나 큰 값과 비교 

all - any/ some 과 반대 개념 

exise( 모든문자가능  true 단 rows는 false)  

 

15. 집합연산자

union 합집합 - 종복제거 정렬작업 O 
느리다
intersect 교집합
minuns( except) 차집합
union all 합집합   종복데이터 o 정렬작업 x 빠르다 

 

 

16. DDL 

TCL과 연관해서 생각 

TRUNCATE

입주민 퇴거 (구조는 남음  구조도 삭제
TRUNCATE DROP
TRUNCATE DELTE
DDL   DML

 

17 . DML

INSERT ,UPDATE, DELETE - COMMIT, ROLLBACK

 

18. 제약조건 

PK = UNIQUE +NOTNULL

UNIQUE

NOTNULL

 

19. DCL

  • GRANTE의 정의 :  권한 부여
  • REVOKE의 정의 : 권한 제거

ROLE 의 특징 -  5개 ROLE은 명령어가 아닌 객체(OBJECT)

  • ROLE은 ROLE에게 부여 가능
  • ROLE 사람에게 부여가능
  • 사람들은 같은 ROLE을 가질 수 있음
  • ROLE을 부여하려면 권한이 필요
  • 권한이 있는 사용자에 의해 만들어짐

20 VIEW

독편부

  • 독립성 :기존 테이블 구조 변경되어도 뷰의 구조는 변경되지 않는다.
  • 편리성 :계속 테이블을 조작할 필요없다.
  • 보안성 : 원하는 정보만. 나머지는 숨겨서 줄 수 잇다.

21. 그룹합수

rollup  : 합계에 대한 총계 추가

[비교표] rollup A,B = rollup B,A 같은 결과 아님. 계층 구조로 진행됨

roll up 인수가 두개일 경우, ROLLUP(A,B) ROLLUP(B,A)는 같은가? -> 안같다.

 

 

cube cube (A,B) = cube(B,A)

1. null 다찾기

2. 총합행(X groupingsets /O :roll up, cube) 

 

22. TCL

auto commit off and begin transaction = ddl에 commit 기능 없앤거

 

 

 

출처 :sqld 막판 최종정리

https://www.youtube.com/watch?v=PC3ypt_VGWI 

 

728x90

'SQL' 카테고리의 다른 글

sqld 시험전 확인할 스피드 퀴즈  (0) 2023.06.08
SQLD 정리강의 정리 -2  (1) 2023.06.06
sqld 1장 데이터 모델링의 이해  (0) 2023.05.31
sqld rollup,cube ~윈도우함수 (108~127)  (1) 2023.05.30
sql 의 쿼리 실행 순서  (0) 2023.02.21

댓글