一. 视图
1.1创建视图 create view p_view as select name,age from person;
视图的作用是隐藏数据,例如上面语句没有查询工资,是为了隐藏它,这样就避免无关人员看到敏感数据。
注意:视图修改了数据,会导致基本表的数据也随着被修改,或者基本表修改了数据,视图的数据也随着被修改,
例如视图把名字alex修改为alex_sb,那么基本表对应的名字也被修改。 create view 视图名字 as 查询sql语句; 1.2删除: drop view 视图名字; 1.3修改: alter view 视图名字 as 查询sql语句;
alter view p_view as select name,age,sex from person;--增加sex字段 1.4注意:当视图来自多个基本表时,无法增删改数据。
create view ps_view as select person.name,dept.dname from peron,dept where person.dept_id = dept.did;
上面视图来自两个基本表,操作一下增删改试试。 二. 触发器:监视某个事件,然后触发某个操作。
触发器创建语法四要素:1.监视地点(table)
            2.监视事件(insert/update/delete)
           3.触发时间(after/before)
            4.触发事件(insert/update/delete)
创建触发器语法
create trigger triggerName after/before insert/update/delete
on 表名 for each row #这句话是固定的
begin
#需要执行的sql语句--注意语句后面需要加上分号;
end
注意1:after/before: 只能选一个 ,after 表示 后置触发, before 表示前置触发
注意2:insert/update/delete:只能选一个 1、监视事件:插入-insert:以商品发货为例: 1.1创建两张表:商品表goods和订单表order_table,当订单表插入发货数量count时,触发商品表减少相应数量num。
create table goods(
id int not null auto_increment primary key,
name varchar(10) not null,
num int not null);
insert into goods values(1,'商品1',10),(2,'商品2',10),(3,'商品3',10);--goods插入数据 create table order_table(
oid int not null auto_increment primary key,
gid int not null,
count int not null);
1.2创建触发器:
create trigger tg2 after insert on order_table --监视order_table这个表的每一行在插入数据之后
for each ROW
BEGIN
update goods set num = num - new.count where id = new.gid;--触发goods减少数量
end; 1.3插入数据:insert into order_table values(1,1,3);--goods商品1的数量自动修改为7 2、监视事件:更新-update:以商品退货为例:
create trigger tg2 after update on order_table
for each row
begin
update goods set num = num + old.count - new.count where id = new.gid;--old.count - new.count等于减掉的数量,也就是2
end; update order_table set count = count -2 where oid = 6;--订单表order_table退回2个商品给商品表,商品表数量自动加2 3、监视事件:删除-delete:以删除订单为例:
create trigger tg3 after delete on order_table
for each row
begin
update goods set num = num + old.count where id = old.gid;
end; delete from order_table where oid = 1;--删除订单,商品数量自动添加 4、查看触发器
show triggers;
或者右击 order_table--设计表--触发器 查看

day58-mysql-视图,触发器的更多相关文章

  1. mysql 视图 触发器 存储过程 函数事务 索引

    mysql 视图 触发器 存储过程 函数事务 索引 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当 ...

  2. Mysql 视图,触发器,存储过程,函数,事务

    视图 视图虚拟表,是一个我们真实查询结果表,我们希望将某次查询出来的结果作为单独的一个表,就叫视图,无法对图字段内容进行增删改. --格式: CREATE VIEW 视图名字 AS 操作; --比如: ...

  3. python mysql 视图 触发器 事物 存储过程 用户授权 数据备份还原

    ###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去 ...

  4. mysql 视图 触发器 事物 存储过程 函数 流程控制

    1.视图 *** 视图是有一条sql语句的查询结果构成的虚拟表 其不是物理存在的 使用方式与普通表相同 视图的作用1.简化sql语句的编写 2.限制可以查看的数据 可以使用权限来完成 权限某一个库 的 ...

  5. mysql视图 触发器 事物 函数 存储过程

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  6. MySQL 视图触发器事务存储过程函数

    事务  致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功 ...

  7. MySQL 视图 触发器 事务 存储过程 函数 流程控制 索引与慢查询优化

    视图 1.什么是视图? 视图就是通过查询得到的一张虚拟表,然后保存下来,下次可直接使用 2.为什么要使用视图? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图? create view ...

  8. MySQL——视图/触发器/事务/存储过程/函数/流程控制

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  9. MySQL视图,触发器,事务,存储过程,函数

    create triggr triafterinsertcmdlog after insert on cmd_log FOR EACH ROW trigger_body .#NEW : 代表新的记录 ...

  10. mysql 视图/触发器/函数

    一.视图 作用:简写代码,与临时表的作用差不多 .创建 create view 视图名 as SQL语句 .修改 alter view 视图名 as 新SQL语句 .删除 drop view 视图名 ...

随机推荐

  1. oracle(3)select语句中常用的关键字说明

    1.select 查询表中的数据 select * from stu: ---查询stu表所有的数据,*代表所有2.dual ,伪表,要查询的数据不存在任何表中时使用 select sysdate f ...

  2. 在Mac上使用docker+sql server+Navicat

    1. 版本:  2. 安装Kubernetes(并不知道安装这个有什么用) git clone https://github.com/maguowei/k8s-docker-desktop-for-m ...

  3. MyBatis整体架构

    Mybatis整体架构 基础支持层 反射模块 Java中的反射很强大,但是还是需要封装的.MyBatis专门提供了反射模块,对元素的反射进行了封装,提供了简洁的API,对反射进行了优化,例如缓存了类的 ...

  4. Django——URL详解/Django中URL是如何与urls文件匹配的

    URL标准语法 protocol://hostname[:port]/path/[:parameters][?query]#fragment https://i.cnblogs.com/EditPos ...

  5. stm32h7 hal 库的学习

    stm32h7xx_hal_conf.h 中需要注意的几个地方: HSE_VALUE 这个外接晶振的频率 TICK_INT_PRIORITY 这个 tick 的中断优先级,因为 HAL_DELAY 这 ...

  6. 深入理解C指针<一>

    指针和内存 C程序在编译后,会以三种形式使用内存: 静态.全局内存:静态变量和全局变量使用这部分内存,生存周期为整个程序运行时,全局变量所有函数都可以访问,但静态变量虽然生存周期为整个程序运行时,但作 ...

  7. VBE2019的下载、安装和使用(最新版2020.2.22)

    VBE2019可用于XP系统.Windows 7和Windows 10的32位.64位Office对应的VBA环境 安装包下载地址:VBE2019-Setup.zip 下载后解压缩,直接双击安装(请勿 ...

  8. dac oracle

    unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...

  9. 计算广告-GD广告

    算法 分配算法主要是解优化问题. 流量预测(traffic forecasting), 流量预估 库存分配, 粗力度的分配. 流量分配, 排单算法 在线分配(Online Allocation) 资料 ...

  10. docker 批量命令

    docker中 启动所有的容器命令: docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) docker中    关闭所有的容器命 ...