[JOIN]
: 두개 이상의 표를 연결해서 하나의 데이터로 보여주는 것.
데이터베이스는 뼈대이다.
정규화 작업 - 표를 나누는 작업
제 1 정규화 작업 : NULL을 허용하지 않는다. (표를 나누는 작업)
제 2 정규화 작업 : 중복을 허용하지 않는다. (중복되는 데이터가 있다면 그안에 표를 또 나눈다)
제 3 정규화 작업 -
-
BCNF 역정규화 : 나눈 표를 다시 합치는 작업(필요한 데이터 합치기)
-> 개발자가 제 2 정규화 까지는 만들어 놔야 한다.
EQUL JOIN : 같은 데이터를 연결할 때 사용하는 JOIN (=)
컬럼명의 모호성.
--[EQUL JOIN : 같은 데이터를 연결할 때 사용하는 join] --프라이머리키 기본키 (나라는걸 알려주기위한(식별을 위한)) select empno,ename,sal,dname from emp,dept where emp.deptno = dept.deptno and ename='FORD' -- 컬렴 명의 모호성 해결(dept가 어느 테이블의 dept인지모름) select e.empno,e.ename,d.deptno,d.dname from emp e,dept d --(emp 와 e는 다른거. 가상테이블)) where e.deptno = d.deptno
NON-EQUL JOIN: 범위를 지정하여 사용하는 JOIN (관계 연산자 , <=,>=,<,>)
select empno,ename,dname,sal,grade from emp,salgrade,dept where emp.sal between salgrade.losal and salgrade.hisal and emp.deptno = dept.deptno
SELF JOIN : JOIN할 대상이 나와 나 (= eaul join)
*내가 지정한 이름으로 복사한 가상테이블 만들 수 있음.
- emp를 복사한 가상테이블 e1 , emp를 복사한 가상테이블 e2
- 별칭을 준다는건 워크테이블을 만든다는것.select e1.empno,e1.ename,e1.mgr,e2.ename from emp e1,emp e2 where e1.mgr = e2.empno
OUTER JOIN : 없는 것들은 빈공간이라도 출력하기 (연산자 (+)이용)
select e1.empno,e1.ename,e1.mgr,e2.ename from emp e1,emp e2 where e1.mgr = e2.empno (+)
[서브 쿼리]
- 하나의 메인쿼리(SQL)에 포함되어 있는 또 다른 SQL문 (또 다른 쿼리의 재료로 쓰인다.)
- 결과가 하나만 나오면 단일행 서브쿼리라고 하며 그룹 함수(ex.count)와 같이 사용된다.
- 결과가 여러개 나오면 다중행 서브쿼리. 연산자를 사용하여야한다. (연산자 : IN, ANY,ALL,EXIST 등)
- in (=) : or와 같은 하나라도 만족하면 참. = 으로 비교.
- all : 비교 조건이 검색 결과와 모두 일치해야함, 단일행 서브쿼리(최대값)
- any : 비교 조건이 검색 결과와 하나라도 만족하면 참. 단일행 서브쿼리 (최소값)
select dname,loc from dept where deptno = (select deptno from emp where ename = 'FORD') select a.* ,dname from (select empno ,ename,sal,deptno from emp)a , dept where a.deptno = dept.deptno and sal >=2000 select empno,ename,sal from emp --where sal>1600 or sal>1250 or sal>2850 or sal>1500 or sal>950 where sal>any (select sal from emp where deptno = 30 ) select empno, ename, sal from emp where deptno = (select deptno from emp where sal> ( select avg(sal) from emp)and ename like '%S%')
'개발자 > 백엔드 웹 개발자 과정(국비)' 카테고리의 다른 글
| 2022년 12월 19일 _ 29회차 (JDBC) (0) | 2022.12.19 |
|---|---|
| [DB]테이블 생성, 삭제, 수정, 데이터 생성, 수정, 삭제 (0) | 2022.12.16 |
| [DB]정리 (0) | 2022.12.14 |
| [DB]날짜데이터, 형변환,NVL,DECODE,GROUP BY (0) | 2022.12.14 |
| [DB]특정 데이터 추출,SQL함수 (0) | 2022.12.13 |