1. UNION
- 합집합을 나타내는 연산자
- 똑같은 row는 하나만 보여줌 (중복제거)
- 서로 같은 종류의 테이블(컬럼이 같아야 함)에서만 적용이 가능함
select 컬럼1, 컬럼2, ... from 테이블1 union select 컬럼1, 컬럼2, ... from 테이블2
*예시 테이블
# 두 개의 테이블의 데이터를 모두 보여줌
select code, name, price from product union select code, name, price from product_new;
2. UNION ALL
- 중복제거 x
# union all은 중복데이터를 제거하지 않음
select code, name, price from product union all select code, name, price from product_new;
3. VIEW
- 하나 이상의 테이블의 쿼리 결과를 가상의 테이블 형태로 보여주는 것
- 실제 데이터는 저장하지 않고, 쿼리를 미리 저장해두어 테이블처럼 사용할 수 있게 함
- 복잡한 쿼리나 자주 사용하는 쿼리를 간단하게 사용할 수 있도록 도와주는 가상의 테이블
- 테이블의 일부 열이나 행만 보여줄 수 있음(민감한 데이터를 보호)
- ORDER BY는 뷰를 조회할 때 별도로 사용하는 것을 추천
- INSERT/UPDATE 할 때 group by, join 복잡하게 적용된 뷰는 데이터를 추가하거나 수정하기 힘듦
create view 뷰이름 as 쿼리
# view 생성
create view vw_userinfo as select m.userid, m.name, m.gender, p.mbti from member as m inner join profile as p on m.userid = p.userid;
select * from vw_userinfo;
* VIEW 변경 및 삭제
# 뷰 변경하기
# alter view 뷰이름 as 쿼리
alter view vw_userinfo as select m.userid, m.name, m.gender, p.height, p.mbti from member as m inner join profile on m.userid = p.userid;
select * from vw_userinfo;
# 뷰 삭제하기
# drop view 뷰이름
drop view vw_userinfo;
'DBMS > MySQL' 카테고리의 다른 글
데이터베이스 사용자 관리 (DCL문) (0) | 2024.10.10 |
---|---|
MySQL 문자열 다루기 (0) | 2024.10.10 |
정규화된 테이블 간의 연결 (feat. join) (0) | 2024.10.10 |
테이블 설계 (feat. 정규화) (0) | 2024.10.10 |
테이블에 데이터 CRUD (DML문) (2) | 2024.10.08 |