Day12 . 2023.03.20
오늘부터는 제목의 KDT를 포함하지 않고 DAY별이 아닌 자료 파트별로 정리해 보겠다.
KDT 과정을 수강하며 그날 배운 내용의 확인과 복습을 위해 꾸준히 글을 써보려고 한다.
사전적인 지식보단 알기 쉽게 풀어놓은 내용으로 구성하고자 한다.
# 오늘 목표 :큰테이블을 작은테이블로 나누기
# 큰 테이블은 자주쓰는것,작은 테이블은 자주 안쓰는것 모아두는 형태로
#RDBMS 특징 -> 다른 테이블을 쪼개놓고 서로 연관성을 주어 연계 시킬 수 있다.(관계성이 있는 필드 끼리 연결해준다.)
테이블 값
member
profile
1.조인 : 테이블을 합쳐서 표현
문법
select 필드명1,필드명2,..... from 테이블1[inner,left,right] join 테이블2 on 테이블1.연결할 필드 = 테이블2.연결할 필드;
●inner 조인
조인하는 테이블의 on 절의 조건이 일치하는 결과만 출력
join , inner join ,cross join 같은 의미로 사용됨
select userid, username, hp, height, mbti from member inner join profile on member.userid = profile.userid;
#Error Code: 1052. Column 'userid' in field list is ambiguous
#어떤 테이블의 userid인지 모르겟음 ( as 로 별명 지정)
select m.userid, m.username, m.hp, p.height, p.mbti
from member as m inner join profile as p on m.userid = p.userid;
●left / right outer 조인
●두 테이블이 조인 될 때 왼쪽/오른쪽 기준으로 햇느냐의 따라 기준 테이블의 것을 모두 출력
●outer join은 조인하는 테이블의 on 절의 조건 중 한쪽의 데이터를 모두 가져옴
●left outer join, right outert join ,full outer join 이렇게 3가지 있음
●full outer join 은 거의 사용하지 않음 -> 성능상의 문제와 데이터가 모두 다 뿌려지기 때문에 굳이 사용 x
예시)
select m.userid, m.username, m.hp, p.height, p.mbti
from member as m left outer join profile as p on m.userid = p.userid; # #member 기준으로 뽑으니 profile 에 없는 테이블은 null값으로 나옴
select m.userid, m.username, m.hp, p.height, p.mbti
from member as m right outer join profile as p on m.userid = p.userid;
# 이것은 profile 테이블 자체를 foreign key로 묶엇기에 inner 와 다른게 없음
'코딩공부 > DBMS' 카테고리의 다른 글
DBMS(MySQL)_문자열함수 (3) | 2023.03.23 |
---|---|
DBMS(MySQL)_서브 쿼리 (sub Query) (0) | 2023.03.23 |
DBMS(MySQL)_데이터 정규화 (0) | 2023.03.23 |
DMBS(MySQL)_연산자,정렬문,조건문 (2) | 2023.03.23 |
DBMS(MySQL) _기본 개념,문법 (1) | 2023.03.23 |