视图、触发器

1、视图

视图是一个虚拟的表。

Select查询出来的结果可以通过as一个名字来当作一个虚拟表示用。

视图只能查询使用,不能添加新增。

视图不能建在其他视图上,只能以其他实体表为基础,数据会随实体表的数据变化而变化。

视图省去了每次建表连接的过程。

(1)创建视图

Create  view  视图名

as

  表连接语句

go

(2)修改视图

alter  view  视图名

as

  表连接语句

go

(3)删除视图

Drop  view  视图名

2、触发器

触发器是一个特殊的存储过程,通过增删改数据库表来自动引发。

(1)创建触发器

Create  trigger  触发器名字

On  表名

For  insert

As

Begin

  存储过程

End

Go

(2)修改触发器

alter  trigger  触发器名字

On  表名

For  insert

As

Begin

  存储过程

End

Go

(3)删除触发器

Drop  trigger 触发器名字

(4)增删改

Insert  新增数据

Delete  删除数据

Update  更改数据

(5)之前之后

For 或者 After  表示在……之后触发

Instead  表示在……之前触发

(6)临时表

Deleted

用触发器代替的要删除的所有数据临时存入deleted表中。

Inserted

用触发器代替的要新增的所有数据临时存入deleted表中。

时间: 2024-11-03 03:28:31

视图、触发器的相关文章

SqlServer INSTEAD OF UPDATE 视图触发器问题

源于系统中的 INSTEAD OF UPDATE 视图触发器关联表更新时,发生了错误如下: 消息 414,级别 16,状态 1,第 1 行 不允许使用 UPDATE,因为该语句会更新视图 "VTestTab",而该视图参与联接并且有一个 INSTEAD OF UPDATE 触发器. 于是测试该触发器的执行原理是什么!~ 说明: 视图只能被 INSTEAD OF 触发器引用,每个 INSERT.UPDATE 或 DELETE 语句最多可定义一个 INSTEAD OF 触发器 INSTEA

Mysql之视图 触发器 事务 存储过程 函数

视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> se

视图 触发器 存储过程 函数 流程过程 索引 慢查询

视图 触发器 存储过程 函数 流程过程 索引 慢查询 视图 触发器 事务 存储过程 内置函数 流程控制 索引 视图 1.什么是视图 ? 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 ? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; 强调

mysql 查询表,视图,触发器,函数,存储过程

1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND  TABLE_TYPE ='BASE TABLE' mysql查询建表语句: show create table `表名` 2.mysql查询所有视图: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名'

SQL视图&触发器

SQL视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段.我们可以向视图添加 SQL 函数.WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表. SQL CREATE VIEW 语法 CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition 视图的优点:1,可

存储过程 视图 触发器 序列

一.存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程的优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度.2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起

SQL Service 数据库 基本操作 视图 触发器 游标 存储过程

use NewTest1 ---声明视图--- create view NewViewte as select StudentInfo.name as 姓名,StudentInfo.sex as 性别,course.name as 课程 from StudentInfo join Course on StudentInfo.Cid= Course.id ---调用视图 select * from NewViewte --- 声明触发器--- create trigger NewTri on Cl

Mysql学习---视图/触发器/存储过程/函数/索引 180101

视图 视图: 视图是一个虚拟表(非真实存在),动态获取数据,仅仅能做查询操作 本质:[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用.由于视图是虚拟表,所以无法使用其对真实表进行创建.更新和删除操作,PyMysql是支持视图的. 仅能做查询用. 创建视图: create VIEW stu as select * from student; # 这里只是建立了一个对应关系,视图是虚表,动态获取数据 select * from stu;

数据库 --- 40 视图 触发器 存储过程 事务 函数

一.视图  (view) 视图是一种虚拟表,可以把查询出来的临时表保存下来 1.创建视图 2.删除视图 3.修改视图,(原始表的记录也跟着修改) 4.查看视图 二.  触发器(trigger)可进行  增删改  操作 1.创建触发器 2.删除触发器 实例: 三.存储过程  1. 优点: 缺点: 2.程序与数据库结合使用的三种方式 3.创建简单存储过程(无参) 4.创建存储过程(有参) ① in  传入参数 ② out  返回值 #查看存储过程的一些信息:show create procedure

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

1.视图 视图是一个虚拟表(非真实存在).使用视图我们可以把查询过程中的临时表摘出来,用视图去实现. 视图有明显的效率问题,而且使用视图会过分依赖视图,强耦合,这样意味着扩展sql极为不便,因此不推荐使用 创建视图,使用视图 DROP VIEW teacher_view 删除视图 DROP VIEW teacher_view 2.使用触发器可以定制用户对某张表进行增删改操作前后的行为,注意:没有查询 delimiter // create trigger t1 BEFORE INSERT on