Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- python
- String Method
- 알고리즘
- 노마드코딩
- 알고리즘 스터디
- 데이터시각화
- Algorithm
- dataframe
- 선그래프
- pandas
- 가상환경
- NumPy
- Stack
- 파이썬
- 정보처리기사 c언어
- Matplotlib
- javascript
- 코딩테스트
- Selenium
- openCV
- programmers
- 프로그래머스
- queue
- MySQL
- 자료구조
- Join
- aws jupyter notebook
- 알고리즘스터디
- type hint
- 백준
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[MySQL] VIEW 본문
▶ VIEW 란,
일반 사용자 입장에서 테이블과 동일하게 사용하는 객체이다.
뷰를 생성한 후에는 테이블처럼 접근 가능하여 동일한 결과를 얻을 수 있다.
※ 주의 ! 뷰는 select 라는 쿼리를 선택해서 새로운 객체로 저장한 것. 테이블이 아님.
사용하는 이유
- 보안에 도움(사용자가 중요한 정보에 바로 접근하지 못함)
- 복잡한 쿼리 단순화(긴 쿼리를 뷰로 작성, 뷰를 테이블처럼 사용 가능)
단점
- CPU 사용으로 인한 처리속도 저하
- 부모 쿼리와 어떤 식으로든 연관된 서브 쿼리라서 부모 쿼리의 데이터가 변경되는 것에 영향을 받음.
▶ VIEW 생성
create view 뷰이름 as select 명령어
mysql> CREATE VIEW sample54v as SELECT * FROM sample54;
-> SELECT * FROM sample54v;
+------+------+
| no | a |
+------+------+
| 1 | 100 |
| 2 | 900 |
| 4 | 900 |
| 3 | 20 |
+------+------+
mysql> SELECT * FROM sample54;
+------+------+
| no | a |
+------+------+
| 1 | 100 |
| 2 | 900 |
| 4 | 900 |
| 3 | 20 |
+------+------+
sample54를 가져와서 생성한 뷰인 sample54v를 확인해 보면 원본인 sample54 테이블과 같은 결과가 나온다.
▶ 뷰의 열 이름 지정하기
CREATE VIEW sample54v(n, v, v2) AS SELECT no, a, a*2 FROM sample54;
원본 테이블에서 뷰를 생성할 때 새로운 열 이름을 지정할 수 있다. ( 원하는 조건으로 연산해서 지정도 가능)
mysql> SELECT * FROM sample54v;
+------+------+------+
| n | v | v2 |
+------+------+------+
| 1 | 100 | 200 |
| 2 | 900 | 1800 |
| 4 | 900 | 1800 |
| 3 | 20 | 40 |
+------+------+------+
mysql> SELECT * FROM sample54v WHERE n = 1;
+------+------+------+
| n | v | v2 |
+------+------+------+
| 1 | 100 | 200 |
+------+------+------+
mysql> SELECT * FROM sample54v ORDER BY v2 LIMIT 2;
+------+------+------+
| n | v | v2 |
+------+------+------+
| 3 | 20 | 40 |
| 1 | 100 | 200 |
+------+------+------+
그리고 이렇게 SELECT문에서 사용할 수 있는 여러 명렁문, 기능 등을 활용할 수 있다.
※ 주의! 데이터 변경은 불가능!!
▶ VIEW 삭제
DROP VIEW sample54v;
'Database > MySQL' 카테고리의 다른 글
[MySQL] JOIN 테이블 결합하기(INEER, OUTER, CROSS, SELF) (0) | 2022.09.21 |
---|---|
[MySQL] 조건문과 NULL ( IF, CASE, COALESCE, IFNULL) (0) | 2022.09.20 |
[MySQL] 문자 관련 함수 정리 (0) | 2022.09.19 |
[MySQL] 숫자 관련 함수 정리 (0) | 2022.09.18 |
[MySQL] subquery 서브쿼리 기본 사용예제 (0) | 2022.09.18 |