20151016学习内容:触发器;分页语句;事务

20151016:
--触发器:一种特殊的存储过程,通过对数据库表操作的
--动作,来触发,增删改

alter trigger Fruit_Insert_After  --修改用alter
on fruit  --对哪个表操作的时候执行触发器
instead of insert -- for  --(update,delete) for的意思是动作之后触发after等同
as
    select *from inserted  --inserted临时表,就是增加的数据
go

select *from student
select *from score

delete from student where sno=101--有主外键关系

alter trigger student_delete_instead
on student
instead of delete
as
    --先删除外键表数据
    delete from score where sno in( select sno from deleted )
    --再删主键表
    delete from student where sno in (select sno from deleted)
Go

--分页语句:查询-10的数据(尽量用主键唯一查询)
select top 5 *from car order by price desc
go
select top 5 *from car where code not in (select top 5 code from car)
go
select top 5 * from car where code not in (select top 10 code from car)
go
use shujuData
go
select * from score
go
select top 5 a.sno,a.cno,a.degree from Score as a
left join (select top 5 *from Score) as b on a.sno=b.sno and a.cno=b.cno
where b.sno is null--判断是否为空is

--事务:出现错误时,会返回最开始的过程;
--保障流程的完整执行,如果一步失败就会返回到起点

select *From student
select *From score

begin tran --在流程开始的位置

    delete from student where sno=‘304‘
    delete from Student where Sno=‘303‘

if @@ERROR>0--看全局变量里是否有错误记录
begin
    rollback tran--回滚事务
end
else
begin
    commit tran--提交事务
end
时间: 2024-12-18 06:15:39

20151016学习内容:触发器;分页语句;事务的相关文章

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

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

mysql中的索引、触发器、和事务

一.索引 1.什么是索引 如果把表看做一本书,索引就好像书里的目录或者书签,能帮助你快速找到你要检索的内容,所以叫做索引. 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如 果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合 要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已 经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个 记录,通过索引查找记录至少要比

基于asp.net + easyui框架,一步步学习easyui-datagrid——实现分页和搜索(二)

http://blog.csdn.net/jiuqiyuliang/article/details/19967031 目录: 基于asp.net + easyui框架,一步步学习easyui-datagrid——界面(一) 基于asp.net + easyui框架,一步步学习easyui-datagrid——实现分页和搜索(二) 基于asp.net + easyui框架,一步步学习easyui-datagrid——实现添加.编辑.删除(三) 基于asp.net + easyui框架,一步步学习e

JAVA学习之 实现分页查询

分页是系统中常用到的功能,只要涉及到查询必定伴随而来的就是分页,之前也学习过关于分页的内容,例如在牛腩的新闻发布系统,之前学习的大部分都是使用了假分页,这次学习java,使用Oracle数据库来实现一下真分页. 首先来说一下实现这个分页查询的流程: 一.封装分页信息: 需要分页的部分我们首先要做的是为分页封装一个分页实体,方便返回查询信息,封装如下: /** *封装分页信息 * @author YoungJong * */ public class PageModel<E> { //结果集 p

2015.7.29学习内容

2015.7.29学习内容 一.Switch选择结构 1.回顾 01.在Java中如何产生一个随机数 Math.random()    随机数范围:0到1,能取到0,取不到1 02.equals(): 在Java中,如果比较两个字符串用==的话,会出现错误,所以以后我们只要是对字符串类型进行对比,统一使用equals方法 2.Switch选择结构 Switch(char/int){ case 1: //语句 break; case 2: //语句2 break; default: //默认语句

(八)Oracle学习笔记—— 触发器

1. 触发器简介 触发器在数据库里以独立的对象存储,类似于过程(procedure)和函数(function),都有声明,执行和异常处理过程的PL/SQL块.它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数. 所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT.UPDATE及DELETE操作或对视图进行类似的操作.ORACLE将触发器

Python新手学习基础之条件语句——elif语句

elif语句 (相当于C语言的else if) 在Python中,当我们需要有更多的判断条件时,我们往往会使用另外一种语法表达,即使用elif: if 判断条件1: 执行语句1 elif 判断条件2: 执行语句2 elif 判断条件3: 执行语句3 ...... else: 执行语句n 现在我们有一个任务要完成,假设现在有一个分数,你他的等级如下: 90分及以上属于A:80分到89分属于B:70到79分属于C:60分到69分属于D: 0到59分属于E: 你需要用if/elif/else语句根据分

周三(2015.7.22)学习内容

周三(2015.7.22)学习内容: 一.计算机程序是什么? 就是为了解决某一个问题而编写的一系列有序指令的集合. 二.Java的相关技术有哪些? JavaSE(桌面应用程序)  JavaEE(网站)  JavaME(手机应用),现在已被Android取代 三.开发Java程序的步骤有哪些? 首先编写,接着编译,然后运行. 编写一个Java程序的详细步骤 1.配置环境变量 (1).首先对我的电脑点击右键→属性→高级系统设置→环境变量→系统变量,在系统变量中查找有没有名称为path的变量名,如果有

周日学习内容(2015.7.26)

周日学习内容(2015.7.26) 一.流程控制初步 流程控制结构:顺序结构,选择结构,循环结构. 二.逻辑运算符 &&:逻辑与(表达式1&&表达式2 同真为真,其余为假). ||:逻辑或(表达式1&&表达式2 有真必真,其余为假). !:逻辑非(取反) 三.if-else选择结构 语法: if(){ }else{ } 四. java中产生随机数方法 范围:从0到1,能取到0,但是取不到1 五.多重if选择结构 if(表达式1){ 语句1 }else if(