mysql无法创建视图的解决方法

  

mysql无法创建视图的解决方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

mysql无法创建视图的解决办法:使用创建视图语句来创建视图,代码为【创建视图& lt;视图名比;

<强> mysql无法创建视图的解决办法:

<>强基本语法

可以使用创建视图语句来创建视图。

语法格式如下:

创建视图& lt;视图名比;& lt;选择语句在

语法说明如下。

    <李>

    & lt;视图名祝辞:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。

    <李>

    & lt;选择语句祝辞:指定创建视图的选择语句,可用于查询多个基础表或源视图。对于创建视图中选择语的句的指定存在以下限制:

    <李>

    用户除了拥有创建视图权限外,还具有操作中涉及的基础表和其他视图的相关权限。

    <李>

    选择语句不能引用系统或用户变量。

    <李>

    选择语句不能包含从子句中的子查询。

    <李>

    选择语句不能引用预处理语句参数。

视图定义中引用的表或视图必须存在。但是,创建完视图后,可以删除定义引用的表或视图。可使用检查表语句检查视图定义是否存在这类问题。

视图定义中允许使用命令语句,但是若从特定视图进行选择,而该视图使用了自己的ORDER BY语句,则视图定义中的命令将被忽略。

视图定义中不能引用临时表(临时表),不能创建临时视图。

检查选项的意思是,修改视图时,检查插入的数据是否符合,设置的条件。

<>强创建基于单表的视图

MySQL可以在单个数据表上创建视图。

查看test_db数据库中的tb_students_info表的数据,如下所示。

mysql>从tb_students_info SELECT *;   + - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   | | id名称| dept_id |年龄性| |身高| login_date |   + - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   | 1 |丹妮| 1 | 25 F | 160 | 2015-09-10 | |   绿色| | 2 | 3 | | 23 F | 158 | 2016-10-22 |   亨利| 3 | | 2 | 23 | | 185 | 2015-05-31 |   简| 1 | 4 | | | 22 F | 162 | 2016-12-20 |   吉姆| 5 | | 1 | 24 | | 175 | 2016-01-15 |   约翰| 6 | | 2 | 21 | | 172 | 2015-11-11 |   莉莉7 | | | 6 | | 22 F | 165 | 2016-02-26 |   苏珊8 | | | 4 | | 23 F | 170 | 2015-10-01 |   | 9托马斯| | 3 | 22 | | 178 | 2016-06-07 |   汤姆10 | | | 4 | 23 | | 165 | 2016-08-05 |   + - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   10行集(0.00秒)

【实例1】

在tb_students_info表上创建一个名为view_students_info的视图,输入的SQL语句和执行结果如下所示。

mysql>创建视图view_students_info   →SELECT * FROM tb_students_info;   查询好,0行影响(0.00秒)   mysql>从view_students_info SELECT *;   + - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   | | id名称| dept_id |年龄性| |身高| login_date |   + - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   | 1 |丹妮| 1 | 25 F | 160 | 2015-09-10 | |   绿色| | 2 | 3 | | 23 F | 158 | 2016-10-22 |   亨利| 3 | | 2 | 23 | | 185 | 2015-05-31 |   简| 1 | 4 | | | 22 F | 162 | 2016-12-20 |   吉姆| 5 | | 1 | 24 | | 175 | 2016-01-15 |   约翰| 6 | | 2 | 21 | | 172 | 2015-11-11 |   莉莉7 | | | 6 | | 22 F | 165 | 2016-02-26 |   苏珊8 | | | 4 | | 23 F | 170 | 2015-10-01 |   | 9托马斯| | 3 | 22 | | 178 | 2016-06-07 |   汤姆10 | | | 4 | 23 | | 165 | 2016-08-05 |   + - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +   10行集(0.04秒)

默认情况下,创建的视图和基本表的字段是一样的,也可以通过指定视图字段的名称来创建视图。

【实例2】

在tb_students_info表上创建一个名为v_students_info的视图,输入的SQL语句和执行结果如下所示。

mysql>创建视图v_students_info   →(s_name s_id d_id、s_age s_sex, s_height, s_date)   →选择id、名称、dept_id、年龄、性别、身高、login_date   →从tb_students_info;   查询好,0行影响(0.06秒)   mysql>从v_students_info SELECT *;   + - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +   | s_id | s_name | d_id | s_age | s_sex | s_height | s_date |   + - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +   | 1 |丹妮| 1 | 24 | F | 160 | 2015-09-10 |   绿色| | 2 | 3 | | 23 F | 158 | 2016-10-22 |   亨利| 3 | | 2 | 23 | | 185 | 2015-05-31 |   简| 1 | 4 | | | 22 F | 162 | 2016-12-20 |   吉姆| 5 | | 1 | 24 | | 175 | 2016-01-15 |   约翰| 6 | | 2 | 21 | | 172 | 2015-11-11 |   莉莉7 | | | 6 | | 22 F | 165 | 2016-02-26 |   苏珊8 | | | 4 | | 23 F | 170 | 2015-10-01 |   | 9托马斯| | 3 | 22 | | 178 | 2016-06-07 |   汤姆10 | | | 4 | 23 | | 165 | 2016-08-05 |   + - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +   10行集(0.01秒)

mysql无法创建视图的解决方法