UNION

Hyuntae Jung·2022년 7월 25일
0

MS SQL

목록 보기
18/41
post-thumbnail

1. UNION

2. 데이터 생성

CREATE TABLE member01(
	id INT,
	name NVARCHAR(20),
	tel NVARCHAR(13),
	address NVARCHAR(50)
);

INSERT member01 VALUES(1, '김말똥', '010-1111-1234', '서울시 용산구 한남동');
INSERT member01 VALUES(2, '유재석', '010-1234-1234', '서울시 용산구 한남동');
INSERT member01 VALUES(3, '강호동', '010-4352-1234', '서울시 용산구 한남동');
INSERT member01 VALUES(4, '이경규', '010-2222-1234', '서울시 용산구 한남동');


CREATE TABLE member02(
	number INT,
	irum NVARCHAR(20),
	hp NVARCHAR(13),
	lc NVARCHAR(50)
);

INSERT member02 VALUES(3, '김관우', '010-1542-6548', '서울시 강남구 역삼동');
INSERT member02 VALUES(4, '김구라', '010-2132-1234', '서울시 강남구 대치동');
INSERT member02 VALUES(5, '강호동', '010-4352-1234', '서울시 용산구 한남동');
INSERT member02 VALUES(6, '김유비', '010-7676-2328', '서울시 용산구 이촌동');
INSERT member02 VALUES(7, '유재석', '010-1234-1234', '서울시 용산구 한남동');

3. UNION

SELECT * FROM member01
SELECT * FROM member02;

SELECT * FROM member01
UNION
SELECT * FROM member02;

데이터를 편집한다.

SELECT * FROM member01
SELECT * FROM member02;

SELECT * FROM member01
UNION
SELECT * FROM member02;

위와 같이 중복된 값은 한번만 출력된다.

4. INTERSECT

: 두번째 쿼리의 결과에 해당하는 것만 조회한다.

SELECT * FROM member01
INTERSECT
SELECT * FROM member02
WHERE irum ='강호동';

SELECT * FROM MEMBER02
INTERSECT
SELECT * FROM MEMBER02
WHERE LC LIKE '%한남동';

정규표현식: https://gent.tistory.com/453

5. EXCEPT

:두번째 쿼리의 결과를 제외한 나머지를 조회한다.

SELECT * FROM MEMBER01
SELECT * FROM MEMBER02

--EXCEPT :두번째 쿼리의 결과를 제외한 나머지를 조회한다.
SELECT * FROM MEMBER01
EXCEPT
SELECT * FROM MEMBER02
WHERE lc LIKE '%한남동';

member02에서 한남동에 해당하는 강호동, 유재석을 제외하면
member01에서 남는 것은 김말똥, 이경규이므로 위와 같이 추출된다.

6. CROSS JOIN(상호조인)

: 한쪽 테이블의 모든 행들과 다른쪽 테이블의 모든 행을 조인하는 방식이다. 테스트용으로 많은 양의 데이터를 생성하고자 할 때 주로 사용하는 방식이다.

SELECT *
  FROM member01, member02;

SELECT *
  FROM member01
CROSS JOIN member02; -- ON을 사용할 수 없다.

SELECT *
  FROM member01, member02;

와 같이 사용하는 것이 바람직하다.

강의: ms sql 2014 제대로 배우기 1

0개의 댓글