프로그래밍/SQLD

5. 2과목 제 1장 SQL 기본 (3) 43~64

량아이 2022. 8. 23. 17:11

어제 문제 풀고 이해하고 정리하는데 아무리 2주라는 시간이 있어도 그렇지 기한안에 이게 가능한가 싶었지만 오늘 정신차리고 다시 정리해보니 괜찮은거같다가도 미래는 아직 아무도 모른다!


SQL 문장 표현

SEARCHED_CASE_EXPRESSION

ㄴCASE WHEN LOC = 'NEW YORK' THEN 'EAST'

when 이 앞에오고 ' = '가 있음

SIMPLE_CASE_EXPRESSION

ㄴCASE LOC WHEN 'NEW YORK' THEN 'EAST'

when이 뒤에오고 ' = '가 없음

 

 

NULL관련 함수

 

이해하는데 살짝 애를 먹었던 222

64페이지의 48번

COALESCE 함수의 핵심이니 잘 기억해두도록 하자

 

 

이제까지 했던것처럼 그냥 글로 설명해보려고 했으나 설명이 너무 복잡해져서 교재 첨부

65페이지의 50번 문제

 

SELECT COUNT(컬럼) => NULL은 제외

SELECT COUNT(*) => NULL 포함

*NULL을 포함하여 검색하고 싶을 땐 ('컬럼 1' , '컬럼 2' , 'NULL')이 아니라 IS NULL로 검색해야 한다.

 

GROUP BY 와 HAVING

GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중, HAVING 절에서 제한 조건을 두어 조건을 만족하는 내용만 출력한다.

*SELECT name 은 반드시 GROUP BY name 이렇게 나타나야 한다

 

  • AVG(COUNT(*))와 같은 그룹 함수 안에 그룹함수가 사용된 중첩된 그룹함수를 사용하게 되면 GROUP BY와 관련해 에러발생

 

IN라인 뷰

인라인뷰를 구성하게 될 쿼리에서 인라인 뷰 바깥에 있는 테이블과 조인을 맺고 있지만 인라인뷰에서 뷰 바깥의 테이블과 JOIN을 할 수 없음

JOIN 예시) D.광고매체, C.광고매체, C.광고시작일자 등등

 

 

ORDER BY 칼럼이나 표현식 [ASC/DESC] -기본적인 정렬 순서는 오름차순이다.

ASC(Ascending) - 오름차순

100
200
300

DESC(Descending) - 내림차순

600
500
300

 

70페이지 56번

사실 왜 이런지 이해가 잘 되지 않는다

SELECT 문장의 실행 순서

FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

 

 

테이블에서 데이터추출을 할 때

SELECT TOP(3) WHIT TIES 팀명, 승리건수

이렇게 검색을 하게 되면 탑 3를 도출해내지만 승리건수가 같은 팀이 있을때 그팀을 모두 포함시켜 찾게한다

 

 

여러개의 테이블로부터 필요한 칼럼을 조회하려고 할 때 필요한 JION의 개수

5개의 테이블일때 필요한 join 조건개수

 

마지막

 

73페이지의 64번 문제

WHERE A.ENAME LIKE B.RULE을 펼쳐서 설명하면 이렇게 도출해낼 수 있다.

 

다른 2과목 제 1장 SQL 기본 들과 마찬가지로 여기서 나오는 대부분의 이미지들은 대부분 진광철님 유튜브 에서 가져왔다.

 

2과목 끝!!!