视图,存储过程和触发器

目录

 视图

 创建视图:

 视图的使用

 查看库中所有的视图

 删除视图

视图的作用:

存储过程:

为什么使用存储过程?

什么是存储过程?

 存储过程的创建

创建一个最简单的存储过程

使用存储过程

删除存储过程

带参的存储过程

存储过程的缺陷

存储过程和函数的区别

面试题

分页

触发器

什么是触发器?

创建触发器

例子:

查看触发器

删除触发器

存储过程和触发器的区别:


 视图

是从一个或者几个基本表(或视图)导出的表,它与基本表不同,是一个虚表

 视图只能用来查询,不能做增删改(虚拟表)

 创建视图

 create view 视图名【view_xxx / v_xxx】

 as 查询语句

create view v_stu_man as select * from student where ssex='男';

 视图的使用

select * from v_stu_man;

 查看库中所有的视图

select * from information_schema.VIEWS WHERE table_schema = 'myshool';

 删除视图

drop view v_stu_man;

视图的作用:
  1. 简化查询
  2. 重写格式化数据
  3. 频繁访问数据库
  4. 过滤数据

存储过程:

 本质上是一个函数

为什么使用存储过程?

业务流程复杂:业务复杂时,SQL语句相互依赖,顺序执行

频繁访问数据库:每条SQL语句都需单独连接和访问数据库;

先编译后执行:SQL语句的执行需要先编译。

什么是存储过程?

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后,再次调用不需要重复编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

 存储过程的创建

 create procedure 存储过程的名字【proc_xxx】(形参列表)

 BEGIN

  一组sql语句集

 END

创建一个最简单的存储过程

delimiter $$   -- 定制定界符

create procedure proc_test()

begin

select * from student;

end $$

delimiter ;  -- 恢复默认的定界符

使用存储过程

call proc_test();

删除存储过程

drop procedure proc_stuPage;

带参的存储过程

存储过程的缺陷

维护性:存储过程的维护成本高,修改挑选调试较为麻烦

移植性:大多数关系行数据库的存储过程存在细微差异

协作性没有相关的版本控制或者IDE,团队中对于存储过程的使用大多是依赖文档

存储过程和函数的区别

 关键字不同

执行和调用方式不同;

返回值不同;

功能不同。

面试题

分页

触发器

什么是触发器?
触发器是数据库中针对数据库表操作触发的特殊的存储过程。

创建触发器

delimiter $$

 create trigger 触发器名【trig_xxx】

before/after insert/ update/ delete

 on 表名 for each row

 begin

   触发后执行的一组sql语句

 end $$

 delimiter ;

主要针对表的增删改操作,可单独指定,也可全部指定

例子:

删除学生sid为1,在此之前把学生的成绩删除

(触发器先执行,再执行sql语句)

查看触发器

SELECT * FROM information_schema.`TRIGGERS`

WHERE trigger_schema = 'myshool';

删除触发器

DROP TRIGGER trig_delstu_delsc;

存储过程和触发器的区别:

语法:关键字不同,存储过程是procedure,触发器是trigger;

执行:存储过程需要调用才执行,触发器自动执行;

返回值:存储过程可以定义返回值,但是触发器没有返回值;

功能:存储过程是一组特定功能的SQL语句,触发器则是SQL语

句前后执行,本身不影响原功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/50011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端面试宝典【Javascript篇】【1】

欢迎来到《前端面试宝典》,这里是你通往互联网大厂的专属通道,专为渴望在前端领域大放异彩的你量身定制。通过本专栏的学习,无论是一线大厂还是初创企业的面试,都能自信满满地展现你的实力。 核心特色: 独家实战案例…

VMare centos 7 设置固定ip

第一步获取网关 查看虚拟机的网关-》编辑-》虚拟网络编辑器 NAT模式-》NAT设置 获取网关IP 192.168.70.2 第二步获取主机dns1 在本地主机获取dns1,本地主机调出cmd输入ipconfig dns1为192.168.31.1 用管理员权限的账号进入需要设置固定ip的虚拟机,在t…

使用AOP优化Spring Boot Controller参数:自动填充常用字段的技巧

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 使用AOP优化Spring Boot Controller参数:自动填充常用字段的技巧 前言为什么使用AOP为…

java8函数式编程学习(二):optional,函数式接口和并行流的学习

简介 java8函数式编程中optional的简单使用,函数式接口的了解,并行流的使用。 optional 可以更优雅的来避免空指针异常。类似于包装类,把具体的数据封装到optional对象内部,然后使用optional的方法去操作封装好的数据。 创建o…

Python编程入门指南:从基础到高级

Python编程入门指南:从基础到高级 一、Python编程语言简介 1. Python是什么? Python是一门广泛使用的计算机程序编程语言,由荷兰人吉多范罗苏姆(Guido van Rossum)于1991年首次发行。Python是一种解释型、交互式、面…

