DB

SQL 기초 2

MoonjuLee 2022. 6. 27. 18:47
조인(join) : (간단히 말하면)두개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것.
		join의 조건은 where절에 기술한다.

join의 종류 
1. equi-join : 두 개의 테이블 간에 갈럼값들이 정확하게 일치하는 경우에 사용
2. non-equi join : 두 개의 테이블간에 칼럼값들이 서로 정확하게 일치하지 않는 경우에 사용
3. self join : 두 개의 테이블들간에 join을 거는 것이 아니라 같은 테이블에 있는 행들을 join하는데 사용

Cartesian Product : 모든 가능한 행들의 조합

내부조인(inner join) :

ex) 상품테이블 : prod , 분류테이블 : lprod
select 	p.prod_lgu
	,	p.prod_id
    ,	p.prod_name
	,	l.lprod_gu
    ,	l.lprod_nm
from	lprod l, prod p
where	lprod_gu = prod_lgu;

위의 오라클 식으로 3개의 테이블을 내부 조인한다면 
where절과 밑에 and를 써줘 조인 조건 2개를 쓴다.
ex)	where 	~
	and		~;

※ansi로 표현
select	p.prod_lgu
	,	p.prod_id
    ,	p.prod_name
	,	l.lprod_gu
    ,	l.lprod_nm
from 	lprod l inner join prod p
on		(lprod_gu = prod_lgu);

위의 ansi는 from절에 on을 써 1개의 조인조건을 완성시킨 후 
또 inner join을 써서 2개의 조인조건을 만든다.
ex)	from a inner join b on(~)
		inner join c on(~);

 

<집계함수>
1. avg(column) : 조회 범위 내의 컬럼들의 평균값, 주의사항 avg를 쓸 때 데이터에 null값이 있으면
안되므로 nvl을 사용하여 null을 0으로 만들고 사용하는 것을 권장한다.
ex) select avg(distinct prod_cost) from prod; => 중복 값 제외 후 평균

2. count(column) : 조회 범위 내 해당 컬럼들의 자료 수, count(*)는 선택된 자료의 수
ex) select prod_lgu , count(*) from prod group by prod_lgu; => 상품테이블의 상품분류별 자료의 수

3. max(column), min(column) : 조회 범위의 컬럼값의 최대값, 최소값 
ex) select max(prod_cost) from prod; => 상품 비용의 최대값

4. sum(column) : 조회 범위 내 해당 컬럼들의 합계
ex) select sum(prod_cost) from prod; => 상품 비용의 합계

집계함수는 어떻게 추출되는지 이해하며 써야 할 것 같다. 그러므로 이해하자!(나도)

 

공부하며 업데이트 예정입니다!