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无法创建视图的解决方法