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 |
댓글