关于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

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/234462.html

(0)
上一篇 2022年1月23日
下一篇 2022年1月23日

相关推荐

发表回复

登录后才能评论