집합 연산
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 |