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', '서울시 용산구 한남동');
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;
위와 같이 중복된 값은 한번만 출력된다.
: 두번째 쿼리의 결과에 해당하는 것만 조회한다.
SELECT * FROM member01
INTERSECT
SELECT * FROM member02
WHERE irum ='강호동';
SELECT * FROM MEMBER02
INTERSECT
SELECT * FROM MEMBER02
WHERE LC LIKE '%한남동';
정규표현식: https://gent.tistory.com/453
:두번째 쿼리의 결과를 제외한 나머지를 조회한다.
SELECT * FROM MEMBER01
SELECT * FROM MEMBER02
--EXCEPT :두번째 쿼리의 결과를 제외한 나머지를 조회한다.
SELECT * FROM MEMBER01
EXCEPT
SELECT * FROM MEMBER02
WHERE lc LIKE '%한남동';
member02
에서한남동
에 해당하는강호동
,유재석
을 제외하면
member01
에서 남는 것은김말똥
,이경규
이므로 위와 같이 추출된다.
: 한쪽 테이블의 모든 행들과 다른쪽 테이블의 모든 행을 조인하는 방식이다. 테스트용으로 많은 양의 데이터를 생성하고자 할 때 주로 사용하는 방식이다.
SELECT *
FROM member01, member02;
SELECT *
FROM member01
CROSS JOIN member02; -- ON을 사용할 수 없다.
SELECT * FROM member01, member02;
와 같이 사용하는 것이 바람직하다.
강의: ms sql 2014 제대로 배우기 1