精华内容
下载资源
问答
  • 从马克思认识论上来看,我们必须先认识事物是什么东西(即本质),然后才进一步认识事物是用来干嘛的(即属性)。于是,参考了下面的这篇CSDN论坛,和大家分享下,什么存储过程,它又有什么用。 ...

    第一章、简介

           网上百度了好几篇博客,都没有说明存储过程是什么东西?然后这个东西有什么用? 从马克思认识论上来看,我们必须先认识事物是什么东西(即本质),然后才进一步认识事物是用来干嘛的(即属性)。于是,参考了下面的这篇CSDN论坛,和大家分享下,什么是存储过程,它又有什么用。 https://bbs.csdn.net/topics/390631696

    第二章、什么是存储过程

    https://blog.csdn.net/z1729734271/article/details/52785013

    • 存储过程是SQL语句。
    • 存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
    • 存储过程是数据库层次的东西,一般我们在程序中使用sql语句都会在DBMS中经过编译运行,而存储过程是经过预编译的,因此执行速度更快。而且相比较把数据库相关的操作放到数据库中要比直接放到页面中“安全”。

           按照我的理解,存储过程就是如何增删改查数据表的过程,该过程以 SQL语句 形式表达出来, SQL语句 经过编译后被数据库保存,以达到更快、更安全目的。比直接在VS2015写C#语句访问数据表更快更安全。

    第三章、存储过程有什么用

    https://zhidao.baidu.com/question/179331690.html

    https://bbs.csdn.net/topics/390631696

    • 存储过程具有对数据库立即访问的功能。
    • 使用存储过程可以加快程序的运行速度。
    • 使用存储过程可以减少网络流量。
    • 使用存储过程可以提高数据库的安全性。

    具体如下:

    (1)、减少网络通信量。

           调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条一条的调用SQL语句要高得多。

    (2)、执行速度更快。

    有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用。

    (3)、更强的适应性。

    由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。

    (4)、布式工作。

    应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。

    第四章、存储过程使用方法

    http://www.cnblogs.com/selene/p/4483612.html(重点)

    https://www.cnblogs.com/kakarottoz/p/4947965.html

    https://www.cnblogs.com/chaoa/articles/3894311.html

    书本中,提到利用CarID可以快速获取到其对应的名字。

    于是,我把该章节实践了一下:

    其对应的代码为:

    CREATE PROCEDURE GetPetName
    @carID int,
    @petName char(10) output
    AS
    SELECT @petName = PetName from Inventory where CarID = @carID

    存储过程的名字为GetPetName,它根据第一行代码 而自动保存为GetPetName:

    CREATE PROCEDURE GetPetName
    
    展开全文
  • 从马克思认识论上来看,我们必须先认识事物是什么东西(即本质),然后才进一步认识事物是用来干嘛的(即属性)。于是,参考了下面的这篇CSDN论坛,和大家分享下,什么存储过程,它又有什么用。 ...

    参考:http://www.shareblogs.top/472/

    一、简介

    网上百度了好几篇博客,都没有说明存储过程是什么东西?然后这个东西有什么用?

    从马克思认识论上来看,我们必须先认识事物是什么东西(即本质),然后才进一步认识事物是用来干嘛的(即属性)。于是,参考了下面的这篇CSDN论坛,和大家分享下,什么是存储过程,它又有什么用。

    https://bbs.csdn.net/topics/390631696

    二、什么是存储过程

    https://blog.csdn.net/z1729734271/article/details/52785013

    存储过程是SQL语句。

    存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

    存储过程是数据库层次的东西,一般我们在程序中使用sql语句都会在DBMS中经过编译运行,而存储过程是经过预编译的,因此执行速度更快。而且相比较把数据库相关的操作放到数据库中要比直接放到页面中“安全”。

    三、存储过程有什么用

    https://zhidao.baidu.com/question/179331690.html

    https://bbs.csdn.net/topics/390631696

    存储过程具有对数据库立即访问的功能。
    使用存储过程可以加快程序的运行速度。
    使用存储过程可以减少网络流量。
    使用存储过程可以提高数据库的安全性。

    具体如下

    1)减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条一条的调用SQL语句要高得多。

    (2)执行速度更快。有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用。

    (3)更强的适应性:由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。

    (4) 布式工作:应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。

    四、存储过程使用方法

    http://www.cnblogs.com/selene/p/4483612.html(重点)

    https://www.cnblogs.com/kakarottoz/p/4947965.html

    https://www.cnblogs.com/chaoa/articles/3894311.html

    书本中,提到利用CarID可以快速获取到其对应的名字。

    于是,我把该章节实践了一下:

    其对应的代码为

    CREATE PROCEDURE GetPetName
    @carID int,
    @petName char(10) output
    AS
    SELECT @petName = PetName from Inventory where CarID = @carID

    存储过程的名字为GetPetName,它根据第一行代码 而自动保存为GetPetName。

    CREATE PROCEDURE GetPetName

     

     

    展开全文
  • 目录 修改隔离级别 存储过程 什么是存储过程 用来干什么 三种数据处理方式 备份与恢复 修改隔离级别 修改全局的 set global transaction isolation level read ...

    修改隔离级别

    修改全局的  
     set global transaction isolation level read committed;
     或者:
     set @@tx_isolation = "asasasasas-read";
     修改局部
     set session transaction isolation level read committed;
     
    
     @@系统内置变量
     @表示用户自定义的变量

    存储过程

    什么是存储过程

    是任意的sql语句的组合,被放到某一个存储过程中,类似于一个函数,有一个函数名/参数/还有函数体.

    用来干什么

    其中可以包含任何的sql语句,逻辑处理,事务处理,所有的我们学过的sql语句都可以放到里面

    三种数据处理方式

    1. 应用程序只关注业务逻辑,所有与数据相关的逻辑封装到mysql中

      • 优点:应用程序要处理的事情变少了,可以减少网络传输
    2. 应用程序既要处理业务逻辑,还要编写sql语句

      • 优点:降低了沟通成本,人力成本
      • 缺点: 网络传输增加,sql语句编写非常复杂
    3. 通过ORM框架, 使用对象关系映射,自动生成sql语句并执行
      • 优点:不需要在编写sql语句,提升了开发效率
      • 缺点:不够灵活,应用程序开发者和数据库完全隔离,可能导致仅关注上层开发,而不清楚底层原理
    # 语法
    create procedure p_name(p_type p_name p_date_type)
    begin
    sql......
    end
    
    # p_type 参数的类型  in 输入   out 输出必须是一个变量,不能是值    inout 即可输出也可输入  
    # p_name 参数的名字
    # p_data_type  参数的数据类型  如  int  float

    案例

    delimiter |
    create procedure a1(in a int, in b int, out c int) 
    begin
    set c = a + b;
    end |
    delimiter ;
    
    # 调用
    set @res =0;
    call a1(1,1,@res);
    select * from @res;
    
    # 删除
    drop procedure 名称;
    
    # 查看
    show create procedure 名称
    
    # 查看全部  例如 db库下的所有
    select name from mysql.proc where db = 库名 and  type = "PROCEDURE";
    
    delimiter |
    create procedure transfer2(in aid int,in bid int,in m float,out res int)
    begin 
        declare exit handler for sqlexception
        begin
            # 异常处理代码
            set res = 99;
            rollback;
        end;
        
        start transaction;
        update account set money = money - m where id = aid;
        update account set money = moneys + m where id = bid;
        commit;
        set res = 1;
    end|
    delimiter ;

    备份与恢复

    # 备份
    mysqldump.exe   
    mysqldump -u用户名 -p密码 数据库 表名1 表名2 .... > 文件路径....
    # 注意 第一个表示数据库  后面全都是表名
    mysqldump -uroot -p day41 student  > 
    
    
    #备份多个数据库
    mysqldump -uroot -p111 --databases day41 day40  > x3x.sql
    #指定 --databases 后导出的文件包含 创建库的语句   而上面的方式不包含
    
    #备份所有数据  
    mysqldump -uroot -p111 --all-databases > all.sql
    
    
    #自动备份
    linux crontab 指令可以定时执行某一个指令
    
    
    
    # 恢复数据:
    没有登录mysql 
    mysql < 文件的路径
    
    
    已经登录了MySQL 
    source  文件路径
    
    
    注意: 如果导出的sql中没有包含选择数据库的语句 需要手动加上 

    转载于:https://www.cnblogs.com/raynduan/p/11444766.html

    展开全文
  • 一直不太清楚存储过程,求大神解释一下,存储过程可以用来干什么?以及优缺点?
  • 了解什么存储过程

    千次阅读 热门讨论 2019-06-30 15:57:26
    在进行机房重构的下机过程时,看到好多人都用到了存储过程这一方法,不过当时自己不是很明白这是用来干什么的,在什么时候可以用。并且在网上看到很多去公司面试的程序员都有这样的一个经历:一些去大公司面试的...

    前言

           在进行机房重构的下机过程时,看到好多人都用到了存储过程这一方法,不过当时自己不是很明白这是用来干什么的,在什么时候可以用。并且在网上看到很多去公司面试的程序员都有这样的一个经历:一些去大公司面试的时候,几乎每个面试官在问到数据库的时候都会问到有没有用过存储过程,这些程序员同胞们心里都有很大的疑问,存储过程真的这么重要吗,曾经做过的项目也没有用到存储过程不也一样好好的运行出来吗。

           所以存储过程真的有那么重要吗,我们在什么时候用到它,它的好处跟作用又是什么?

    我们可以这样认为:在我们做一个复杂的项目时,会多次涉及到与数据库的连接,这时我们会一次次的来用SQL语句进行对数据库的连接,但如果我们这时用存储过程的话就只需要连接一次数据库就可以了,从而省去大量的SQL语句。面试官的问题其实也只是想看看你对代码技巧的熟悉度,或者是丰富的存储过程经验。想进大公司我们必须要熟练的掌握这些技能。

    到这里有些人会认为原来存储过程是面对大型的项目的啊,这中想法是不对的,其实对于我们现在做的这些小项目存储过程也是很重要的。我们可以以这样的一个思维逻辑来想一下:做大项目需要丰富的存储过程经验,但是我们没有做过大项目哪来的经验,而我们现在面试的又是大项目,那这样我们必将会被淘汰。所以我们要在一些中小项目里锻炼自己。不过这只是一种思维,其实存储过程在中小项目中的威力也不容小觑。

    我们来看一下存储过程的优点:

    1运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对齐进行了一次解析和优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度会比普通快。(就相当于操作系统中的TLB快表  )

    2.减少网络传输:存储过程直接就再数据库服务器上跑,所有的数据访问都在数据库服务器内部进行,不需要传输数据到其他服务器,所以会减少一定的网络传输,但是在存储过程中没有多次数据交互,那么实际上网络传输量和直接sql是一样的,而且我们的应用服务器通常与数据库是在同一内网,大数据的访问的瓶颈会是硬盘的速度,而不是网速。

    3.可维护性:存储过程有时候比程序更容易维护,这时因为可以实时更新DB端的存储过程,有些bug,直接改存储过程里的业务逻辑就搞定了。

    4.增强安全性:提高代码的安全,防止SQL注入,这一点sql语句也可以做到。

    5:可扩展性:应用程序和数据库操作分开,独立进行,而不是相互在一起,方便以后的扩展和DBA维护优化。

     

    通过上面第二条我们可以了解到存储过程是在数据库服务器上创建的,所以任何涉及到数据库的调整,存储过程就都得改动,所以即使存储过程好用我们也不能滥用。

    小编目前只能理解到这里,希望大家前来指导!

    展开全文
  • 7.27存储过程

    2019-07-27 10:17:59
    SQL是结构化查询语言,比较接近自然语言,使用...PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE......
  • oracle存储过程与job

    2017-08-13 22:25:00
    首先存储过程干什么的?job是干什么的? 存储过程:相当于一个复杂的sql,用来执行自定义的复杂的功能,创建了之后会存入一个表里,可以通过job来执行存储过程,实现我们需要的功能 job:实际上就是数据库内置的...
  • Oracle存储过程的调试

    2015-09-18 14:17:00
     首先,打开PLSQL DEVELOPMENT首先介绍一下,这个软件的各个窗口是用来干什么的。 如图,这是PLSQL工具左侧的窗口,每个窗口的作用,在这里,我们讨论如何在plsql中进行oracle的存储过程的调试功能。所以主要看2和...
  • 存储过程里面执行SQL语句

    千次阅读 2008-05-10 17:19:00
    存储过程里面执行SQL语句,看了下面的东东,懂的人自然知道用来干什么。:-)在你设计的网站用的数据库中加入下面的存储过程:drop proc xxx ----xxx存储过程名create proc xxx( @str nvarchar(4000))with ...
  • 可能不是很多人知道 RAISE_APPLICATION_ERROR 的用途是什么,虽然从字面上已经猜到这个函数是干什么用的。平时用来测试的异常处理,我们都是通过dbms_output.put_line来输出异常信息,但是在实际的应用中,需要把...
  • 答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。 2、讲下 MyBatis 的缓存 答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓 存放在它的命名空间里,默认...
  • (干货)数据结构与算法基础

    千次阅读 2021-02-26 13:44:05
    算法(Algorithm)就是定义良好的计算过程,取一个或一组值作为输入,并产生一个或一组值作为输出;简单地说,算法就是系列的计算步骤,用来将输入的数据转化为输出; 算法效率 算法效率分析分为两种:时间效率...
  • 答:MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。 2、讲下 MyBatis 的缓存 答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓存放在它的命名空间里,默认...
  • java中的常量池

    2021-04-05 20:57:24
    它是用来干什么的?二、java中有几种类型的常量池?三、字符串的两种创建方式有什么区别?四、字符串的intern()方法五、常量池对jvm的性能有哪些影响? 一、什么是常量池?它是用来干什么的? 一般来说我们所说的...
  • SQL和PL/SQL的区别

    2019-05-28 16:45:00
    SQL和PL/SQL的区别 1. SQL是结构化查询语言,比较接近自然语言,使用SQL,只...2. PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化...
  • Oracle 学习(四)PL/SQL

    2019-09-10 18:31:51
    一、SQL和PL/SQL的区别 SQL是结构化查询语言,比较接近自然语言,...PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQ...
  • sql和PL/Sql的区别

    2017-08-03 17:12:50
    SQL是结构化查询语言,比较接近自然语言,使用... PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE...
  • 【Docker】了解Docker

    2018-06-17 16:06:51
    Docker用来干什么? 1.可视作一个集装箱,用来打包程序,生产环境等一系列,能让应用跑起来的东西 2.标准化,将运输过程和存储过程标准化,并提供一些API接口 3.隔离,如果共用服务器的话,能将各个程序猿之间的生产环境...
  • SQL/PL SQL

    2018-03-20 21:43:09
    1 sql(数据定义语言) 和PL/Sql的区别:答:SQL是结构化查询语言,比较接近自然... PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,...
  • PL/SQL 学习笔记

    2015-10-14 10:41:38
    1 SQL(数据定义语言) 和PL/SQL的区别: 答:SQL是结构化查询语言,比较接近自然语言,使用...PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构
  • plsql和sql的区别

    万次阅读 2014-07-11 17:50:14
    1 sql(数据定义语言) 和PL/Sql的区别: 答:SQL是结构化查询语言,比较接近自然语言,使用...PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结
  • Oracle 简单介绍

    千次阅读 2017-09-22 18:30:37
    PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等控制过程的SQL。 2 具
  • 【数据库】sql server中的sys.sysobjects系统表

    千次阅读 热门讨论 2016-07-07 22:35:17
    虽然接触数据库也有些年头了,可是当我在存储过程中见到sysobjects的...他是用来干什么的?  sys.objects和sys.sysobjects,这个系统表,就在我们的四个系统数据库的下面,分别在其视图-系统视图的下面。其中  
  • sql,pl/sql,t_sql

    2008-04-28 14:00:00
    SQL是结构化查询语言,比较接近自然语言,使用SQL,只... PL/SQL,Oracle对SQL标准的扩充,增加了面向过程的功能,所以可以用来编写存储过程、存储函数、触发器等。 而MS_sql在SQL上的扩展是T_sql 转载于:http...
  • Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,...
  • Spring Batch流程介绍

    2013-08-14 19:08:00
    Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的也就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,...
  • Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的也就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,...
  • Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的也就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,Item
  • Nodejs-Cookie的设置

    千次阅读 2018-11-15 16:10:15
    在web开发的过程中 cookie 肯定需要接触的,一个典型的应用是关于用户登录...然后再打开网页的时候,自动发送保存的用户信息到服务端进行验证,具体cookie用来干什么的,可以自己google一下。 目前我自己使用了两种...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

存储过程用来干什么