汽车免拆诊断案例 | 2018 款别克阅朗车蓄电池偶尔亏电

故障现象 一辆2018款别克阅朗车,搭载LI6发动机和GF6变速器,累计行驶里程约为9.6万km。车主反映,该车停放一晚后,蓄电池偶尔亏电。 故障诊断 接车后用虹科Pico汽车示波器和高精度电流钳(30 A)测量该车的寄…

Spring AOP(2)原理(代理模式和源码解析)

目录 一、代理模式 二、静态代理 三、动态代理 1、JDK动态代理 (1)JDK动态代理实现步骤 (2)定义JDK动态代理类 (3)代码简单讲解 2、CGLIB动态代理 (1)CGLIB 动态代理类实现…

【数据结构】稀疏数组

问题引导 在编写五子棋程序的时候,有“存盘退出”和“续上盘”的功能。现在我们要把一个棋盘保存起来,容易想到用二维数组的方式把棋盘表示出来,但是由于在数组中很多数值取默认值0,因此记录了很多没有意义的数据。此时我们使用稀…

Apache压测工具ab(Apache Bench)工具的下载安装和使用示例

场景 Jmeter进行http接口压力测试: Jmeter进行http接口压力测试_接口压测两万量-CSDN博客 上面讲压测工具Jmeter的使用,下面介绍另外一个ab(Apache Bench)压测工具的使用。 apache bench apache bench是apache自带的压力测试工具。 ab不仅可以对ap…

基于联盟链Fabric 2.X 的中药饮片代煎配送服务与监管平台

业务背景 近年来,随着公众对中医药青睐有加,中药代煎服务作为中医药现代化的重要一环,在全国各地蓬勃兴起。鉴于传统煎煮方式的繁琐耗时,医疗机构纷纷转向与第三方中药饮片企业合作,采用集中代煎模式。这些第三方煎药中…

没有51基础,能不能学好STM32?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「STM32的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 我们通常准备攻读一本大部…

浅谈监听器之断言结果

浅谈监听器之断言结果 在进行测试过程中,断言是一种关键组件,用于验证采样器(如HTTP请求)的响应数据是否符合预期。而“断言结果”监听器则是展示这些断言执行情况的重要工具,它帮助用户快速识别哪些断言通过或未通过…

【JAVA多线程】线程的状态控制

目录 1.JDK中的线程状态 2.基础操作 2.1关闭 2.2中断 2.3.等待、唤醒 2.4.阻塞、唤醒 1.JDK中的线程状态 在JDK的线程体系中线程一共6种状态: NEW(新建): 当线程对象创建后,但尚未启动时,线程处于新建状态。RUN…

python毕业设计选题校园食堂菜谱推荐系统

✌网站介绍:✌10年项目辅导经验、专注于计算机技术领域学生项目实战辅导。 ✌服务范围:Java(SpringBoo/SSM)、Python、PHP、Nodejs、爬虫、数据可视化、小程序、安卓app、大数据等设计与开发。 ✌服务内容:免费功能设计、免费提供开题答辩P…

stack(leetcode练习题,牛客)

文章目录 STL用法总结32 最长有效括号思路代码 496 下一个最大元素思路代码 856 括号的分数思路 最优屏障思路代码 STL用法总结 关于stack的知识,可以看点击查看上面的博客,以下题目前三个全在leetcode,最后一个在牛客 32 最长有效括号 思路…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十章 Linux设备树

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

代理IP在数据采集中具体有哪些作用

在当今信息化高速发展的时代,从市场趋势分析到消费者行为预测,从产品优化到服务改进,大数据都在其中扮演着不可或缺的角色。但数据的采集、整理和分析并非易事,特别是在面对海量的网络数据时,我们往往需要借助一些技术…

前端 SSE 长连接

使用 const options {withCredentials: true, // 默认 false}const eventSource new EventSource(/api, options);eventSource.addEventListener(open, () > {});eventSource.onmessage (event) > {}; // 或addEventListener(message,callback)eventSource.addEvent…

程序员拔火罐技能的分享

一.背景 之前为了考“中医康复理疗师”的证书,自学了拔火罐。自学主要是在自己大腿上练习,然后拿家人做小白鼠。后来考试没有那么严格也就顺利通过了。操作过程中,积累的一些小知识,分享给大家,有空在家里给家人服务体…

CTF ssrf 基础入门 (一)

0x01 引言 我发现我其实并不是很明白这个东西,有些微妙,而且记忆中也就记得Gopherus这个工具了,所以重新学习了一下,顺便记录一下吧 0x02 辨别 我们拿到一个题目,他的名字可能就是题目类型,但是也有可能…