• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    关于SQL 存储过程入门基础(基础知识)

    大学里面对存储过程没有讲到什么,工作了一段时间,对存储过程还是没有用到,根本不需要去写存储过程,可能是做的软件方向的原因吧。为了以后发展,决定从零开始学习下。

    这里看看存储过程的定义,

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

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

      系统SP,主要存储master 数据库中,并以sp_为前缀并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理SQL Server。

        常用系统存储过程有:

    复制代码 代码如下:

    exec sp_databases; --查看数据库
    exec sp_tables;        --查看表
    exec sp_columns student;--查看列
    exec sp_helpIndex student;--查看索引
    exec sp_helpConstraint student;--约束
    exec sp_stored_procedures;
    exec sp_helptext '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;

    用户自定义存储过程是由用户创建,并能完成某一特定功能,如:查询用户所需数据信息的存储过程。

    这里我们看看存储过程的好处;

            (1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

            (2)提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。

            (3)减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

            (4)安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

     

       好了,我们来看看创建的基本语法

    复制代码 代码如下:

    定义存储过程的语法

        CREATE  PROC[EDURE]  存储过程名

                  @参数1  数据类型 = 默认值,

                   …… ,

                  @参数n  数据类型 OUTPUT

                AS

                SQL语句

        GO
    ,参数是可选的
    ,参数分为输入参数、输出参数
    ,输入参数允许有默认值

      这里来创建一个简单的存储过程
     

    CREATE PROCEDURE UserLogin
    @name varchar(20),
    @password varchar(20)

    AS

    -- 定义一个临时用来保存密码的变量
    --DECLARE @strPwd NVARCHAR(20) 这里先不介绍变量。稍后的文章会详细讲到
    BEGIN
    select * from userinfo where userName=@name and userPass=@password
    END
    GO

    首先我们用简单的sql查询

    select * from userinfo where userName='admin'

    查询结果:

    ---------------------

    UserName  UserPass

    Admin      Admin

    现在我们来执行我们的存储过程
    exec UserLogin admin,admin

    --或这样调用:
    EXEC UserLogin @name='admin',@password='admin'

    查询结果:

    ---------------------

    UserName  UserPass

    Admin      Admin

    注意,在SQL SERVER中,所有用户定义的变量都以“@”开头,OUTPUT关键字表示这个参数是用来输出的,AS之后就是存储过程内容了。只要将以上代码在“查询分析器”里执行一次,SQL SERVER就会在当前数据库中创建一个名为“UserLogin”的存储过程。你可以打开“企业管理器”,选择当前操作的数据库,然后在左边的树型列表中选择"可编程性->存储过程",此时就可以在右边的列表中看到你刚刚创建的存储过程了(如果没有,刷新一下即可)。

    看到了在数据中调用存储过程的方法有两种(这里EXEC与EXECUTE等效);

          EXEC  过程名  参数值1,参数值2,....


    或者

     EXEC 参数1=参数值1,参数2=参数值2....

    上面我们也看到了。

     如果要删除一个存储过程,用drop

    像这样

    复制代码 代码如下:

    drop PROCEDURE UserLogin

    创建这样的存储过程有什么用呢,不是只能在数据中查看赛。

    我们在做web或者winform 程序,假设需要个登录,好,我们可以调用用这个存储过程来登录,根据传入的参数,如果查询出来有记录,那么这条记录在数据库中存在,表示登录成功,否则失败。

    这样做的目的更加安全,可以防止sql注入。

    上一篇:关于SQL 存储过程入门基础(变量)
    下一篇:基于Sql Server通用分页存储过程的解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    关于SQL 存储过程入门基础(基础知识) 关于,SQL,存储,过程,入门,