2014-12-04 视图、触发器

视图:把一个查询结果集当作表

例:select * from (select * from score,grade where score.degree between low and upp) as jieguotable

where rank=‘A‘

as 后面的作为一个虚拟的表

create view shitu1

as

select * from student,score where student.sno=score.sno

go

as 和 go 之间实际为表连接,表里的列不能重合

视图只能查询使用,不能增删数据,相当于存了一条数据进去

触发器:一个特殊的存储过程,通过增删数据库来引发。

鼠标操作:某个数据库→可编程性→数据库触发器

例:create trigger TR_student_Insert   ---(命名规则:TR为触发器,student为哪个表,insert为新增操作时触发)

on student  ---作用于哪个表

for insert ------for是新增之后触发,for还可以写成after

as

begin

select * from student

end

go

insert into student values(‘303‘,‘小明‘,‘男‘,‘1992-07-21‘,‘95033‘)

-----在增加完以上一条数据后,触发查询

替换:

create trigger TR_Student_Delete
on student
instead of delete
as
begin
 declare @sno int
 select @sno=sno From deleted
 delete from score where [email protected]
 delete from student where [email protected]
end
go
delete from Student where Sno=304
select *from student
insert into Score values(304,‘3-105‘,98)

deleted 为临时删除的内容,包含你将要执行的删除操作的内容

insert为临时增加

create trigger TR_student_inserted
on student
instead of insert
as
begin
 declare @sno int,@sname varchar(20),@ssex varchar(20),
 @sbirthday datetime, @class varchar(20)
 select @sno=sno,@sname=sname,@ssex=ssex,@sbirthday=sbirthday,@class=class from inserted
 if @ssex=‘男‘
 begin
  set @ssex=‘1‘
 end
 insert into student values(@sno,@sname,@ssex,@sbirthday,@class)
end
go
insert into student values(303,‘金拓‘,‘男‘,‘1992-07-21‘,‘95033‘)
select *from student

时间: 2024-09-29 10:07:27

2014-12-04 视图、触发器的相关文章

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

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

Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma

1.下载angularjs 进入其官网下载:https://angularjs.org/?,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.7/angular.js 所有版本:https://code.angularjs.org/ 2.示例1 HelloWorld ! 新建一个helloworld.html <!doctype html> <html ng-app> <head> &

2014/08/04 – Backbonejs

[来自: Backbone.js 开发秘笈 第1章] 各种模型实际上是通过扩展其基类 Backbone.Model 实现的.同理,定义的集合是靠扩展其基类 Backbone.Collection 而实现的. 控制器的功能被分散实现在 Backbone.Router 和 Backbone.View 当中. 路由器负责处理 URL 的变化,并且委派一个视图来继续处理应用.路由器(异步)获取模型后,随即触发一个视图的更新操作. 视图负责监听 DOM 事件.它要么对模型进行更新,要么通过路由器转移到应用

怎样安装 OpenJDK 8 in Ubuntu 14.04 &amp; 12.04 LTS

OpenJDK Java 8 has been made into official Ubuntu repositories for 14.10 Utopic and higher. For Ubuntu 14.04, Ubuntu 12.04, and Linux Mint 17 users here’s how to install it from PPA(Personal Pakage Archives)个人软件包档案.它是Ubuntu Launchpad网站提供的一项服务,允许个人用户上

Ubuntu 12.04.4 LTS 部署cap

一.系统环境 [email protected]:~$ cat /etc/issue Ubuntu 12.04.4 LTS \n \l [email protected]:~$ uname -ra Linux mode 3.11.0-15-generic#25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 二.创建用户 [email protected]:~$ sudo adduse

Bootstrap 3.2.0 源码试读 2014/08/04

第一部分 normalize.css 用于解决不同浏览器下显示不一致的问题 8至12行 html {   font-family: sans-serif;    /* 设置默认字体为 sans-serif */   -webkit-text-size-adjust: 100%;    /* 手机等设备转屏时,字体大小随着自动调整 */       -ms-text-size-adjust: 100%;    /* 但是如果禁用了缩放功能,则此设置无效 */ } text-size-adjust由

OK335xS Ubuntu 12.04.1 版本 Android 开发环境搭建

/******************************************************************************************** * OK335xS Ubuntu 12.04.1 版本 Android 开发环境搭建 * * 声明: * 1. 本人用的虚拟机是 VMware 10.0.5 64位: * 2. 本人测试过 Ubuntu 12.04.2.Ubuntu 12.04.4,.Ubuntu 14.04 版本,出现一些问题: * 1. U

Ubuntu 12.04 安装MySQL

转自: http://www.cnblogs.com/yhLinux/p/4012689.html 本文是对 Ubuntu 12.04 环境下安装 MySQL 的记录,通过这两天的折腾,不断试错,才发现要完整地掌握 MySQL 安装其实并不复杂,关键是遇到问题时记住到官方文档寻找解决方案,在网络上搜索的网友的方法不一定适合你,而官方文档是比较全面的,建议大家有问题多看看. 安装MySQL的方法有多种方式,包括源码安装,包管理器安装,二进制安装等.之前,我使用最快的方式--包管理器安装,但安装完成

SqlServer INSTEAD OF UPDATE 视图触发器问题

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

LAMP开发之环境搭建(2014.12.7在ubuntu下)

Ubuntu下搭建LAMP环境 前言:学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我搭建的是LAMP环境,即Linux.Apache.MySQL.PHP环境.网上搭建方法也有很多,但都不是最新的,本搭建时间为2014.12.07. 一.搭建环境 Lenovo Y470 VMWare9.0 Ubuntu 14.04.1 LTS (Trusty Tahr):ubuntu-14.04.1-desktop-i386.iso二.安装软件1