MySQL 뷰 생성 CREATE VIEW

Jmnote bot (토론 | 기여)님의 2022년 9월 21일 (수) 16:33 판 (봇: 자동으로 텍스트 교체 (-</source> +</syntaxhighlight>, -<source +<syntaxhighlight ))
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

MySQL CREATE VIEW
MySQL 뷰 생성
sql
Copy
CREATE VIEW 뷰이름
AS SELECT문

2 예시[ | ]

Console
Copy
mysql> SELECT * FROM Orders;
+---------+------------+------------+------------+-----------+
| OrderID | CustomerID | EmployeeID | OrderDate  | ShipperID |
+---------+------------+------------+------------+-----------+
|   10354 |         58 |          8 | 1996-11-14 |         3 |
|   10355 |          4 |          6 | 1996-11-15 |         1 |
|   10356 |         86 |          6 | 1996-11-18 |         2 |
+---------+------------+------------+------------+-----------+
3 rows in set (0.00 sec)
Console
Copy
mysql> CREATE VIEW OrdersForEmployee6 AS
    -> SELECT OrderID,CustomerID,OrderDate FROM Orders WHERE EmployeeID=6;
Query OK, 0 rows affected (0.00 sec)
Console
Copy
mysql> SELECT * FROM OrdersForEmployee6;
+---------+------------+------------+
| OrderID | CustomerID | OrderDate  |
+---------+------------+------------+
|   10355 |          4 | 1996-11-15 |
|   10356 |         86 | 1996-11-18 |
+---------+------------+------------+
2 rows in set (0.00 sec)

3 실습[ | ]

Console
Copy
mysql> CREATE VIEW emp_dept AS
    -> SELECT e.*, d.name department_name FROM employee e, department d
    -> WHERE d.id = e.department_id;
Query OK, 0 rows affected (0.07 sec)
Console
Copy
mysql> SELECT * FROM emp_dept;
+----+-----------+---------------+------------+-----------------+
| id | name      | department_id | birth_date | department_name |
+----+-----------+---------------+------------+-----------------+
|  1 | 한놈      |             1 | 1999-01-01 | 영업팀          |
|  2 | 두시기    |             2 | 2000-01-01 | 개발팀          |
|  3 | 석삼      |             2 | 1999-01-01 | 개발팀          |
+----+-----------+---------------+------------+-----------------+
3 rows in set (0.00 sec)
테이블명 변경 테스트
Console
Copy
mysql> RENAME TABLE employee TO emplyoee2;
Query OK, 0 rows affected (0.04 sec)

mysql> SELECT * FROM emp_dept;
ERROR 1356 (HY000): View 'test.emp_dept' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
→ 원본 employee 테이블을 참조할 수 없어서 오류

4 같이 보기[ | ]

5 참고[ | ]

편집자 J Jmnote Jmnote bot Reven henry
  • CentOS MySQL 설치
    RHEL5.x 버전에서 MySQL-5.5.45 버전 설치시, /usr/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data 와 같이 설정해 주지 않으면 정상 동작하지 않는 경우가 있었습니다. 확인 바랍니다.
  • MySQL BigDump
    'MySQL server has gone away'는 백업본 전체의 크기가 크다기 보다는, 특정 쿼리문 1개의 크기가 너무 커서 처리를 못하는 거라서, 이런 도구로 해결하기는 어려울 것 같습니다.J Jmnote
  • MySQL STRICT TRANS TABLES
    @Jmnote 감사합니다.~ John Jeong
  • MySQL 외래키 옵션 변경
    진짜 필요한 거였는데 이런걸 이제야 알다니 정말 감사합니다. 문태부
  • MySQL 컬럼명으로 테이블 찾기
    회사 가서 쓰기 좋은 코드 1추 Stly3466