其中,关键字IF EXISTS用于防止因视图不存在而提示出错,此时,只有存在该视图才会执行删除操作。DROP VIEW语句可以一次性删除多个视图,只需要在多个视图名称之间以英文逗号隔开即可。如果多个视图存在于不同的数据库中,不数据当前数据库的视图名称之前还必须加上db_name.前缀。 --删除视图v_user DROP VIEW v_user; 修改视图 请参考创建视图语法中的OR REPLACE关键字,只要具备该关键字的视图创建语句就是修改视图的SQL语句。 查...
问题是这样的,使用mysqldump备份线上数据库之后,然后通过mysql 命令行恢复到线下数据库,发现视图都成了表。 为什么会这样呢?这就得聊聊mysql备份恢复的机制了其实查看mysqldump备份产生的sql语句,会发现视图首先会恢复成表,之后再删除表,新建视图。 如下图,可以看到在15572行先创建了v_t_borrow_details表,然后在21322行创建了v_t_borrow_details视图 这样是为了避免依赖关系,比如有2个 VIEW: v_a, v_bv_a 引用 v_b如果先...
两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec)mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+---...
// create PROCEDURE p6(OUT p_return_code tinyint ) BEGINDECLARE exit handler for sqlexceptionBEGIN-- ERRORset p_return_code = 1;rollback;END;DECLARE exit handler for sqlwarningBEGIN-- WARNINGset p_return_code = 2;rollback;END;START TRANSACTION;update user set balance = 100 where name = ‘海燕‘;update user set balance = 210 where name = ‘哪吒‘;update user11 set balance = 290 where name = ‘小哈‘...
mysql视图机制 什么是视图 视图是一张虚拟的表,为什么是虚拟呢?因为视图与数据库中存在的表不太一样,前面我们创建的4张表都是包含数据的, 如用户信息,订单信息等,而视图则是不包含数据的,下面通过一个例子来演示视图,下面的sql是查询王五的所有 订单情况,需要关联到orders表,orderd etail表 tiems表 user表 mysql> select u.username, o.number, tm.name as itemsName , tm.price, od.items_num from ( ( orders as o inn...
2.触发器 3.存储过程 4.函数 5.事物 6.数据库锁 7.数据库备份1.视图 视图:是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据 视图有如下特点; 1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。 2. 视图是由基本表(实表)产生的表(虚表)。 3. 视图的建立和删除不影响基本表。 4. 对视图内容的更新(添加、删除和修改)直接影响基...
。同真实的表一样,视图包含一系列带有名称的列和行数据。 视图有五个特点:1.视图的列可以来自不同的表,是表的抽象和逻辑意义上简历的新关系。2.视图是由基本表(实表)产生的表(虚表)。3.视图的建立和删除不影响基本表。4.对视图内容的更新(添加、删除和修改)直接影响基本表。5.当视图来自多个基本表时,不允许添加和删除数据。 1.创建视图create view 视图名称 as sql 查询语句 2.使用视图select * from 视图名称;3.更新...
1.视图 视图:是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据 视图有如下特点; 1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。 2. 视图是由基本表(实表)产生的表(虚表)。 3. 视图的建立和删除不影响基本表。 4. 对视图内容的更新(添加、删除和修改)直接影响基本表。 5. 当视图来自多个基本表时,不允许添加,修改和删除数据。1.创建视图1 cre...
一、视图定义:本质是一张虚拟的表,数据来自select语句用途:原表安全 1.隐藏部分数据,开放指定的数据 2.因为视图可以将查询的结果保存特性,所以可以用视图来减少书写sql语句的次数创建:create view test_view as select *from t1;特点:1.每次对视图进行的查询,其实都是再次执行了as后面的查询语句2.可以对视图进行修改,修改会同步到原表3.视图是永久储存的,存储的不是数据,而是一条as sql语句 二、sql注入问题 当...
触发器 事务 存储过程 流程控制一、视图 视图是由查询结果构成的一张虚拟表,和真实的表一样,带有名称的列和行数据 强调:视图是永久存储的,但是视图存储的不是数据,只是一条sql语句 视图的特点:视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。 视图是由基本表(实表)产生的表(虚表)。 视图的建立和删除不影响基本表。 对视图内容的更新(添加、删除和修改)直接影响基本表。 当视图来自多个基本表时,...
视图: 简单视图:单张表 复杂视图:多张,子查询 物化视图: MariaDB [hidb]> create view v1_students as select name,age from students;MariaDB [hellodb]> create view v3_students as select name,age from students where age>40 ; Query OK, 0 rows affected (0.05 sec) MariaDB [hellodb]> update v3_students set age=39 where age>40; Query OK, 3 rows affected (0.14 sec) Rows matched: 3 Changed: 3 ...
视图:view是一种有结构的但是没有结构来源的虚拟表,虚拟表的结构来源不是自己定义的而是从对应的基表中产生(来源) 创建视图 基本语法: Create view 视图名字 as select 语句 可以是普通查询,也可以是连接查询,联合查询,子查询。 创建单表视图: 基表只有一个 例:create view my_view as select *from my_class; 创建多表查询 基表有多个 查看视图: 查看视图结构 视图是一张虚拟表,表的查看方式适用于 视图:show tables...
11.视图11.1 什么是视图 视图view是一张虚拟表,它不存储数据,数据仍在表里,视图由一条查询表的select语句创建,视图只存储select语句。 可以将复杂的查询语句封装成视图,用户可以从视图中查询,以简化SQL编写; 视图中的数据只能查看,不能增删改,可用于权限管理; 屏蔽底层数据结构,对表的部分修改(新增列,修改列类型等)不影响视图的结构,不会对用户和应用程序产生影响。11.2 视图操作 11.2.1 创建或者修改视图创建视...
视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,...
r.* FROM tb_role r RIGHT JOIN tb_admin a ON a.id=r.create_id; 3.创建一个视图CREATE OR REPLACE VIEW view_name_1 AS SELECT r.* FROM tb_role r RIGHT JOIN tb_admin a ON a.id=r.create_id; -- 视图更新有很多限制 比如说 带常量的查询 带limit的查询 带聚合函数的查询 子查询 等等 实际使用中自测一下就行了-- 视图语法 CREATE VIEW 视图名称 AS sql-- CREATE 后面加 OR REPLACE 代表如果本视图存在则覆盖-- sql必须是查...