일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 따라하며 배우는 노드 리액트 기본 강의
- Colaboratory 글자 깨짐
- Do it 자바스크립트 + 제이쿼리 입문
- JS 개념
- spring-boot
- 자바스크립트
- Python
- 리액트
- Concurrently
- 타자 게임 만들기
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- DB Browser
- 모던자바스크립트
- intellij
- 노드에 리액트 추가하기
- 계산맞추기 게임
- 거북이 대포 게임
- 인프런
- react
- 웹 게임을 만들며 배우는 리액트
- react오류
- node.js로 로그인하기
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- node.js 설치
- 모두의 파이썬
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- vs code 내 node
- googleColaboratory
- Spring-Framework
- props
- Today
- Total
프로그래밍 삽질 중
SQL 조인 설명 및 예제 본문
※ 조인
- 두 개 이상의 테이블을 연결하여 하나의 테이블처럼 출력
- 여러 테이블 사용 시 FROM 이용
- 조인 조건이 없을 때 단점 1 : 연결하는 두 개의 데이터가 일치 하지 않아도 함께 출력
- 조인 조건이 없을 때 단점 2 : 어떤 조건으로 연결해야할 지 기준을 작성자가 직접 지정
- 조인 조건이 없을 때 단점 3 : WHERE절을 이용해 출력 행을 선정하는 조건절 명시
- 조인 조건이 없을 때 단점 4 : 서로 다른 테이블에 같은 이름의 열 구분 -> 테이블 이름. 열 이름
※ 조인 종류
- 곱집합 : 가능한 모든 행 조합해서 조인
- 동등 조인(등가조인) : 조인 조건이 정확히 일치 -> 결과 출력
- 비동등 조인 : 조인 조건이 일치X -> 결과 출력
- 외부 조인 : 조인 조건이 일치X -> 결과 출력
- 자체 조인 : 자체 테이블끼리 조인
[예시1]
사원 정보를 포함해 근무 부서 이름(EMP)과 부서 위치 정보(DEPT) 조회
1
2
3
|
SELECT *FROM EMP, DEPT
ORDER BY EMPNO; //EMP, DEPT 다 EMPNO를 가짐
|
cs |
[예시2]
EMP 테이블(별칭 E)과 DEPT(별칭 D) 테이블 간 비교(EMPNO 기준으로 정렬)
1
2
3
4
|
SELECT *
FROM EMP E, DEPT D --E, D는 임의로 붙임
WHERE E.DEPTNO = D.DEPTNO
ORDER BY EMPNO;
|
cs |
[예시 3] - 등가조인
여러 테이블의 열 이름(DEPTNO)이 같을 경우 -> 어느 열에 속해 있는지 명시하기
사원정보, 이름 , 부서정보, 부서이름, 지역 출력 / 사원정보 기준으로 정렬
1
2
3
4
5
|
SELECT
E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME, D.LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
ORDER BY EMPNO;
|
cs |
[예시 4] - 비등가조인
EMP 테이블과 SALGRADE 테이블(각 등급정보, 등급 관련 최소금액, 최대 금액)은 서로 연결하기가 부적합
사원들의 급여 등급을 포함한 사원 정보 출력
1
2
3
|
SELECT *
FROM EMP E, SALGRADE S
WHERE E.SAL BTWEEN S.LOSAL AND S.HISAL;
|
cs |
[예시 5] - 자체조인
하나의 테이블을 여러 개 테이블처럼 사용
EMP 테이블에는 직속상관의 사원번호가 저장되어 있음
사원의 이름과 해당 사원의 직속상관 이름을 나란히 출력 -> EMP 2번 사용
1
2
3
4
5
6
|
SELECT
E.EMPNO, E.ENAME, E.MGR,
M.EMPNO AS MGR_NO, --상관 번호로 저장
M.ENAME AS MGR_NAME --상관 이름으로 저장
FROM EMP E, EMP M
WHERE E.MGR = M.EMPNO;
|
cs |
[예시 6] - 외부조인 : 직원 정보와 상사 정보와 함께 출력
조건을 만족하지 않는 행도 강제로 출력
왼쪽 외부조인(오른쪽에 (+) 삽입), 오른쪽 외부조인(왼쪽에 (+) 삽입)
(+)가 들어간 부분은 NULL값으로 나옴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-- 왼쪽 외부 조인 사용
SELECT
E.EMPNO, E.ENMAE, E.MGR,
M.EMPNO AS MGR_NO,
M.ENMAE AS MGR_NAME
FROM EMP E, EMP M
WHERE E.MGR = M.EMPNO(+)
-- MGR, MGR_NO, MGR_NAME이 NULL
-- 사원번호, 사원이름은 나오나 상사 관련 내용X
ORDER BY E.EMPNO;
-- 오른쪽 외부 조인 사용
SELECT
E.EMPNO, E.ENMAE, E.MGR,
M.EMPNO AS MGR_NO,
M.ENMAE AS MGR_NAME
FROM EMP E, EMP M
WHERE E.MGR(+) = M.EMPNO
-- EMPNO, ENAME, MGR이 NULL
-- MGR_NO나 MGR_NAME은 나오나 EMPNO, ENAME, MGR은 NULL
ORDER BY E.EMPNO;
|
cs |
※ 표준문법 조인
1) JOIN ~ USING : 등가 조인을 대신해 조인
- USING을 통해 사용할 열 명시
[예시 7] - 급여가 5000이상인 사원들의 정보와 근무부서 출력하기
1
2
3
4
5
6
7
|
SELECT
E.EMPNO, E.ENAME, E.JOB, E.MGR,
E.HIREDATE, E.SAL, E.COMM,
DEPTNO, D.DNAME, D.LOC
FROM EMP E JOIN DEPT D USING(DEPTNO)
WHERE SAL >= 5000
ORDER BY DEPTNO, E.EMPNO;
|
cs |
2) JOIN~ON : USING 대신에 ON사용
[예시 8] - 급여가 5000이상인 사원들의 정보와 근무부서 출력하기
1
2
3
4
5
6
7
|
SELECT
E.EMPNO, E.ENAME, E.JOB, E.MGR,
E.HIREDATE, E.SAL, E.COMM,
DEPTNO, D.DNAME, D.LOC
FROM EMP E JOIN DEPT D ON(E.DEPTNO = D.DEPTNO)
WHERE SAL >= 5000
ORDER BY DEPTNO, E.EMPNO;
|
cs |
3) OUTER JOIN : 외부 조인에 사용함, WHERE이 아닌 FROM에서 조인 설정
- 왼쪽 외부조인(LEFT OUTER , 오른쪽 외부 조인, 전체 외부조인(FULL OUTER JOIN) 있음
[예시 9] 직원 정보와 상사 정보와 함께 출력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | -- 왼쪽 외부 조인 사용 SELECT E.EMPNO, E.ENMAE, E.MGR, M.EMPNO AS MGR_NO, M.ENMAE AS MGR_NAME FROM EMP E LEFT OUTER JOIN EMP M ON(E.MGR = M.EMPNO) -- MGR, MGR_NO, MGR_NAME이 NULL -- 사원번호, 사원이름은 나오나 상사 관련 내용X ORDER BY E.EMPNO; -- 오른쪽 외부 조인 사용 SELECT E.EMPNO, E.ENMAE, E.MGR, M.EMPNO AS MGR_NO, M.ENMAE AS MGR_NAME FROM EMP E RIGHT OUTER JOIN EMP M ON(E.MGR = M.EMPNO) -- EMPNO, ENAME, MGR이 NULL -- MGR_NO나 MGR_NAME은 나오나 EMPNO, ENAME, MGR은 NULL ORDER BY E.EMPNO; | cs |
'과거 프로그래밍 자료들 > SQL(Oracle)' 카테고리의 다른 글
SQL 제약 조건 설명 및 예제 (0) | 2021.03.22 |
---|---|
SQL INSERT, UPDATE, DELETE & DDL 설명 및 예제 (0) | 2021.03.22 |
SQL 함수 설명 및 예제 (0) | 2021.03.17 |
SQL 기초 (2) 데이터 타입 및 출력방법 (결과 값 제외) (0) | 2021.03.16 |
SQL 기초 (1) 데이터 타입 및 출력방법 (결과 값 존재) (0) | 2021.03.16 |