조회수는 CREATE VIEW 문을 사용하여 생성됩니다.mysql이 뷰를 생성할 수 없는 문제에 대한 해결 방법: CREATE VIEW 문을 사용하여 뷰를 생성합니다. 코드는 [CREATE VIEW 329c7848abe3f239bf8abe905955e0b2 AS语句>기본 문법
구문 형식은 다음과 같습니다.
CREATE VIEW <视图名> AS <SELECT语句>
구문 설명은 다음과 같습니다.3fc120a62974e3a500e68b9c612170f3: 보기의 이름을 지정합니다. 이름은 데이터베이스에서 고유해야 하며 다른 테이블이나 뷰와 동일한 이름을 가질 수 없습니다. eed5c230ec1e936e29d1cc474d0d3a9d: 여러 기본 테이블이나 소스 뷰를 쿼리하는 데 사용할 수 있는 뷰를 생성하려면 SELECT 문을 지정합니다. 생성된 뷰의 SELECT 문 사양에는 다음과 같은 제한 사항이 있습니다. CREATE VIEW 권한 외에도 사용자는 작업과 관련된 기본 테이블 및 기타 뷰에 대한 관련 권한도 갖습니다.
SELECT 문은 시스템 또는 사용자 변수를 참조할 수 없습니다.
SELECT 문은 FROM 절에 하위 쿼리를 포함할 수 없습니다.
SELECT 문은 준비된 문 매개 변수를 참조할 수 없습니다.
뷰 정의에서 참조하는 테이블이나 뷰가 존재해야 합니다. 그러나 뷰를 생성한 후 정의가 참조하는 테이블이나 뷰를 삭제할 수 있습니다. CHECK TABLE 문을 사용하여 이러한 문제에 대한 뷰 정의를 확인할 수 있습니다.
뷰 정의에서 TEMPORARY 테이블(임시 테이블)을 참조할 수 없으며, TEMPORARY 뷰를 생성할 수 없습니다.
MySQL은 단일 데이터 테이블에 대한 뷰를 생성할 수 있습니다.
mysql> SELECT * FROM tb_students_info; +----+--------+---------+------+------+--------+------------+ | id | name | dept_id | age | sex | height | login_date | +----+--------+---------+------+------+--------+------------+ | 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +----+--------+---------+------+------+--------+------------+ 10 rows in set (0.00 sec)
【예제 1】
mysql> CREATE VIEW view_students_info -> AS SELECT * FROM tb_students_info; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM view_students_info; +----+--------+---------+------+------+--------+------------+ | id | name | dept_id | age | sex | height | login_date | +----+--------+---------+------+------+--------+------------+ | 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +----+--------+---------+------+------+--------+------------+ 10 rows in set (0.04 sec)
기본적으로 생성된 뷰에는 기본 테이블과 동일한 필드가 있습니다. 뷰 필드 이름을 지정하여 뷰를 생성할 수도 있습니다.
tb_students_info 테이블에 v_students_info라는 뷰를 생성한다. 입력 SQL 문과 실행 결과는 다음과 같다.
mysql> CREATE VIEW v_students_info -> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date) -> AS SELECT id,name,dept_id,age,sex,height,login_date -> FROM tb_students_info; Query OK, 0 rows affected (0.06 sec) mysql> SELECT * FROM v_students_info; +------+--------+------+-------+-------+----------+------------+ | s_id | s_name | d_id | s_age | s_sex | s_height | s_date | +------+--------+------+-------+-------+----------+------------+ | 1 | Dany | 1 | 24 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +------+--------+------+-------+-------+----------+------------+ 10 rows in set (0.01 sec)
MySQL에서는 CREATE VIEW 문을 사용하여 두 개 이상의 테이블에 뷰를 생성할 수도 있습니다.
【예제 3】
tb_student_info 테이블과 tb_departments 테이블에 v_students_info 뷰를 생성합니다. 입력 SQL 문과 실행 결과는 다음과 같습니다. mysql> CREATE VIEW v_students_info
-> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date)
-> AS SELECT id,name,dept_id,age,sex,height,login_date
-> FROM tb_students_info;
Query OK, 0 rows affected (0.06 sec)
mysql> SELECT * FROM v_students_info;
+------+--------+------+-------+-------+----------+------------+
| s_id | s_name | d_id | s_age | s_sex | s_height | s_date |
+------+--------+------+-------+-------+----------+------------+
| 1 | Dany | 1 | 24 | F | 160 | 2015-09-10 |
| 2 | Green | 3 | 23 | F | 158 | 2016-10-22 |
| 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 |
| 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 |
| 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 |
| 6 | John | 2 | 21 | M | 172 | 2015-11-11 |
| 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 |
| 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 |
| 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 |
| 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 |
+------+--------+------+-------+-------+----------+------------+
10 rows in set (0.01 sec)
이 뷰를 통해 기본 테이블의 데이터를 안전하게 보호할 수 있습니다. 뷰에는 s_id, s_name 및 dept_name이 포함되며, s_id 필드는 tb_students_info 테이블의 id 필드에 해당하고, s_name 필드는 tb_students_info 테이블의 name 필드에 해당하며, dept_name 필드는 tb_departments 테이블의 dept_name 필드에 해당합니다.
Query view
뷰가 정의되면 데이터 테이블을 쿼리하는 것처럼 SELECT 문을 사용하여 뷰의 데이터를 쿼리할 수 있습니다. 구문은 기본 테이블의 데이터를 쿼리하는 것과 같습니다.
뷰는 주로 다음 측면에서 쿼리하는 데 사용됩니다.
뷰를 사용하여 검색된 데이터의 형식을 다시 지정합니다.
뷰를 사용하여 복잡한 테이블 조인을 단순화하세요.
보기를 사용하여 데이터를 필터링하세요.
DESCRIBE를 사용하여 뷰를 볼 수 있습니다. 구문은 다음과 같습니다.
DESCRIBE 뷰 이름;
[예제 4]
DESCRIBE 문을 통해 v_students_info 뷰의 정의를 봅니다. 실행 결과는 다음과 같습니다.
mysql> DESCRIBE v_students_info; +----------+---------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+------------+-------+ | s_id | int(11) | NO | | 0 | | | s_name | varchar(45) | YES | | NULL | | | d_id | int(11) | YES | | NULL | | | s_age | int(11) | YES | | NULL | | | s_sex | enum('M','F') | YES | | NULL | | | s_height | int(11) | YES | | NULL | | | s_date | date | YES | | 2016-10-22 | | +----------+---------------+------+-----+------------+-------+ 7 rows in set (0.04 sec)
참고: DESCRIBE는 일반적으로 DESC로 축약될 수 있습니다. 이 명령을 입력하면 실행 결과가 DESCRIBE를 입력하는 것과 같습니다.
위 내용은 mysql이 뷰를 생성할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!