본문 바로가기
TIL & WIL

[비트캠프 - 클라우드 기반 AlaaS 개발자 과정] 22.11.28.(DAY-31) TIL

by 그냥_살자 2022. 11. 29.

1. 끄적

뷰 = select문에 이름을 붙혀 저장한 객체 ⇒ select문은 원래 객체 등록 x

⇒ 함수 갔다 쓰는 거 느낌

 

데이터베이스에 존재하는 일종의 가상테이블

실제로 데이터저장 x

실행시간에만 구체화되는 테이블

 

웹 서버 vs WAS(웹 어플리케이션 서버)

  • 웹 서버는 정적 컨텐츠(html css js 이미지 파일)만 응답가능한 컨텐츠.
  • 웹서버가 동적 컨텐츠를 요청받으면 WAS에 요청을 넘김
  • WAS는 데이터베이스 조회나 다양한 로직 처리 같은 동적 컨텐츠를 수행.

동기식 vs 비동기식

동기식 = 공인인증서 → 순차적

비동기식 = 보안 x → 빠른 처리

 

Django ↔ DRF(Django Rest Framwork)

우린 DRF만 씀

 

MSA = MicroService Architecture ↔ MS = Monolithic Architecture

⇒ 소프트웨어의 구성요소를 모듈화 = 카카오가 안한 그거

 

<노트북 세팅 할 거>

우리가 할 거

https://mdntrip.tistory.com/137

https://it-eldorado.tistory.com/176

윈도우 터미널 관리자권한 세팅

DRF 설치 → 세팅

https://parksrazor.tistory.com/662

파이참에서 db 연동

https://dentuniverse.tistory.com/entry/Docker-윈도우에서-django-컨테이너-mysql-컨테이너-연동시키기

⇒ 이제 하이디 안씀

 

2. sql쿼리문제 업데이트

-- 문제 10
-- 수원팀(K02) 과 대전팀(K10) 선수들 중 포지션이 골키퍼(GK) 인 
-- 선수를 출력하시오
-- 단 , 팀명, 선수명 오름차순 정렬하시오
SELECT p.player_name,
	(SELECT t.team_name 
	FROM team t 
	WHERE t.team_id = p.team_id 
	ORDER BY t.team_name) AS team_name
from player p
WHERE p.position = 'GK' and
	(p.team_id = "k02" OR p.team_id = "k10")
ORDER BY p.player_name;
-- #스칼라 서브쿼리


-- 문제 12
-- 수원팀(K02) 과 대전팀(K10) 선수들 중
-- 키가 180 이상 183 이하인 선수들
-- 키, 팀명, 사람명 오름차순
SELECT p.height AS 키, 
	(SELECT t.team_name 
		FROM team t 
		WHERE t.team_id = p.team_id 
		ORDER BY t.team_name) AS 팀이름, 
	p.player_name AS 선수명
FROM player p
WHERE p.height BETWEEN 180 and 183 
	AND (p.team_id = "k02" OR p.team_id = "k10")
ORDER BY 1, 3;
-- #스칼라 서브쿼리 #order by 숏컷


-- 문제 13
-- 모든 선수들 중 포지션을 배정 받지 못한 선수들의 
-- 팀명과 선수이름 출력 둘다 오름차순
SELECT (SELECT t.team_name 
			FROM team t 
			WHERE t.team_id = p.team_id) AS 팀명,
		p.player_name AS 선수명
FROM player p
WHERE p.position = ''
ORDER BY 1, 2;
-- #스칼라 서브쿼리 #order by 숏컷


-- 문제 14
-- 팀과 스타디움, 스케줄을 조인하여
-- 2012년 3월 17일에 열린 각 경기의
-- 팀이름, 스타디움, 어웨이팀 이름 출력
-- 다중테이블 join 을 찾아서 해결하시오.
CREATE VIEW soccer_calender AS (SELECT t.team_name 홈, s.stadium_name 스타디움, 
	(SELECT t.team_name FROM team t WHERE t.team_id LIKE c.awayteam_id) 어웨이
FROM team t
	JOIN stadium s USING(stadium_id)
	JOIN schedule c USING(stadium_id)
WHERE c.sche_date = 20120317);

SELECT * FROM soccer_calender;
-- #스칼라 서브쿼리 #다중join #create view


-- 문제 18 (추가 문제)
-- 다음 조건을 만족하는 선수명단을 출력하시오
-- 소속팀이 삼성블루윙즈이거나
-- 드래곤즈에 소속된 선수들이어야 하고,
-- 포지션이 미드필더(MF:Midfielder)이어야 한다.
-- 키는 170 센티미터 이상이고 180 이하여야 한다.
SELECT player_id, player_name, team_id, POSITION, height,
case
	when team_id LIKE 'K02' then '삼성블루윙즈'
	when team_id LIKE 'K07' then '드래곤즈'
	ELSE '다른팀'
END AS tname
FROM player
WHERE (position LIKE 'MF')
AND (height BETWEEN 170 AND 180)
AND (team_id LIKE 'K02' OR team_id LIKE 'K07')
;

-- 문제 19 (그룹바이: 집계함수 - 딱 5개 min, max, count, sum, avg)
-- 평균키가 인천 유나이티스팀('K04')의 평균키  보다 작은 팀의
-- 팀ID, 팀명, 평균키 추출
-- 인천 유나이티스팀의 평균키 -- 176.59  
-- 키와 몸무게가 없는 칸은 0 값으로 처리한 후 평균값에 
-- 포함되지 않도록 하세요.
SELECT t.team_id, t.team_name, (SELECT round(AVG(p.height),2)
											FROM player p
											WHERE p.height NOT LIKE ''
												AND p.team_id like t.team_id
											) t_avg
FROM team t
HAVING t_avg < (SELECT AVG(ps.height) 
						FROM player ps 
						WHERE ps.team_id LIKE 'k04')
-- #집계함수 #having #스칼라 서브쿼리 #서브쿼리


-- 문제 22
-- 선수 자신이 속한 팀의 평균키보다 작은  선수 정보 출력
SELECT p.player_name, p.height
FROM player p
WHERE p.height NOT LIKE ''
	AND p.height < (SELECT AVG(ps.height) 
						FROM player ps 
						WHERE p.team_id = ps.team_id
							AND ps.height NOT LIKE ''
						GROUP BY ps.team_id
								)
-- #서브쿼리 #집계함수

 

3. ㅁㅁㄹ

이해 못하고 애써 따라가는 게 이젠 익숙해 짐.

 

이래도 되는 건가?

'TIL & WIL' 카테고리의 다른 글

23.06.18. TIL 아닌 일기  (0) 2023.06.18
22.08.09. 노마드코더-리액트JS(마클 선수 강의)수강  (0) 2022.08.10
22.05.24. TIL  (0) 2022.05.25
22.05.23 TIL  (0) 2022.05.24
WIL 2주차 & ES 조사  (0) 2022.05.22

댓글