精华内容
下载资源
问答
  • sql2000数据库存储图片,.net 数据库存储图片,数据库存储图片
  • 3 数据库存储引擎 3.1 InnoDB 3.2 MyISAM 3.3 MEMORY 3.4 存储引擎的选择 首先数据库是指长期存储在计算机内、有组织的和可共享的数据集合。简而言之,数据库就是一个存储数据的地方。只是,其存储方式有特定的规律...
  • 本地数据库储存

    2017-06-30 10:06:22
    数据储存之本地数据库储存
  • 列式数据库存储原理 据库存储原理 存储原理 列式数据库存储原理 列式数据库存储原理
  • MySQL数据库存储过程讲解与实例

    万次阅读 多人点赞 2018-06-03 00:48:17
    SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。...

    存储过程简介

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

        存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟,它允许控制数据的访问方式。

        存储过程的优点:

        (1).增强SQL语言的功能和灵活性:存储过程可以用控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

        (2).标准组件式编程:存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。

        (3).较快的执行速度:如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。

        (4).减少网络流量:针对同一个数据库对象的操作(如查询、修改),如果这一操作所涉及的Transaction-SQL语句被组织进存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是该调用语句,从而大大减少网络流量并降低了网络负载。

        (5).作为一种安全机制来充分利用:通过对执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。

    MySQL的存储过程

        存储过程是数据库的一个重要的功能,MySQL 5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0开始支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。

    MySQL存储过程的创建

        语法

    CREATE PROCEDURE  过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体

    DELIMITER //
      CREATE PROCEDURE myproc(OUT s int)
        BEGIN
          SELECT COUNT(*) INTO s FROM students;
        END
        //
    DELIMITER ;
        分隔符

        MySQL默认以";"为分隔符,如果没有声明分割符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“DELIMITER //”声明当前段分隔符,让编译器把两个"//"之间的内容当做存储过程的代码,不会执行这些代码;“DELIMITER ;”的意为把分隔符还原。

        参数

        存储过程根据需要可能会有输入、输出、输入输出参数,如果有多个参数用","分割开。MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT:

    IN参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值OUT:该值可在存储过程内部被改变,并可返回INOUT:调用时指定,并且可被改变和返回

        过程体

        过程体的开始与结束使用BEGIN与END进行标识。

    MySQL实例与讲解

    1. 创建一存储过程,求l+2+3+…+n,并打印结果

    先使用MySQL语句创建存储过程,再使用call语句调用这一存储过程查看结果,可以看到由于未输入n的值,sum结果为0。

    2.调用上面addresult存储过程,打印l十2+3+…+10的结果

    在第一题的addresult过程基础上,加上一条“set n=10”语句,设定n的值,调用该过程后打印结果,可以看到结果为sum=1+2+3+...+10=55。

     

    3. 修改上述存储过程addresult1,使得n为输入参数,其具体值由用户调用此存储过程时指定。

    在这里需要注意的是,MySQL存储过程只能改名字和定义,不能改里面的内容。要删了重新建。所以这里选择重新建立一个addresult1过程,调用后输入n,查看打印结果。

     

    4.上面修改后的addresult1存储过程,打印l+2+3+…+100的结果

    调用上述过程,输入参数n为100,可以看到打印结果中sum=5050,结果正确。


    5.
    修改上述存储过程addresult2n参数设定默认值为10,并改设sum为输出参数,让主程序能够接收计算结果。

    3中存储过程中的“in n int”修改为“out sum int”,并在存储过程中设定n默认值为10。

     

    6.调用上面修改后的addresult2存储过程,设置变量接收计算l+2+3+…+10的结果

    调用addresult2过程,可以看到输出结果sum=55。

     

    7.创建一存储过程Proc_Student,用于显示学号为“0102”的学生基本信息包括学号、姓名、性别和系

    创建存储过程,将查询语句写在存储过程中,相当于将一个查询语句封装在存储过程中,通过调用这个存储过程,便可执行该查询操作。

     

    8.创建一存储过程Stu_grade通过读取某门课的编号求出不及格的学生的学号

    同上一题,将查询过程封装在存储过程中,并且使用“int ID int”来实现课程编号的自定义输入,再根据输入的课程编号进行查询。

     

    9.调用上面的存储过程Stu_grade,求出课程编号为“0101”的不及格的学生

    调用存储过程Stu_grade,输入课程编号为“0101”,查看打印结果。

     

    10.创建一存储过程avgGrade,通过读取学生的学号以参数形式返回该学生的平均分

    在创建存储过程时,设定学号为输入,平均成绩为输出,且因为平均成绩可能出现小数,所以设定其数据类型为float。通过select语句将平均分以参数形式返回。

     

    11.调用上面的存储过程avgGrade,求出学号为“990102014”的平均分

    输入学号与输出参数,可以看到该学生的平均成绩被打印出来。

     

    12.删除上述存储过程avgGrade

    对于存储过程的删除,使用drop语句即可。

     

    13.创建存储过程search,该存储过程有三个参数,分别为t、p1,p2,根据这些参数,找出书名与t有关,价格在p1与p2(p2>=p1)之间的书的编号,书名,价格,出舨日期。如果用户调用时没有指定t参数的值.则表示可为任意值,如用户没有指定p2,则书本价格没有上限。用到的关系为:titles (title_id,title,price,pubdate)。

     



    14.调用上面的存储过程search,求出书名与computer有关而且价格小于$20大于$10的书。

    调用存储过程search,将参数computer,10,20传入,查看打印结果。



     


    总结

        本次主要是掌握了对于存储过程的使用,总的来说,存储过程实际上类似于C++中的函数,而在C++中我们是需要在创建这一过程的文件中去调用这一函数,但是对于存储过程来说,相当于是将这一操作过程存储在数据库中,可以使用call与对其进行调用,并输入或者输出一些参数和结果。

        印象最深的是类似“in n int”和“out sum int”这样的对于输入输出的定义,通过查看相关博客,可以总结如下对于输入输出定义的使用规律:

        MySQL存储过程的参数用在存储过程的定义,共有三种参数类型

        IN,OUT,INOUT
        格式为:Create procedure|function([[IN |OUT |INOUT ] 参数名 数据类形...])

        IN 输入参数
            表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值

        OUT 输出参数
            该值可在存储过程内部被改变,并可返回

        INOUT 输入输出参数
            调用时指定,并且可被改变和返回

        IN 和 OUT在实验中已有体会,主要是对INOUT的理解,这里引用一个例子:

     

    参数inout的使用实例(既能输入一个值又能传出来一个值)
        语句功能:传一个年龄,自动让年龄增长10岁
        create procedure p3(inout age int)
        begin
        set age:=age+10;
        end
        其中:调用的时候,inout型的参数值既是输入类型又是输出类型,给它一个值,值不是变量,因此我们需要先设置一个变量并初始化这个值,调用的时候直接传这个变量即可。
        set @currentAge=8$
        call p3(@currentAge)$
        select @currentAge$
        创建并执行完存储过程,运行结果如下:
            

     

    另外,更多关于数据库、网络技术、信息安全等方面的文章,感兴趣的(尤其是想打CTF的)欢迎来我的博客上看看

    展开全文
  • android 数据库存储

    2014-07-07 23:53:05
    android 数据的储存,详细的介绍了1:使用SharedPreferences存储数据 2:文件存储 3:SQLite数据库存储 4:ContentProvider
  • java Web 读取数据库存储图片。 java Web 读取数据库存储图片。
  • mysql数据库储存过程

    千次阅读 2019-08-28 20:26:23
    mysql数据库储存过程 mysql数据库的 ‘储存过程’ 其实就是把多个select操作的语句封装起来,再给他们一个名称用来以后的调用,你可以理解为python中的函数,差不多 优点 1 通过吧处理封装在容易使用的单元中,简化...

    mysql数据库储存过程

    mysql数据库的 ‘储存过程’ 其实就是把多个select操作的语句封装起来,再给他们一个名称用来以后的调用,你可以理解为python中的函数,差不多

    优点

    1 通过吧处理封装在容易使用的单元中,简化复杂的操作

    2 由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果开发人员和应用程序都使用了同一存储过程,则所使用的代码是相同的。还有就是防止错误,需要执行的步骤越多,出错的可能性越大。防止错误保证了数据的一致性。

    3 简化对变动的管理。如果表名、列名或业务逻辑有变化。只需要更改存储过程的代码,使用它的人员不会改自己的代码了都。

    4 提高性能,因为使用存储过程比使用单条SQL语句要快

    5 存在一些职能用在单个请求中的MySQL元素和特性,存储过程可以使用它们来编写功能更强更灵活的代码

    换句话说3个主要好处简单、安全、高性能

    缺点

    1 一般来说,存储过程的编写要比基本的SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。

    2 你可能没有创建存储过程的安全访问权限。许多数据库管理员限制存储过程的创建,允许用户使用存储过程,但不允许创建存储过程

    存储过程是非常有用的,应该尽可能的使用它们

    创建储存过程:
    CREATE PROCEDURE 存储过程名()

           一个例子说明:一个返回产品平均价格的存储过程如下代码:
    
           CREATE  PROCEDURE  productpricing()
    
           BEGIN
    
            SELECT Avg(prod_price)  AS priceaverage
    
           FROM products;
    
           END;
    

    //创建存储过程名为productpricing,如果存储过程需要接受参数,可以在()中列举出来。即使没有参数后面仍然要跟()。BEGIN和END语句用来限定存储过程体,过程体本身是个简单的SELECT语句

    在MYSQL处理这段代码时会创建一个新的存储过程productpricing。没有返回数据。因为这段代码时创建而不是使用存储过程。

    Mysql命令行客户机的分隔符

    默认的MySQL语句分隔符为分号 ; 。Mysql命令行实用程序也是 ; 作为语句分隔符。如果命令行实用程序要解释存储过程自身的 ; 字符,则他们最终不会成为存储过程的成分,这会使存储过程中的SQL出现句法错误
    解决方法是临时更改命令实用程序的语句分隔符

            DELIMITER //    //定义新的语句分隔符为//
    
            CREATE PROCEDURE productpricing()
    
            BEGIN
    
            SELECT Avg(prod_price) AS priceaverage
    
            FROM products;
    
            END //
    
            DELIMITER ;    //改回原来的语句分隔符为 ;
    
            除\符号外,任何字符都可以作为语句分隔符
    
        CALL productpricing();  //使用productpricing存储过程
    
        执行刚创建的存储过程并显示返回的结果。因为存储过程实际上是一种函数,所以存储过程名后面要有()符号
    

    删除储存过程

    DROP PROCEDURE productpricing ;    
     //删除存储过程后面不需要跟(),只给出存储过程名
    
    为了删除存储过程不存在时删除产生错误,可以判断仅存储过程存在时删除
    
        DROP PROCEDURE IF EXISTS
    

    一般存储过程并不显示结果,而是把结果返回给你指定的变量
    在这里插入图片描述

    CREATE PROCEDURE productpricing(
    
            OUT p1 DECIMAL(8,2),
    
            OUT ph DECIMAL(8,2),
    
            OUT pa DECIMAL(8,2),
    
            )
    
            BEGIN
    
            SELECT Min(prod_price)
    
            INTO p1
    
            FROM products;
    
            SELECT Max(prod_price)
    
            INTO ph
    
            FROM products;
    
            SELECT Avg(prod_price)
    
            INTO pa
    
            FROM products;
    
            END;
    

    此存储过程接受3个参数,p1存储产品最低价格,ph存储产品最高价格,pa存储产品平均价格。每个参数必须指定类型,这里使用十进制值。关键字OUT指出相应的参数用来从存储过程传给一个值(返回给调用者)。MySQL支持IN(传递给存储过程)、OUT(从存储过程中传出、如这里所用)和INOUT(对存储过程传入和传出)类型的参数。存储过程的代码位于BEGIN和END语句内,如前所见,它们是一些列SELECT语句,用来检索值,然后保存到相应的变量(通过INTO关键字)
    调用修改过的存储过程必须指定3个变量名:

        CALL productpricing(@pricelow , @pricehigh , @priceaverage);
    
        这条CALL语句给出3个参数,它们是存储过程将保存结果的3个变量的名字
    
    变量名  所有的MySQL变量都必须以@开始
    
    使用变量
    
        SELECT @priceaverage ;
    
        SELECT @pricelow , @pricehigh , @priceaverage ;   //获得3给变量的值
    

    下面是另一个例子,这次使用IN和OUT参数。ordertotal接受订单号,并返回该订单的合计

            CREATE PROCEDURE ordertotal(
    
           IN onumber INT,
    
           OUT ototal DECIMAL(8,2)
    
            )
    
            BEGIN
    
            SELECT Sum(item_price*quantity)
    
            FROM orderitems
    
            WHERE order_num = onumber
    
            INTO ototal;
    
            END;
    
            //onumber定义为IN,因为订单号时被传入存储过程,ototal定义为OUT,因为要从存储过程中返回合计,SELECT语句使用这两个参数,WHERE子句使用onumber选择正确的行,INTO使用ototal存储计算出来的合计
    
    为了调用这个新的过程,可以使用下列语句:
    
        CALL ordertotal(2005 , @total);   //这样查询其他的订单总计可直接改变订单号即可
    
        SELECT @total;
    

    基本的简单应用这样就是可以了,如果你还要细看的话,可以借鉴一下这个博客:
    https://www.cnblogs.com/l5580/p/5993238.html

    展开全文
  • MySQL数据库存储过程

    万次阅读 多人点赞 2017-03-22 19:34:29
    本文以MySQL数据库为例对数据库存储过程进行介绍,包括创建、查看、执行和删除存储过程,并对比了WHILE和repeat循环的差别。 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集...

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

    存储过程

    如图所示,在普通模式下获取数据,用户需要输入SQL命令与数据库进行交互,而存储过程是编写好的SQL命令,存储在数据库中,用户操作的时候只需要调用存储过程,而不用重新输入冗余繁杂的SQL命令。因此

    • 存储过程有什么优点?
      1.存储过程可以重复使用,大大减小开发人员的负担;
      2.对于网络上的服务器,可以大大减小网络流量,因为只需要传递存储过程的名称即可;
      3,可以防止对表的直接访问,只需要赋予用户存储过程的访问权限。

    0 存储过程相关命令汇总

    操作SQL命令
    创建存储过程CREATE PROCEDURE 存储过程名(参数种类1 参数1 数据类型1,[...] BEGIN 具体的procedure(处理) END
    查看数据库中的存储过程SHOW PROCEDURE STATUS\G
    查看具体的存储过程SHOW CREATE PROCEDURE 存储过程名\G
    调用(执行)存储过程CALL 存储过程名(参数1,...);
    删除存储过程DROP PROCEDURE 存储过程名
    变量声明DECLARE 变量名 数据类型;
    变量赋值SET 变量名= ;

    1 存储过程

    1.1 创建存储过程 CREATE PROCEDURE

    创建存储过程的命令是:

    
    >CREATE PROCEDURE 存储过程名(参数种类1 参数1 数据类型1,[...])
     BEGIN
     具体的procedure(处理)
     END
    • 1)存储过程中具体的处理类容放在 BEGINEND 之间;
    • 2)存储过程需要制定参数,包括种类( IN,OUT,INOUT ,分别代表输入参数,输出参数和即是输入也是输出的参数),参数名和数据类型。【和函数不同,函数指定输入参数即可】

    eg:创建一个对表customer的姓名(nam)进行模糊检索,命名为sp_search_customer。

    创建存储过程

    对于上图创建PROCEDURE的几点说明:
    >DELIMITER //表示给变分隔符,默认分隔符是;,否则存储过程中含有;,MySQL监视器无法分辨。(最后将分隔符改回来)
    ②存储过程( BEGINEND 之间)的具体处理内容,主要包括条件、case,循环。

    分类SQL命令
    简单条件IF cond1 THEN
        exp1
    ELSEIF cond2 THEN
        exp2
    ELSE
        expelse
    END IF
    caseCASE 表达式
        WHEN 值1 THEN …
        WHEN …THEN…
        ELSE …
    END CASE
    循环(后置判断)REPEAT

    UNTIL …END REPEAT
    循环(前置判断)WHILE … DO

    END WHILE

    **1.2 查看存储过程** 查看数据库中是否存在存储过程:

    >SHOW PROCEDURE STATUS\G

    查看存储过程的具体信息:

    >SHOW CREATE PROCEDURE 存储过程名\G

    eg:查看存储过程sp_search_customer

    查看存储过程

    1.3 执行存储过程 CALL
    调用存储过程使用CALL 存储过程名命令,具体如下:

    CALL 存储过程名(参数,...)

    eg:通过创建好的存储过程sp_search_cusotmer来执行存储过程:
    检索‘王’姓顾客:

    >CALL sp_search_customer('王%');

    检索所有顾客:

    >CALL sp_search_customer('');

    调用存储过程

    1.4 删除存储过程 DROP PROCEDURE
    删除存储过程使用命令:

    DROP PROCEDURE 存储过程名;

    2 存储过程优化

    (1)使用if条件语句创建存储过程

    if条件_存储过程

    可以看到,上述条件语句部分的结构大致都为:

    IF... THEN
    SELECT...;
    ELSEIF ...THEN
    SELECT...;
    ELSEIF...THEN
    SELECT...;
    ELSE
    SELECT...;

    其中的语句具有较高的重复性冗余性,因此比较繁琐,如果我们用CASE替代呢?
    (2)CASE命令的多重分支

    使用CASE来创建多重分支:

    CASE_存储过程

    p_dapart放到CASE之后,一个p_dapart取代了多个p_dapart,因此使用CASE代码在判断语句处显得简洁一些,如果通过定义变量的形式呢?

    (3)定义本地变量

    存储过程中定义的变量,被称为本地变量,对程序设计语言有所了解的知道这是一个局部变量。数据库中,
    声明局部变量的命令:

    >DECLARE 变量名 数据类型 [初始值...]

    给变量赋值的命令:

    >SET 变量名=

    ,在创建procedure过程中顶一个本地变量tem:

    本地变量_存储过程

    可以看到,这种方式大大地简化了代码的冗余性和重复性。

    3 再说存储过程的输出参数

    在创建存储过程的时候,如果制定了 OUTINOUT ,在调用存储过程时请在输出参数前面加上 @ ,这样结果将保存到“@变量名“中。

    eg:创建一个计算阶乘的存储过程:

    存储过程输出参数

    最终的结果将保存到“@res“之中,如上图所示。

    • 请注意,用WHILE循环创建的计算阶乘的存储过程, !5=120,!0=1 ,结果是正确的。先记住这句话,接下来看下用REPEAT创建同样的阶乘计算的存储过程。

      4 再说WHILE 和 REPEAT循环

      我们使用repeat创建一个计算阶乘的存储过程:

      REPEAT_存储过程

      接下来看下同样计算 !5!0 结果如何?

      repeat_存储过程

      可以看到!5=120的结果正确,但是!0得到的结果为0,不为1。这是什么原因呢?
      问题出在WHILE是前置判断,是先验的,先验证WHILE后面的条件是否成立,为TRUE则继续执行,若FALSE则结束循环;
      而REPEAT是后置判断,是后验的,不管三七二十一先执行语句,然后验证UNTIL后面的条件语句是否成立,不成立则结束。因此REPEAT循环执行了一次 presult=presultpnumpresult=10
      因此:

      • WHILE循环是前置判断,先验的循环
      • REPEAT循环是后置判断,后验的循环
    展开全文
  • 数据库存储过程

    千次阅读 2019-02-18 14:44:00
    什么是数据库存储过程?  存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 用来执行管理...

    一.什么是数据库存储过程?
         存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
    用来执行管理任务或应用复杂的业务规则。
         存储过程可以带参数,也可以返回结果。
         存储过程可以包含数据操纵语句、变量、逻辑 控制语句等。
         存储过程是一组预编译的SQL语句,它可以包含数据操纵语句、变量、逻辑控制语句等
         存储过程允许带参数,参数分为:
         输入参数
         输出参数
         其中,输入参数可以有默认值

    二.存储过程的优点:
        (1)存储过程的能力大大增强了SQL语言的功能和灵活性。
      (2)可保证数据的安全性和完整性。
      (3)通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
      (4)通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
      (5)在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。
      (6)可以降低网络的通信量。
      (7)使体现企业规则的运算程序放入数据库服务器中,以便集中控制。
        (8)存储过程可以分为系统存储过程、扩展存储过程和用户自定义的存储过程;
    三.存储过程的分类
    (1)数据库系统存储过程:数据库自带

         我们先来看一下系统存储过程,系统存储过程由系统定义,主要存放在MASTER数据库中,名称以"SP"开头或以"XP"开头。尽管这些系统存储过程在MASTER数据库中,

       但我们在其他数据库还是可以调用系统存储过程。有一些系统存储过程会在创建新的数据库的时候被自动创建在当前数据库中。

      常用系统存储过程有:

    • exec sp_databases; --查看数据库
    • exec sp_tables;        --查看表
    • exec sp_columns student;--查看列
    • exec sp_helpIndex student;--查看索引
    • exec sp_helpConstraint student;--约束
    • exec sp_helptext 'sp_stored_procedures';--查看存储过程创建定义的语句
    • exec sp_stored_procedures;
    • exec sp_rename student, stuInfo;--更改表名
    • exec sp_renamedb myTempDB, myDB;--更改数据库名称
    • exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
    • exec sp_helpdb;--数据库帮助,查询数据库信息
    • exec sp_helpdb master;
    • exec sp_attach_db --附加数据库
    • exec sp_detach_db --分离数据库

    (2)用户自定义数据库存储过程:由用户根据需要自定义

    .使用存储过程实例:

        1.不带参数
            create procedure proc_select_officeinfo--(存储过程名)
            as select Id,Name from Office_Info--(sql语句)

            exec proc_select_officeinfo--(调用存储过程)
        2.带输入参数
            create procedure procedure_proc_GetoffinfoById --(存储过程名)
            @Id int--(参数名 参数类型)
            as select Name from dbo.Office_Info where Id=@Id--(sql语句)

            exec procedure_proc_GetoffinfoById 2--(存储过程名称之后,空格加上参数,多个参数中间以逗号分隔)

            注:参数赋值是,第一个参数可以不写参数名称,后面传入参数,需要明确传入的是哪个参数名称
        3.带输入输出参数
            create procedure proc_office_info--(存储过程名)
            @Id int,@Name varchar(20) output--(参数名 参数类型)传出参数要加上output
            as 
            begin
            select @Name=Name from dbo.Office_Info where Id=@Id --(sql语句)
            end

            declare @houseName varchar(20) --声明一个变量,获取存储过程传出来的值
            exec proc_office_info--(存储过程名)
            4,@houseName output--(传说参数要加output 这边如果用@变量 = OUTPUT会报错,所以换一种写法)

            select @houseName--(显示值)
        4.带返回值的
            create procedure proc_office_info--(存储过程名)
            @Id int--(参数名 参数类型)
            as 
            begin
            if(select Name from dbo.Office_Info where Id=@Id)=null --(sql语句)
            begin
            return -1
            end
            else
            begin
            return 1
            end
            end

            declare @house varchar(20) --声明一个变量,获取存储过程传出来的值
            exec @house=proc_office_info 2 --(调用存储过程,用变量接收返回值)
            --注:带返回值的存储过程只能为int类型的返回值
            print @house

     

     

    展开全文
  • 内容索引:VB源码,数据库应用,图片,存储,数据库 本程序演示了在VB中用Access数据库储存图片,并且显示出来的功能。
  • 数据库存储和索引

    千次阅读 2015-11-19 13:16:59
    数据库存储和索引 一、数据库的介绍 二、数据库的存储 三、数据库索引的分类
  • 网狐数据库储存过程解密工具,可用于网狐6603,网狐经典版数据库 储存过程解密工具! 可以通用哦~~~ 此软件,让我找了一个月才找到。。。分享于大伙共用。
  • 数据库存储数据

    2016-03-03 22:45:46
    Android中小型数据库SQLite 存储数据的小例子,以及数据使用的步骤
  • 数据库 存储过程编写 包括Sqlserver Mysql Oracle 等
  • SQLite数据库存储数据 SQLite数据库存储数据 SQLite数据库存储数据 SQLite数据库存储数据 SQLite数据库存储数据 SQLite数据库存储数据 SQLite数据库存储数据 SQLite数据库存储数据 SQLite数据库存储数据 ...
  • SQL Server数据库存储过程——以自定义存储过程为例 1、什么是数据库存储过程 存储过程就是预编译SQL语句的集合,这些语句存储在一个名称下并作为一个单元处理。存储过程代替了传统的逐条执行SQL语句的方式 SQL...
  • java实现数据库存储图片,设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat
  • 数据库02---数据库存储引擎

    千次阅读 2020-04-01 00:51:48
    1、什么是数据库? DB 所有的数据存放的仓库 每一个文件夹也是一个数据库 2、什么是数据库管理系统? —软件 DBMS 关系型数据库:mysql、oracle、sqllite、db2、access、sql server、 非关系型数据库:...
  • MySQL查看和修改数据库存储目录

    千次阅读 2016-07-12 16:00:03
    1.产看数据库存储目录登录MySQL后使用如下命令:show global variables like "%datadir%"查询结果: 2.修改数据库存储目录MySQL默认数据库存储目录是在根目录/下,如果根目录存储空间很小的话,我们需要数据库的...
  • SQL Server数据库基础知识——数据库存储过程怎么写

    千次阅读 多人点赞 2020-05-22 04:45:56
    SQL Server数据库基础知识 存储过程概述 什么是存储过程? 存储过程的种类 如何创建、修改、删除、调用存储过程? 存储过程的优缺点 存储过程和触发器的区别? 存储过程和函数的区别? 存储过程的使用 1. 什么是存储...
  • MySQL - 常见的三种数据库存储引擎

    万次阅读 多人点赞 2018-01-15 16:55:29
    数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的...
  • 数据库存储类型

    千次阅读 2019-11-22 16:52:14
    --又可称为表类型,即储存和操作表的类型。 --orcal,SqlServer只有一种存储类型;mysql有多种。 --可自行选择存储引擎,也可以自定义存储引擎。 --MySQL的核心就是插件式存储引擎。 什么是MySQL的存储引擎? ...
  • Mysql数据库存储原理

    千次阅读 2018-08-29 10:47:10
    Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命令,需要...
  • 数据库小白,平时工作偏向数据分析,经常操作数据库,用的比较多的是视图,想了解下什么场景下才会用到存储过程呢?谢谢
  • mysql数据库存储时间精确到毫秒值

    千次阅读 2020-08-12 17:02:47
    使用mysql数据库存储时间精确到毫秒值 数据库有3中时间类型:time dateTime timestamp 把dateTime,timestamp 的参数值设为3 即可;
  • Android基础知识(二十二):五大存储之SharedPreferences存储和SQLite数据库存储 一、SharedPreferences存储 不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的。此外SharedPreferences还...
  • 数据库存储引擎MyISAM与InnoDB的区别

    万次阅读 2018-09-06 20:14:45
    MyISAM与InnoDB是mysql目前比较常用的两个数据库存储引擎,MyISAM与InnoDB的主要的不同点在于性能和事务控制上。 MyISAM是MySQL5.5之前版本默认的数据库存储引擎。InnoDB是MySQL5.5版本的默认数据库存储引擎.。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,825,445
精华内容 730,178
关键字:

数据库存储