精华内容
下载资源
问答
  • Sql存储过程

    2015-06-30 10:25:00
    (1)存储过程分为3: A.返回记录集的存储过程---------------------------其执行结果是一个记录集,例如:从数据库中检索出符合某一个或个条件的记录 B.返回数值的存储过程(也可以称为标量存储过程)-----其...
    (1)存储过程共分为3类:
      A.返回记录集的存储过程---------------------------其执行结果是一个记录集,例如:从数据库中检索出符合某一个或几个条件的记录
      B.返回数值的存储过程(也可以称为标量存储过程)-----其执行完以后返回一个值,例如:在数据库中执行一个有返回值的函数或命令
      C.行为存储过程-----------------------------------用来实现数据库的某个功能,而没有返回值,例如:在数据库中的更新和删除操作
     (2)含有return的存储过程其返回值为return返回的那个值
     (3)没有return的存储过程,不论执行结果有无记录集,其返回值是0
     (4)带输出参数的存储过程:假如有return则返回return返回的那个值,假如要select输出参数,则出现输出参数的值,于有无return无关

    转载于:https://www.cnblogs.com/jinhaoObject/p/4609664.html

    展开全文
  • SQl Server存储过程基础

    2010-05-12 16:31:00
    一、存储过程的概念  存储过程是SQL语句和可...在SQL Server中存储过程分为:即系统提供的存储过程和用户自定义的存储过程。  使用存储过程有个优点: 1.可以在单个存储过程中执行一系列SQL语句。 ...

     

    一、存储过程的概念

        存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。

    在SQL Server中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。

             使用存储过程有几下几个优点:

             1.可以在单个存储过程中执行一系列SQL语句。

             2.可以从自己的存储过程内引用其他存储过程,这可以简化一系列复杂语句。

           3.存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快,而且减少网络通信的负担。

             4.安全性更高,使用参数,天然的避免Sql注入。

    二、创建存储过程

        我们在使用Sql语句来创建存储过程前,应该考虑下列几个事项:

          1、不能将 CREATE PROCEDURE 语句与其它 SQL 语句组合到单个批处理中。

          2、存储过程可以嵌套使用,嵌套的最大深度不能超过32层。

          3、创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。

          4、存储过程是数据库对象,其名称必须遵守标识符规则。

          5、只能在当前数据库中创建存储过程。

          6、一个存储过程的最大尺寸为128M。

        创建存储过程的语法如下:

    ContractedBlock.gifExpandedBlockStart.gif代码
          CREATE PROCEDURE 存储过程名

      (

    参数1 参数类型
    =参数值 参数方向

    参数2 参数类型
    =参数值 参数方向

           )

          AS

      Begin

    存储过程体

    RETURN

       End

     

        下面我们使用示例来展示如何创建一个存储过程:        

    ContractedBlock.gifExpandedBlockStart.gif代码
    USE Northwind
    GO
     /*存储过程被创建之后,它的名字就存储在系统表sysobjects中,
    它的源代码存放在系统表syscomments中,所以在创建存储过程之前,
    先判断一下系统中是否已经创建过该存储过程了,如果创建过了,那么先删除该存储过程。*/
     If Exists(select * from sysobjects where name=’ myProcedure’ and type=’p’)
      Drop procedure myProcedure;
    GO
     
    Create Proc myProcedure
    ( @SupplierID_2 int,
    @CategoryID_3 int,
    @ProductName_1 nvarchar(40)='', --该参数默认值为’无’
    @ProductName_2 nvarchar(40) output)
    AS
      Begin
          Insert into Products   (ProductName,SupplierID,CategoryID)
                   values   (@ProductName_1,@SupplierID_2,@CategoryID_3);
    select @ProductName_2 = ProductName from products
                       where SupplierID = @SupplierID_1 ;
      end
    GO

     

      注意: 1. 语句体中,使用SET来给参数赋值。

                 2. 存储过程的所有变量的参数都需要用“@”作为开始符;

                 3. 在存储过程中能声明变量,能进行循环操作,如下:

    ContractedBlock.gifExpandedBlockStart.gif代码
    Create procedure BatchAddClass

    As

    Begin

    Declare @count
    int

    Set @count
    =10

    While @count
    >0

    Begin

    Insert into tbClass(ClassName) Values(@count)

    Set @count
    =@count-1

    End

    Return

    End

       上述语句实现了批量插入10条记录到tbClass表中;

     

    三、执行存储过程

      直接执行存储过程可以使用EXECUTE命令来执行,下面使用示例来执行存储过程:

     

    declare @product nvarchar(40)

    exec myProcedure
    1, 1001, @product output

    select
    '产品名'= @product

    go

     

      使用系统存储过程来查看用户创建的存储过程,可供使用的系统存储过程及其语法形式如下:

        sp_help:用于显示存储过程的参数及其数据类型

                   sp_help [name]

          参数name为要查看的存储过程的名称。

           sp_helptext:用于显示存储过程的源代码

                     sp_helptext [name]

          参数name为要查看的存储过程的名称。

           sp_depends:用于显示和存储过程相关的数据库对象

                     sp_depends [name]

          参数name为要查看依赖关系的存储过程的名称。

           sp_stored_procedures:用于返回当前数据库中的存储过程列表

     

    四、修改存储过程

      存储过程可以根据用户的要求或者基表定义的改变而改变。使用ALTER PROCEDURE语句可以更改先前通过执行 CREATE PROCEDURE 语句创建的过程,但不会更改权限,也不影响相关的存储过程或触发器。修改存储过程的方法和创建存储过程的方法一样,只是将创建存储过程的Create  Procedure改为Alter Procedure而已。

     

    五、重命名和删除存储过程

      1. 重命名存储过程

                    修改存储过程的名称可以使用系统存储过程sp_rename,其语法形式如下:

                          sp_rename  原存储过程名称,新存储过程名称

                 另外,通过企业管理器也可以修改存储过程的名称。

     

      2.删除存储过程

          删除存储过程可以使用DROP命令,DROP命令可以将一个或者多个存储过程或者存储过程组从当前数据库中删除,其语法形式如下:

                 drop    procedure {procedure} [,…n]

          当然,利用企业管理器也可以很方便地删除存储过程。

     

    六、存储过程的重新编译

       在我们使用了一次存储过程后,可能会因为某些原因,必须向表中新增加数据列或者为表新添加索引,从而改变了数据库的逻辑结构。这时,需要对存储过程进行重新编译,SQL Server提供三种重新编译存储过程的方法 :

        1、在建立存储过程时设定重新编译

           语法格式:

    CREATE PROCEDURE procedure_name

    WITH RECOMPILE AS sql_statement

         2、在执行存储过程时设定重编译

           语法格式:

    EXECUTE procedure_name WITH RECOMPILE

     

        3、通过使用系统存储过程设定重编译

            语法格式

    EXEC sp_recompile OBJECT

     

    七、系统存储过程与扩展存储过程

      1.系统存储过程

        系统存储过程存储在master数据库中,并以sp_为前缀,主要用来从系统表中获取信息,为系统管理员管理SQL Server提供帮助,为用户查看数据库对象提供方便。比如用来查看数  据库对象信息的系统存储过程sp_help、显示存储过程和其它对象的文本的存储过程sp_helptext等。

     

      2.扩展存储过程:

        扩展存储过程以xp_为前缀,它是关系数据库引擎的开放式数据服务层的一部分,其可以使用户在动态链接库(DLL)文件所包含的函数中实现逻辑,从而扩展了Transact-SQL的功能,并且可以象调用Transact-SQL过程那样从Transact-SQL语句调用这些函数。

    例:  利用扩展存储过程xp_cmdshell为一个操作系统外壳执行指定命令串,并作为文本返回任何输出。

    use master

    exec xp_cmdshell
    'dir *.exe'

     

        执行结果返回系统目录下的文件内容文本信息。

    转载于:https://www.cnblogs.com/RascallySnake/archive/2010/05/12/1733813.html

    展开全文
  • 大数据的处理过程可以分为大数据采集、存储、结构化处理、隐私保护、挖掘、结果展示(发布)等,各种领域的大数据应用一般都会涉及到这些基本过程,但不同应用可能会有所侧重。对于互联网大数据而言,由于其具有独特...

      大数据的处理过程可以分为大数据采集、存储、结构化处理、隐私保护、挖掘、结果展示(发布)等,各种领域的大数据应用一般都会涉及到这些基本过程,但不同应用可能会有所侧重。对于互联网大数据而言,由于其具有独特完整的大数据特点,除了共性技术外,采集技术、结构化处理技术、隐私保护也非常突出。

     

      有很多算法和模型可以解决这些处理过程中的技术问题,并且为了最终用户的使用方便,它们大都被进一步的封装,形成了比较简单易用的操作平台。目前大数据技术平台有很多,归纳起来可以按照以下方式进行分类:

     

      (1)从大数据处理的过程来分:包括数据存储、数据挖掘分析、以及为完成高效分析挖掘而设计的计算平台,它们完成数据采集、ETL、存储、结构化处理、挖掘、分析、预测、应用等功能。

     

      (2)从大数据处理的数据类型来划分:可以分为针对关系型数据、非关系型数据(图数据、文本数据、网络型数据等)、半结构化数据、混合类型数据处理的技术平台。

     

      (3)从大数据处理的方式来划分:可以分为批量处理、实时处理、综合处理。其中批量数据是对成批数据进行一次性处理,而实时处理(流处理)对处理的延时有严格的要求,综合处理是指同时具备批量处理和实时处理两种方式。

     

      (4)从平台对数据的部署方式看:可以分为基于内存的、基于磁盘的。前者在分布式系统内部的数据交换是在内存中进行,后者则是通过磁盘文件的方式。

     

      此外,技术平台还有分布式、集中式之分,云环境和非云环境之分等。阿里云大数据平台构建在阿里云云计算基础设施之上,为用户提供了大数据存储、计算能力、大数据分析挖掘、以及输出展示等服务,用户可以容易地实现BI商业智能、人工智能服务,具备一站式数据应用能力。

     

      不同的大数据技术平台提供了对这些处理过程的支持,有的平台可能会支持多个过程,但是侧重点也不同,支持的深度也有所不同,因此有必要熟悉各种平台的功能,并做出比较分析,以便在实际应用中选择适合于自己需求的技术平台。

     

      选择一个合适的大数据技术平台是非常重要的,它能够使得大数据应用开发更加容易、让开发人员更集中精力在业务层面的数据分析与处理上。一些共性的基础问题,例如数据如何存储、如何检索、数据统计等,就可以由平台来完成。选择合适的大数据技术平台应当考虑以下因素:

     

      (1)平台的功能与性能:由于不同平台侧重的功能不同,平台的性能也就有很多需要考察的方面。比如对于存储平台来说,数据的存储效率、读写效率、并发访问能力、对结构化与非结构化数据存储的支持,所提供的数据访问接口等方面就是比较重要的。对于大数据挖掘平台来说,所支持的挖掘算法、算法的封装程度、数据挖掘结果的展示能力、挖掘算法的时间和空间复杂度等,是比较重要的指标。

     

      (2)平台的集成度:好的平台应该具有较高的集成度,为用户提供良好的操作界面,具有完善的帮助和使用手册、系统易于配置、移植性好。同时随着目前软件开源的趋势,开源平台有助于其版本的快速升级,尽快发现其中的bug,此外,开源的架构也比较容易进行扩展,植入更多的新算法,这对于最终用户而言也是比较重要的。

     

      (3)是否符合技术发展趋势:大数据技术是当前发展和研究的热点,其最终将走向逐步成熟,可以预见在这个过程中,并非所有的技术平台都能生存下来。只有符合技术发展趋势的技术平台才会被用户、被技术开发人员所接受。因此,一些不支持分布式、集群计算的平台大概只能针对较小的数据量,侧重于对挖掘算法的验证。而与云计算、物联网、人工智能联系密切的技术平台将成为主流,是技术发展趋势。

     

      技术迭代更新速度加快,当我们花很多时间去掌握熟悉某种技术平台后,可能新的更好的技术平台出现了,导致我们受累奔波于各种技术平台,因此,最好的策略就是全面系统地掌握大数据技术的原理和实现方案,这样学习新的技术平台就很容易上手。

    展开全文
  • 1.存储过程是一个用户定义的函数,由...2.存储过程语言(Stored Procedure Language),只能与在存储过程中,主要分为以下几类:  (1)变量定义和赋值:define、let  (2)流程控制:if then else if else end if;
    1.存储过程是一个用户定义的函数,由存储过程语句SPL(Stored Procedure Language)和一组SQL语句组成。
    2.存储过程语言(Stored Procedure Language),只能与在存储过程中,主要分为以下几类:
            (1)变量定义和赋值:define、let
            (2)流程控制:if then else if else end if;
                    循环语句:for、foreach、while、exit、continue
            (3)函数调用与返回:call、system、return
            (4)错误处理和调试:trace、on exception、raise exception
    例子:
    drop procedure count_add;
    create procedure count_add(user_name_var varchar(50) default 'administrator') returning  varchar(50);
    define error_count_var integer; 
    select error_count into error_count_var from users where user_name = user_name_var;
    let error_name_var = error_name_var 1;
    update users set error_count = error_count_var where user_name = user_name_var return user_name_var;
    return user_name_var with resume;
    end procedure document 'this is a error count procedure' with listing in '/export/home/xie/errorcount.txt';

    3.创建存储过程
        语法:
                CREATE [DBA] PROCEDURE 过程名(参数 数据类型.......)
                    RETURNING子句
                    语句块
                    END PROCEDURE
                    document子句
                    WITH LISTING IN文件名
            其中过程名:创建存储过程的名称;
                   参数:调用存储过程所需的参数个数和类型;
                   RETURNING子句:可以返回任何值,可以返回一个或者多个值,也可以返回多组值。
                   语句块:由SPL语句和SQL语句组成。
                   document子句:对存储过程做一些说明,可以省略。
                   WITH LISTING IN文件名:接收编译器输出信息的文件名,可以省略,编译器不产生输出。
        例子
        create procedure procname(var_num integer default null) 
        delete from proctable where colno = var_num;
        end procedure;
        execute procedure procname(11);
    4.return语句
        从存储过程中返回0个或多个值,其中return语句的返回值的个数和类型必须与创建存储过程时说明的returning子句的返回值个数和类型相同,或者不返回任何值
        create procedure proc_new() returning int,int;
        define num1;
        define num2;
        .......
        return num1,num2;
        end procedure;
    5.从SQL语句中调用存储过程
        select * from users where number = proc_new(23);
    6.call语句
        从一个存储过程中调用另一个存储过程 两种格式:
             CALL 过程名(参数....) RETURNING 变量,...;
             CALL 过程名(参数名=参数,....) RETURNING 变量,...;
    7.存储过程语言
        变量
            1.局部变量
                仅在本存储过程中有效的变量,局部变量不允许有缺省值;
            2.全局变量
                在同一用户活动期间,存储过程中的被统一数据库的其他存储过程访问的变量,全局变量必须在所有的存储过程中定义,并且必须给出缺省值,实际的缺省值是第一次被访问时定义的缺省值。
    8.局部变量的定义
          使用define语句定义变量,其类型可以是除了serial数据类型外的所有SQL数据类型;定义text或者byte类型变量时,需要在变量前标注references,以表明该变量不含真正的数据,只是指向数据的指针;
          可以使用like定义与字段类型一致的数据类型。
                如:  DEFINE i,j INT;    DEFINE name VARCHAR(20);
                        DEFINE time_stamp DATETIME YEAR TO SECOND DEFAULE CURRENT YEAR TO SECOND;    
                        DEFINE txt REFERENCES TEXT;    
                        DEFINE by REFERENCES BYTE;    
                        DEFINE p_customer LIKE users.cutomer_num;
       9.变量赋值
            (1)使用LET语句  
                    LET i,j = 1,0;
                    LET var_name,var_num = (select username ,usernum from users where usernum = 100;)
            (2)使用SELECT或SELECT...INTO语句
                    select username into var_name from users where usernum = 100;
            (3)利用CALL语句
                    call proc_new(22) returning var_no1;
            (4)利用EXECUTE PROCEDURE...INTO语句
                        execute proceduce proc_name(username,address into p_name,p_addr);
    展开全文
  • 大数据的处理过程可以分为大数据采集、存储、结构化处理、隐私保护、挖掘、结果展示(发布)等,各种领域的大数据应用一般都会涉及到这些基本过程,但不同应用可能会有所侧重。对于互联网大数据而言,由于其具有独特...
  • 存储过程简介 根据返回值类型的不同,我们可以将存储过程分为:返回记录集的存储过程, 返回数值的存储过程(也可以称为标量存储过程),以及行为存储过程。顾名思义,返回记录集的存储过程的执行结果是一个...
  • JVM所管理的内存分为以下个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。程序计数器(Program Counter Register)一块较小的内存空间,它是当前线程所执行的字节码的信号指示器,字节码...
  • 加载过程

    2020-08-25 15:36:43
    连接过程又可分为三步:验证->准备->解析。 加载 加载过程的第一步,主要完成下面3件事情: 通过全类名获取定义此类的二进制字节流 将字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成...
  • 非关系型数据库可以分为以下几类:对于爬虫爬取的数据来说,可能会有数据缺失、数据结构嵌套等情况,如果使用关系型数据库村粗的话,需要提前建表,而且表之间的关系关系,数据的序列化等都比较麻烦。如果使用非关系...
  • 文件读写只支持NSString,NSarray ,NDictionary,NSdata,既简单对象的数据持久化那么对于一些自定义的复杂对象我们就需要进行数据的归档存储,一般我们对于一些比较复杂的数据对象的归档大致分为下列个步骤: ...
  • Linux下c内存映像 ...代码段在编译时就定好了,在程序的运行过程中,不能在代码段去开辟空间,以及释放空间。 包含哪部分 ELF头、段头部表、init节 参考:剖析可执行文件ELF组成 .text 指...
  • 1.加载过程一:装载(Loading) 加载分为加载、链接、初始化三步。 这篇文章主要介绍的装载。 的加载过程说明: 1.加载通过的全限定名获取此类的二进制字节流。 2.将字节流所代表的静态存储结构转化层...
  • STL容器主要分为两种,一种是序列容器,包括vector,list,deque等。另外一种是关联式容器,主要map,set。在实际使用过程中,主要按照数据存储的场景来选择容器。 在实际使用时,如何选择这三个容器中哪一个,...
  • 【论述题】S50卡的存储结构是什么?【单选题】以下关于GCC选项说法错误的是: 。【论述题】RFID基础实验电路板有种?每种可以做哪实验。【单选题】存盘并退出vi的指令是_____。【单选题】镀锌钢管不能采用以下何种...
  • 变量在内存中的存储

    千次阅读 2016-04-04 18:26:36
    C和C++中有全局变量,静态变量以及局部变量等几类。全局变量和静态变量是在编译的时候就已经分配好在数据段,也就是说在执行main函数之前就已经分配好了地址,如果定义的时候已经初始化,那么就存放初始化的值,如果...
  • 分为客户端和服务端两个部分,client 是使用 Egret 实现的,server 是使用 matchvs gameServer nodejs版实现。项目目录结构如下: ┌-client Egret实现的客户端代码 ├-gs-server Matchvs gameServer nodejs 实现的...
  • 虚拟机加载机制

    2019-05-08 17:50:53
    的加载过程总共分为加载,验证,准备,解析,初始化,使用,卸载这个步骤。 其中验证,准备,解析,统称为连接阶段。 第一步:加载 这里的加载不代表的加载的全过程,它比较局限而且该过程是和连接阶段是...
  • 系统数据库有information_schema、 mysql、 performance_schema 、sys等几类。 自己可以创建用户数据库。 数据库可以保存表、视图、存储过程、函数、触发器、事件等。 创建数据库: 法一:在SQLyog软件下右键...
  • java的加载原理

    2020-09-16 23:08:48
    主要分为以下过程:加载、验证、准备、解析、初始化; 加载: 加载分为三步: 1、通过的全限定性类名获取该的二进制流; 2、将该二进制流的静态存储结构转为方法区的运行时数据结构; 3、在堆中为该生成...
  • 然后又是因为用到了存储过程,所以时间操作必定要在数据库中完成 所以就简单的看了下 SQL server 的 Date 数据类型和相关的内置函数 Date分类 Date 数据类型可以分为一下种: 数据类型 描述 样式 存储 ...
  • 一、JDBC基础 1、持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”...3、在Java中,数据库存取技术可分为如下几类: //JDB
  • 而这些可以分为三大,数组、集合、泛型。这三大也是c#对集合数据处理的演化过程。通过以下区别可以更好的在开发过程中进行择优选择,提高程式性能。 一:数组与集合的区别1.数组是固定大小的,不能伸缩。虽然...
  • 种常见的排序方法

    2013-10-23 08:06:29
     主要分为两大:内部排序:待排序的记录全部存放在计算机内存中进行的排序过程  外部排序:待排序的记录数量很大,内存不能存储全部记录,需要对外存进行访问的的排序过程  我们主要研究内部排序的方法,包括:...
  • 在一个C\C++程序中,变量的储存位置可以分为以下几类: 全局变量:这种变量一般存储在PE文件的.data段中,在程序初始化时由用户或者编译器进行初始化; 局部变量:这种变量存储于程序的栈中,在程序刚刚进入一个...
  • 程序执行流程我把它划分为以下个步骤:编辑源码、编译生成...方法区:用于存放、接口的元数据信息,加载进来的字节码数据都存储在方法区 Java栈(虚拟机栈):执行引擎运行字节码时的运行时内存区,采用栈帧...
  • OpenGL的种缓存

    千次阅读 2012-05-17 10:22:45
    屏幕是由一个个具有颜色的微小正方形组成的,这微小正方形称为像素。为了在屏幕上显示三维场景,最终必须将三维模型分解成许许多多的像素,这...根据缓存中包含的信息类型可以将它分为以下4:  ·颜色缓存(Color Bu
  • Day18个人总结 一、对象流 ...具体实现过程分为以下步: 1、创建要存储中属性加上transient修饰符值将不会被写入文件) 2、使创建的实现序列化接口 这里需要注意的是在实现序...
  • 规范中规定 task 分为两大,分别是 macro task 和 micro task,并且每个 macro task 结束后,都要清空所有的 micro task。 <pre><code>js for (macroTask of macroTaskQueue) { // 1. Handle ...
  • jobs 抓取数据并存储实现。 libs 通用工具。 web 前端展示框架。 supervisor 进程管理工具。 3,应用部署 需要mysql数据库启动。项目放到/data/stock 目录。 CREATE DATABASE IF NOT EXISTS `stock_data` ...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 321
精华内容 128
关键字:

存储过程分为几类