My footsteps

오라클 SQL / 7 본문

국비수업/수업정리

오라클 SQL / 7

밀김 2023. 4. 28. 11:15
728x90

 

 

 

 

 

 

 

 

 

 

 

- 먼저 실행되길 원할때 > 서브쿼리 사용

 

- 서브쿼리 안에 서브쿼리를 넣을 수도 있다

 

- SELECT * FROM (SELECT ROWNUM NUM, M.* FROM (SELECT * FROM MEMBER ORDER BY REGDATE DESC)M) WHERE NUM BETWEEN 1 AND 5; ▶ 별칭 붙이기

 

 

 

 


< 나이대별 회원수 구하기 20대,30대별.... >

SELECT 
    FLOOR(AGE/10)*10 AGE,
    COUNT(ID) COUNT 
FROM MEMBER 
GROUP BY FLOOR(AGE/10)*10
ORDER BY AGE;

 

 

- GROUP BY에서는 별칭을 못쓴다

 

 

< 인서트 복습 >

 

- INSERT INTO NOTICE(TITLE,CONTENT,MEMBER_ID) VALUES('여름','수박',0525);
COMMIT; 

 

 

 

 

 

 

<다른 테이블(NOTICE)에서 다른 테이블(MEMBER)의 정보를 가져오는 쿼리>

- 별칭을 안쓴버전

SELECT
    MEMBER_ID,
    (SELECT NAME FROM MEMBER WHERE ID=MEMBER_ID) MEMBER_NAME,--컬럼명--
    (SELECT EMAIL FROM MEMBER WHERE ID=MEMBER_ID) MEMBER_EMAIL,--WHERE : 이 조건에 해당하는게 어딘지?--
    COUNT(ID) COUNT
FROM NOTICE
GROUP BY MEMBER_ID;

 

 

 

 

- 별칭을 쓴 버전(별칭을 붙여주면 어디 테이블의 무슨값을 가져오는지 알수 있기 때문에 별칭을 붙여주는게 좋다)

SELECT
    N.MEMBER_ID,
    (SELECT NAME FROM MEMBER WHERE ID=N.MEMBER_ID) MEMBER_NAME,--컬럼명--
    (SELECT EMAIL FROM MEMBER WHERE ID=N.MEMBER_ID) MEMBER_EMAIL,--WHERE : 이 조건에 해당하는게 어딘지?--
    COUNT(N.ID) COUNT
FROM NOTICE N ▶ NOTICE 테이블의 별칭
GROUP BY N.MEMBER_ID;
//바깥쪽 셀렉문의 FROM이 어디인지 알면 제일 큰틀의 테이블을 어디로 쓰는지 알수있다

 

 

- WHERE절 쓰는 이유 : 하나의 값만 나오게 하려고

 

 

- 서브쿼리는 무조건 써야한다!! 

 

 

 

 

 

 

< JOIN : 합치기 >

 

- 참조된 테이블을 부모테이블 이라고 한다 (참조테이블을 갖고있으면 자식테이블)

 

 

 

 

 

저 두개가 합쳐지는것을 조인 이라고 한다

 

 

- 왼쪽이 행위자(먼저 태어난 부모) 삼발이 하나만 갖고 있는 쪽이 부모

 

 

 

- 조인을 할때는 무조건 (참조하고 있는 키를 갖고있는)자식을 위주로 조인한다

 

 

 

- 자식을 갖고 있지 않은 부모는 빠지게 되는데 이걸 아우터(OUTER JOIN)라고 하고, 자식을 갖고 있는 부모는 합쳐지는데 이걸 이너(INNER 조인) 라고 한다 

 

 

 

- 부모에 드래곤이 없기 때문에 이 관계 또한 아우터이다 

 

 


- SELECT * FROM MEMBER JOIN NOTICE ON MEMBER.ID = NOTICE.MEMBER_ID;   JOIN 예시

 

- SELECT * FROM MEMBER INNER JOIN NOTICE ON MEMBER.ID = NOTICE.MEMBER_ID;   INNER JOIN예시 

 

 

- 하지만 실질적으로 사용하는건 OUTER JOIN을 많이 쓴다

 

 

 

 - 회원의 모든 OUTER를 껴주고 싶다고 하면(JOIN) LEFT,RIGHT 하면 된다  > FULL 이라고함

 

 

- 조인했을때 없는건 NULL로 채워진다

 

 

조인했을때 컬럼명이 겹치니까 별칭을 붙여준다

 

 

 

 

 

 

 

 

 

728x90

'국비수업 > 수업정리' 카테고리의 다른 글

오라클 SQL / 9 + 마리아 DB  (0) 2023.05.02
오라클 SQL / 8  (0) 2023.05.01
오라클 SQL / 6  (0) 2023.04.27
오라클 SQL / 5  (0) 2023.04.25
오라클 SQL / 4  (0) 2023.04.25