◆ 조인 연신
- SELECT와 더불어 가장 많이 사용하는 옵션
- 두 개 이상의 테이블을 묶어서 하나의 결과 집합으로 만들어 내는 것
- 즉, 서로 다른 테이블에서 가져올 때 사용하는 것
- 분류
● INNER JOIN
- 조인하는 테이블의 조건이 일치하는 결과만 출력
ex)
> table emp
> table dept
> inner join
● LEFT OUTER JOIN
- 조인 연산을 할 때 왼쪽 테이블을 기준으로 조인
ex)
> left outer join
● RIGHT OUTER JOIN
- 조인 연산을 할 때 오른쪽 테이블을 기준으로 조인
ex)
> right outer join
◆ 집합
● 합집합(Full Outer Join)
- 집합 A에 속하거나 집합 B에 속하는 모든 원소로 이루어진 집합
- 두 SELECT 문의 결과를 모두 포함하는 최종 결과를 반환
ex)
> table tableA
> table tableB
> full outer join(tableA, tableB)
# 중복 제거
# 중복 허용
● 교집합
- 두 집합 A와 B가 공통으로 포함하는 원소로 이루어진 집합
- INNER JOIN과 동일
- 합집합, left, right join, inner join으로 구현 가능
ex)
> table tableA
> table tableB
> 교집합(곱집합으로 구현)
● 차집합
- 집합 A에는 속하지만 집합 B에는 속하지 않는 원소들로 이루어진 집합
- left, right join / 서브쿼리로 구현 가능
ex)
> table tableA
> table tableB
> 차집합(서브쿼리로 구현)
* str not in => not exists 도 가능
> table tableA
> table tableB
> 차집합(left join으로 구현)
● 대칭 차집합
- 둘 중 한 집합에는 속하지만 둘 모두에는 속하지 않는 원소들의 집합
ex)
> table tableA
> table tableB
> 대칭 차집합(group by + 합집합 이용)
> 대칭 차집합(서브쿼리 + 합집합 이용)
> 결과
● 곱집합
- 두 집합 A, B의 모든 요소들을 곱한 결과
◆ SQL 심화
● DCL
- 프로그래밍 보다는 MySQL 내부의 데이터를 제어하는 언어
- 데이터의 보안, 무결성, 회복 등을 정의하는 데 사용
- GRANT, REVOKE, COMMIT, ROLLBACK이 있음
- COMMIT, ROLLBACK은 TCL로 구분됨
● MySQL 사용자
- MySQL 사용자 계정을 추가해줄 수 있음
- 사용자를 추가하기 전에는 먼저 현재 존재하고 있는 사용자 계정을 확인하고 추가해야 함
- 사용자 추가 및 삭제 실습
▶ 안전모드 해제 및 user 목록 확인
▶ 추가
▶ 삭제
● GRANT 구문
- 사용자에게 권한을 주는 구문
GRANT [권한 타입] ON [데이터베이스.테이블명] TO 유저ID@localhost;
● REVOKE 구문
- 사용자에게 주었던 권한을 해제(회수)하는 구문
REVOKE [권한 타입] ON [데이터베이스.테이블명] FROM 유저ID@localhost;
'DBMS(SQL)' 카테고리의 다른 글
MySQL과 Java 연동 (0) | 2023.10.15 |
---|---|
데이터베이스 설계 과정(9일차) (0) | 2023.10.09 |
DBMS실습 (SQL 심화) - ORDER BY, LIMIT, DISTINCT, GROUP BY, 서브 쿼리, 다중 조건문(7일차) (0) | 2023.10.09 |
함수적 종속성 & 정규화 (6일차) (0) | 2023.10.09 |
트랜잭션(Transaction) (6일차) (0) | 2023.10.09 |