Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- Graph
- 윤성우의 열혈 자료구조
- datastructure
- s
- Stack
- 이스케이프 문자
- 이것이 자바다
- coding test
- stream
- Selection Sorting
- Serialization
- R
- 윤성우 열혈자료구조
- JSON
- 메모리구조
- buffer
- 알기쉬운 알고리즘
- C programming
- C 언어 코딩 도장
- insertion sort
- list 컬렉션
- 혼자 공부하는 C언어
- Algorithm
Archives
- Today
- Total
Engineering Note
SQL - 테이블 제어하기 본문
데이터 그룹 짓기 - goup by
- 1번 회원, 2번회원, 3번회원이 있는 도서관에서 1번회원이 책 A, B를 3번 회원이 책 C를 빌렸다. 이때 2번횟원은 책을 빌리지 않았고, 책을 빌린 회원은 1번, 3번 회원이다. 이때, group by를 통해 책을 빌린회원을 추출 할 수 있다.
데이터 그룹에 조건 적용하기 - having
두개의 테이블에서 조회하기
두 테이블의 정보를 한 번에 조회 - INNER JOIN, LEFT JOIN, RIGHT JOIN
두 테이블 간 교집합 - inner join
select *
from rental;
select *
from user;
rental테이블에는 누가 어느 책을 빌려 갔는지 저장되어 있습니다.
하지만 회원이 id로 저장되어 있기에 id만 보고 누가 빌려 갔는지 알기 힘듭니다.
따라서 rental 테이블을 조회할 때, user 테이블을 연결해 같이 조회해 봅시다.
- rental 테이블과 user 테이블을 연결
select *
from rental
inner join
user;
- 하지만 위처럼 조건이 없이 연결하면 rental 테이블의 한 행의 user테이블의 모든 값이 곱해져서 연결되었다. 이렇게 무작정 두 테이블이 연결만 된다. 그래서 조건을 주어야한다.
select *
from rental
inner join user
on rental.user_id = user.id;
null값을 포함시켜 테이블 연결 left join
- left join은 inner join과 다르게 반드시 on 조건이 들어가야 한다.
inner join vs left join
- inner join은 두 테이블이 겹치는 데이터만 가지고 오지만 left join은 왼쪽의 테이블을 모두 가져오고 겹치는 부분을 기준으로 연결까지 한다.
left join은 두 번째 테이블의 정보가 없어도 연결하여 첫 번째 테이블의 정보를 모두 불러온다. 두 테이블을 연결 할 때 왼쪽 테이블을 기준으로 모든 값을 포함하여 연결할 수 있습니다.
select \*
from salaries
left join
employees
on salaries.emp\_no = employees.emp\_no;
select \*
from salaries
inner join
employees
on salaries.emp\_no = employees.emp\_no;
left join과 반대로 right join은 오른쪽 테이블의 모든 값을 포함하여 연결할 수 있습니다.
'Computer Science > Database' 카테고리의 다른 글
MongoDB를 활용한 CRUD (0) | 2021.07.19 |
---|---|
NoSQL (0) | 2021.07.19 |
SQL 서브쿼리 (0) | 2021.07.17 |
SQL과 함수 (0) | 2021.07.16 |
SQL (0) | 2021.07.14 |
Comments