집합 연산

union 합집합


select * from sample71_a

union

select * from sample71_b; 두개의 테이블이 합쳐서 나온다 중복제거

열의 자료형이 일치해야 한다


select a from sample71_a 세개의 테이블의 결합

union

select b from sample71_b

union

select age from sample31;


select a as c from sample71_a

union

select b as c from sample71_b order by c; 별명을 붙여서 정렬한다


union all 중복을 제거하지 않고 합치기(union은 기본이 distict중복제거)

oracle 교집합 intersect 차집합minus(except)


테이블 결합

곱집합 적집합 카티전곱 요소종류1 x 요소종류2 의 개수가 된다

cross join 교차결합 곱집합으로

select * from sample72_x, sample72_y; 복수테이블 지정시 교차결합


select 상품.상품명, 재고수.재고수 from 상품, 재고수

  where 상품.상품코드 = 재고수.상품코드    결합조건

    and 상품.상품분류 = '식료품';                  검색조건


inner join 내부결합

select 상품.상품명, 재고수.재고수             

  from 상품 inner join 재고수                   

    on 상품.상품코드 = 재고수.상품코드      on으로 결합조건

  where 상품.상품분류 = '식료품';


foreign key 외부키 : 다른 테이블의 기본키를 참조하는 열


외부결합 left join right join(기준이 left or right)

select 상품3.상품명, 재고수.재고수

  from 상품3 left join 재고수

    on 상품3.상품코드 =  재고수.상품코드

  where 상품3.상품분류 = '식료품';


select 상품3.상품명, 재고수.재고수       구식방법은 되도록 사용하지 않는다

  from 상품3, 재고수

  where 상품3.상품코드 = 재고수.상품코드(+) (oracle:부재가능한 테이블의 열에 +)

    and 상품3.상품분류 = '식료품';


관계형 모델

릴레이션은 테이블

attribute(속성)은 열

tuple(튜플)은 행

union(합집합) union

difference(차집합) except

intersection(교집합) intersect

cartesian product(곱집합) from복수 테이블, cross join

selection(선택) 튜플의 추출은 where 데이터 검색

projection(투영) 반환될 열 지정

join(결합) 내부결합



'개발정보 > DB' 카테고리의 다른 글

SQL 첫걸음 8장 설계  (0) 2019.01.28
SQL 첫걸음 6장 생성과 삭제  (0) 2019.01.28
SQL 첫걸음 5장 집계와 서브쿼리  (0) 2019.01.28
SQL 첫걸음 4장 추가,삭제,갱신  (0) 2019.01.27
SQL 첫걸음 3장 정렬과 연산  (0) 2019.01.27
블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,