精华内容
下载资源
问答
  • Mysql视图命令

    千次阅读 2021-07-03 11:49:38
    视图 指的是从单张或多张表查询出来的一张虚拟表,本质上就是一个动态的查询语句,好处是对机密数据可以提供安全保护,简化了用户的操作; 创建视图 create or replace view view01 as //查询语句 with check option; ...

    视图

    指的是从单张或多张表查询出来的一张虚拟表,本质上就是一个动态的查询语句,好处是对机密数据可以提供安全保护,简化了用户的操作;

    创建视图

    create or replace view view01
    as
    //查询语句
    with check option;
    

    view01 : 视图名称,自己取,跟表名类似;
    create or replace : 如果存在view01视图则重置,不存在则新建;
    with check option : 校验之后对该视图的插入语句是否符合查询语句中的条件,比如查询语句条件是部门为2的员工,后期如果insert into其他部门编号的员工就会报错;

    查看视图

    desc 视图名;

    修改视图

    alter view 视图名 as 查询语句;

    删除视图

    drop view if exists 视图名;

    展开全文
  • 文件中记录了一些常用的navicat查询的快捷键,很方面大家操作这个工具,记录不完善还望莫见怪!!!
  • MySQL视图操作命令详解   创建视图 在MySQL中,创建视图的完整语法如下: CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH...

    MySQL视图操作命令详解

     

    创建视图

    在MySQL中,创建视图的完整语法如下:

    CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
        VIEW view_name [(column_list)]
        AS select_statement
        [WITH [CASCADED | LOCAL] CHECK OPTION]

    其对应的语法变量信息如下:

    [OR REPLACE]

    中括号中的OR REPLACE关键字是可选的。如果当前数据库中已经存在指定名称的视图时,没有该关键字,将会提示错误信息;如果使用了OR REPLACE关键字,则当前正在创建的视图会覆盖掉原来同名的视图。

    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

    ALGORITHM子句是可选的,它表示使用何种算法来处理视图。此外,它并不属于标准SQL的一部分,而是MySQL对标准SQL进行的功能扩展。ALGORITHM可以设置三个值:MERGETEMPTABLEUNDEFINED。如果没有ALGORITHM子句,则默认值为UNDEFINED(未定义的)。 对于MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。

    对于TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。

    对于UNDEFINED,MySQL将选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。

    之所以提供TEMPTABLE选项,是因为TEMPTABLE在创建临时表之后、并在完成语句处理之前,能够释放基表上的锁定。与MERGE算法相比,锁定释放的速度更快,这样,使用视图的其他客户端不会被屏蔽过长时间。

    此外,MERGE算法要求视图中的行和基表中的行具有一对一的关系。如果视图包含聚合函数(SUM(), MIN(), MAX(), COUNT()等)、DISTINCTGROUP BYHAVINGUNIONUNION ALL、没有基表的引用文字值(例如:SELECT 'hello';)等结构中的任何一种,将失去一对一的关系,此时必须使用临时表取而代之。

    [(column_list)]

    (column_list)用于自定义视图中各个字段的名称。如果没有该命令选项,那么通过视图查询到的各个字段的名称和视图所使用到的数据表的字段名称保持一致。下面是一个常见的用于创建视图的SQL语句:

    CREATE OR REPLACE VIEW v_user
    AS
    SELECT id, username FROM user;

    由于user表中的字段名称为idusername,因此视图v_user中的两个字段名称也分别默认为idusername。现在,我们将视图v_user中的字段名称分别自定义为uiduname

    CREATE OR REPLACE VIEW v_user (uid, uname)
    AS
    SELECT id, username FROM user;

    select_statement

    select_statement用于指定视图的内容定义。简而言之,这里就是用户自定义的一个SELECT语句。

    [WITH [CASCADED | LOCAL] CHECK OPTION]

    该选项中的CASCADED为默认值,LOCAL CHECK OPTION用于在可更新视图中防止插入或更新行。由于此选项一般不使用,因此不再赘述,具体信息请参考MySQL官方网站上的相关信息。

    删除视图

    在MySQL中删除视图的方法非常简单,其详细语法如下:

    --删除指定名称的一个或多个视图
    DROP VIEW [IF EXISTS]
     view_name [, view_name2]...

    其中,关键字IF EXISTS用于防止因视图不存在而提示出错,此时,只有存在该视图才会执行删除操作。DROP VIEW语句可以一次性删除多个视图,只需要在多个视图名称之间以英文逗号隔开即可。如果多个视图存在于不同的数据库中,不数据当前数据库的视图名称之前还必须加上db_name.前缀。

    --删除视图v_user
    DROP VIEW v_user;

    修改视图

    请参考创建视图语法中的OR REPLACE关键字,只要具备该关键字的视图创建语句就是修改视图的SQL语句。

    查看视图

    在MySQL中,show tables不仅可以用于查看当前数据库中存在哪些数据表,同时也可以查看到当前数据库中存在哪些视图。

    --执行show tables
    mysql> show tables;
    --以下是输出结果
    +----------------+
    | Tables_in_test |
    +----------------+
    | user           |
    | v_user         |
    +----------------+
    2 rows in set (0.00 sec)

    不过,仅仅使用show tables语句,在输出结果中,我们根本无法区分到底哪些才是视图哪些才是真实的数据表(当然,视图的命名我们可以统一约定以"v_"开头)。此时,我们需要使用命令show full tables,该命令可以列出额外的table_type列,如果对应输出行上该列的值为"VIEW",则表示这是一个视图。

    --执行show full tables
    mysql> show full tables;
    --以下是输出结果
    +----------------+------------+
    | Tables_in_test | Table_type |
    +----------------+------------+
    | user           | BASE TABLE |
    | v_user         | VIEW       |
    +----------------+------------+
    2 rows in set (0.00 sec)

    当我们通过上述命令找到了我们所需要的视图之后,我们可以使用如下命令查看创建该视图的详细语句:

    show create view view_name

    例如,我们使用该命令查看创建视图v_user的SQL语句:

    --由于该语句的输出结果较为杂乱,因此使用\G命令进行格式化输出
    mysql> show create view v_user \G;
    --以下是格式化的输出结果
    *************************** 1. row ***************************
                    View: v_user
             Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_user` AS select `user`.`id` AS `uid`,`user`.`username`
    AS `uname` from `user`
    character_set_client: utf8
    collation_connection: utf8_general_ci
    1 row in set (0.00 sec)
    展开全文
  • MySQL视图详解

    2021-02-01 20:28:32
    MySQL从5.0.1版本开始提供视图的功能,本次博客就来介绍一下视图,本次博客基于的版本是mysql-5.7.19。什么是视图视图(view)是一种虚拟存在的表,视图可以理解为是一个容器,表通过条件查询之后,将查询后的结果放...

    MySQL从5.0.1版本开始提供视图的功能,本次博客就来介绍一下视图,本次博客基于的版本是mysql-5.7.19。

    什么是视图?

    视图(view)是一种虚拟存在的表,视图可以理解为是一个容器,表通过条件查询之后,将查询后的结果放入这个容器内,然后给容器命名后即为视图。

    视图相对于表的优势:

    1.简单,使用视图的用户不必关系后面的表,只需要使用过滤好的内容就行了;

    2.安全,因为对表的全新不能限制到表的行或者是列,所以可以通过视图来限制用户对表的访问权限;

    3.数据独立,确定了视图的结构之后,如果给原来的表增加了列,并不会影响视图,增加行,视图的相对于的行也会增加,如果源表的列名称发生了改变,可以通过修改视图来解决。

    创建和查看视图

    语法:

    CREATE VIEW view_name AS sql

    现在有表如下:

    mysql> select * fromuserinfo;+----+----------+--------+

    | id | username | passwd |

    +----+----------+--------+

    | 1 | alex | 123 |

    | 2 | frank | 123 |

    | 3 | rose | 312 |

    | 4 | tom | qqq |

    | 5 | jack | qwer |

    +----+----------+--------+

    5 rows in set (0.00 sec)

    来创建视图:

    mysql> create view user_view as select username fromuserinfo;

    Query OK,0 rows affected (0.01 sec)

    show tables 命令不仅可以显示表的名字,也可以显示视图的名字:

    mysql>show tables;+---------------+

    | Tables_in_db2 |

    +---------------+

    | user_view |

    | userinfo |

    +---------------+

    2 rows in set (0.00 sec)

    可以通过一下命令显示视图的信息:

    mysql> show table status like 'user_view'\G;*************************** 1. row ***************************Name: user_view

    Engine:NULLVersion:NULLRow_format:NULLRows:NULLAvg_row_length:NULLData_length:NULLMax_data_length:NULLIndex_length:NULLData_free:NULLAuto_increment:NULLCreate_time:NULLUpdate_time:NULLCheck_time:NULLCollation:NULLChecksum:NULLCreate_options:NULLComment:VIEW

    1 row in set (0.00sec)

    ERROR:

    No query specified

    如果想要查看某个视图的定义,也可以使用如下命令查看:

    mysql> show create viewuser_view \G;*************************** 1. row ***************************

    View: user_viewCreate View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `user_view` AS select `userinfo`.`username` AS `username` from`userinfo`

    character_set_client: utf8

    collation_connection: utf8_general_ci1 row in set (0.00sec)

    ERROR:

    No query specified

    修改视图

    先来看这个例子:

    查看视图user_view的内容:

    mysql> select * fromuser_view;+----------+

    | username |

    +----------+

    | alex |

    | frank |

    | rose |

    | tom |

    | jack |

    +----------+

    5 rows in set (0.00 sec)

    在原表里面插入行:

    mysql> insert into userinfo(username,passwd) values('coco','123');

    Query OK,1 row affected (0.00sec)

    mysql> select * fromuser_view;+----------+

    | username |

    +----------+

    | alex |

    | frank |

    | rose |

    | tom |

    | jack |

    | coco |

    +----------+

    6 rows in set (0.00 sec)

    说明视图是可以被原始表更新的。

    如果现在把原表的username列的名称改为uname,那么user_view视图的就会出错了,这个时候就需要修改视图了。

    mysql> alter table userinfo change username uname varchar(20);

    Query OK,0 rows affected (0.01sec)

    Records:0 Duplicates: 0 Warnings: 0

    修改视图的语法如下:

    ALTER VIEW view_name AS sql

    修改视图user_view而且增加了id列:

    mysql> alter view user_view as select id,uname fromuserinfo;

    Query OK,0 rows affected (0.01sec)

    mysql> select * fromuser_view;+----+-------+

    | id | uname |

    +----+-------+

    | 1 | alex |

    | 2 | frank |

    | 3 | rose |

    | 4 | tom |

    | 5 | jack |

    | 6 | coco |

    | 7 | saber |

    +----+-------+

    7 rows in set (0.00 sec)

    那么视图的数据是否可以修改呢?视图数据修改后是否会影响原表呢?下面通过一个例子看一下:

    mysql> update user_view set uname='lancer' where id=7;

    Query OK,1 row affected (0.00sec)

    Rows matched:1 Changed: 1 Warnings: 0mysql> select * fromuser_view;+----+--------+

    | id | uname |

    +----+--------+

    | 1 | alex |

    | 2 | frank |

    | 3 | rose |

    | 4 | tom |

    | 5 | jack |

    | 6 | coco |

    | 7 | lancer |

    +----+--------+

    7 rows in set (0.00sec)

    mysql> select * fromuserinfo;+----+--------+--------+

    | id | uname | passwd |

    +----+--------+--------+

    | 1 | alex | 123 |

    | 2 | frank | 123 |

    | 3 | rose | 312 |

    | 4 | tom | qqq |

    | 5 | jack | qwer |

    | 6 | coco | 123 |

    | 7 | lancer | 123 |

    +----+--------+--------+

    7 rows in set (0.00 sec)

    通过以上例子说明。修改视图中的数据是可行的而且原表中的数据也会被改变。

    删除视图

    用户可以一次性的删除一个或者多个视图,语法如下:

    DROP VIEW view_name1.view_name2...

    来看下面的例子:

    mysql>show tables;+---------------+

    | Tables_in_db2 |

    +---------------+

    | passwd_view1 |

    | passwd_view2 |

    | user_view_2 |

    | userinfo |

    +---------------+

    4 rows in set (0.00sec)

    mysql> drop viewpasswd_view1;

    Query OK,0 rows affected (0.00sec)

    mysql>show tables;+---------------+

    | Tables_in_db2 |

    +---------------+

    | passwd_view2 |

    | user_view_2 |

    | userinfo |

    +---------------+

    3 rows in set (0.00 sec)

    使用pymysql操作视图

    操作视图其实和操作表是一样的,来看例子:

    import pymysql

    config={

    "host":"127.0.0.1",

    "user":"root",

    "password":"LBLB1212@@",

    "database":"db2",

    "charset":"utf8"

    }

    db= pymysql.connect(**config)with db.cursor(cursor=pymysql.cursors.DictCursor) as cursor:

    sql="SELECT * FROMpasswd_view2"cursor.execute(sql)

    res= cursor.fetchall()print(res)cursor.close()

    db.close()

    #运行结果[{'uname': 'alex', 'passwd': '123'}, {'uname': 'frank', 'passwd': '123'}, {'uname': 'coco', 'passwd': '123'}, {'uname': 'lancer', 'passwd': '123'}]

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • MySQL中,删除视图使用(????)命令。答:DROP设计的优点之一就在于其在命令执行上的刚性答:职能式4月15日作业答:笔记喘证的主要临床特征是答:呼吸急促,甚至张口抬肩,鼻翼煽动面试过程中自我介绍需要注意哪些? A...

    在MySQL中,删除视图使用(????)命令。

    答:DROP

    03a6ea189610ac9d76c561db770b5f1c.png

    设计的优点之一就在于其在命令执行上的刚性

    答:职能式

    4月15日作业

    答:笔记

    喘证的主要临床特征是

    答:呼吸急促,甚至张口抬肩,鼻翼煽动

    面试过程中自我介绍需要注意哪些? A、简明扼要 B、展示个性 C、详细全面 D、层次分明

    答:层次分明 展示个性 简明扼要

    主控板的倒换模式是( )

    答:强制倒换 自动倒换

    下面程序的功能是:在输入的一批正数中求最大者,输入0结束循环,选择(? ?)填空。 #include int main ( ) { ?int a,max=0; scanf(\"%d\",&a); while ( ???????) {?? if (max答:a

    我国学校课程的雏形“六艺”是指“诗、书、礼、乐、射、数”。

    答:错

    中国大学MOOC: 电流保护I段可保护本段线路全长

    答:错

    距离丈量的结果是求得两点间的【】

    答:水平距离

    Frankenstein monster means

    答:人形怪物

    电子产品的更新换代平均周期为18个月

    答:√

    According to the author, the model of Pepsi.

    答:is in line with the theories of the school advocating the business is business?the world around.

    一棵完全二叉树,必有奇数个结点

    答:√

    下列指标属于时点指标的是: 商品销售量|国民收入|新出生人口数|职工人数

    答:职工人数

    水银温度计破了以后怎么处理

    答:洒落出来的水银必须立即用滴管、毛刷收集起来,并用水覆盖(最好用甘油),然后在污染处撒上硫磺粉干后方可清扫

    失血量达到20%就会危及病人生命。()

    答:×

    文化是社会意识的重要组成部分,文化是一个国家、一个民族的灵魂,文化的核心是( )

    答:价值观

    金融衍生工具交易一般只需要支付少量保证金或权利金就可以签订远期大额合约或互换不同的金融工具

    答:√

    党领导的伟大事业不断取得胜利的根本保证是

    答:不断加强党的建设

    美拉德反应也叫羰氨反应,是发生在还原糖和氨基之间的非酶促褐变反应,它会产生一系列的烘焙香气和风味。

    答:对

    在MySQL中,删除视图使用(????)命令。

    ae4d30c02625b022717006094065ed2a.png

    展开全文
  • 在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件??视图是一个虚拟表,对于使用该视图的用户基本上是透明的。该视图实际上不存在于数据库中,行和列数据来自定义该视图的查询所使用的表,并且在使用该...
  • MySQL视图、存储过程

    2021-03-15 00:51:11
    在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件什么是视图(视图)虚拟表内容类似于真实表,有字段和记录该视图不以数据库中存储的数据的形式存在行和列的数据来自查询视图定义时引用的基表,并且是在特定...
  • 事项开启和使用 //修改表的引擎 alter table a engine=myisam; //开启事务 begin; //关闭自动提交 set autocommit=0;...update bank set money=money-100 where bid=1;...update bank set money=mone
  • MySql视图笔记(转载)

    2021-02-07 03:01:34
    1.视图的定义视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表。视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以查看到数据表的全部数据),使用视图就可以不用看到...
  • 视图VIEW命令简介:VIEW...创建视图命令格式:CREATE[OR REPLACE][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}][DEFINER = { user | CURRENT_USER }][SQL SECURITY { DEFINER | INVOKER }]VIEW view_name [(colu...
  • 后台 — mysql视图

    2020-12-14 13:33:13
    目录 了解什么是视图: 操作开始:(cmd命令操作)   用navicat.exe创建视图 php脚本查询视图数据; 删除视图表;cmd命令删除   利用工具删除视图表;...了解什么是视图视图也就是将我们的数据可视化,...1.链接mysql
  • MySQL视图的应用之创建视图视图也称虚表,包括执行某个查询返回的一组记录。视图可以简化获取数据的方法,并通过别名来实现抽象查询。为了简化查询,在实际项目开发过程中,通常可以采用为数据库中的某个表建立视图...
  • mysql连接视图

    2013-12-07 19:45:57
    mysql命令连接数据库请见此图,非常好用,可以很好的实现mysql登录
  • MySql创建视图

    2021-03-15 02:48:08
    如果涉及到数据量过大,业务逻辑需要跨表查询等等也可建立一个跨表的视图,有三种情况: 一、基于同一数据库 这种情况较为简单,只需简单的一行sql命令,如下: create view v as (select * from table1) ...
  • 怎么向Mysql视图中增加新数据

    千次阅读 2021-01-19 01:05:33
    mysql视图的相关知识在我们之前的文章中,都已经给大家详细介绍过了,相信大家对视图肯定有了更深一步的了解。从前面文章的介绍中,大家应该都知道了视图就是由SELECT语句组成的查询定义的虚拟表,是由一张或多张表...
  • MySQL查看所有视图命令

    万次阅读 2018-10-14 20:52:29
    MySQL查看所有视图命令 有时为了查看特定数据库中所建立的所有视图,可以使用这个命令: 因为,视图其实就是一张虚拟的表,所有也可以认为是一张表,所有是 show table, 而它由于普通的表有所不同,所以有 ...
  • MySQL视图(VIEW)

    2021-01-19 14:28:53
    一、MySQL视图简介视图是数据库系统中一种非常有用的数据库对象。MySQL5.0 之后的版本添加了对视图的支持。认识视图视图是一个虚拟表,其内容由查询定义。同真实表一样,视图包含一系列带有名称的列和行数据,但视图...
  • 1.事件背景今天临近中午饭点时,开发同事发来需求,在mariadb库创建两个视图,要求指定帐号有只读权限。很简单的需求,连上服务器,两条grant命令一刷,fulsh privileges 回车,楼主就安心吃饭去了。2.重点来了,待...
  • 文章目录什么是视图视图的特性视图的作用创建视图修改视图删除视图视图机制替换式具化式替换式与具化式区别视图不可更新部分 什么是视图 视图是一个虚拟表,其内容由查询定义。 同真实的表一样,视图包含系列带有...
  • MySQL数据库视图视图定义、创建视图、修改视图

    万次阅读 多人点赞 2017-03-20 11:54:15
    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。...对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以大大降低查询的重复性。
  • 视图(包括可更新视图)可在 MySQL 服务器 5.0 实施,并限于二进制版本 5.0.1 或以上版本。点击 Navicat 界面中的“视图”按钮可打开视图对象列表。Navicat 视图可以创建视图快捷方式,在对象列表中的...
  • Mysql 开启视图权限与创建视图教程

    千次阅读 2021-02-06 23:32:39
    不废话直接上代码:开启视图权限:root登录服务器,运行命令,注意username和data修改grant create view on username.* to data@'%';grant show view on username.* to data@'%';GRANT ALL PRIVILEGES ON 用户名.* TO ...
  • mysql视图

    2021-01-21 00:42:01
    mysql视图创建的语句,就不过多赘述,下面提供一个示例。主要讲的是mysql创建视图时的一些特性。创建视图示例:create or replace view staff_list_view asselects.staff_id,s.first_name,s.last_name,a.addressfrom...
  • mysql中的视图

    2021-01-19 14:49:03
    一、创建视图create [algorithm = 视图算法] view视图名 as select语句; -- 可以是任何查询语句(普通查询、连接查询、联合查询、子查询)有三种视图算法选项:1. undefined:默认设置,表示没有指定算法,一般此选项...
  • 为什么进行数据库备份数据库故障突然断电病毒入侵+误操作导致数据丢失11.mysqldump (是DOS系统下的命令 ,在使用时无须进入mysql命令行,否则无法进行)mysqldump 命令-----mysql一个常用的备份工具将CREATE 和 INSERT ...
  • 由于老项目使用的是hibernate,当项目启动时会去检查数据库字段类型等,发现一张视图中某个自定义字段在开发环境中类型为text,但是到了生产环境类型却为mediumtext,导致代码在生产上会有问题,后续查到是由于使用...
  • 查询视图的sql语句(mysql创建视图sql语句)2020-07-24 12:07:14共10个回答两种方式,一种是直接在sqlserver的列表中找到,另一种用写语句的方式查询.方法一:1、登陆sqlservermanagerstudio.2、在左边的树找到自己要查询...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,207
精华内容 24,882
关键字:

mysql视图命令

mysql 订阅