zoukankan      html  css  js  c++  java
  • SQL存储过程

    什么是存储过程?
    存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

    存储过程的好处?
    1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。
    2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
    3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。

    首先创建一个数据表TestTable

    CREATE TABLE TestTable(
     [Id] [int] IDENTITY(1,1) NOT NULL,
     [UserName] [nvarchar](50) NULL,
     [Subject] [nvarchar](50) NULL,
     [Source] [numeric](18, 0) NULL
    ) ON [PRIMARY]
    go
    INSERT INTO TestTable ([UserName],[Subject],[Source]) 
     SELECT N'张三',N'语文',60 UNION ALL
     SELECT N'李四',N'数学',70 UNION ALL
     SELECT N'王五',N'英语',80 UNION ALL
     SELECT N'王五',N'数学',75 UNION ALL
     SELECT N'王五',N'语文',57 UNION ALL
     SELECT N'李四',N'语文',80 UNION ALL
     SELECT N'张三',N'英语',100
    GO

    创建完成后直接进行查询

    select * from TestTable

     下面将使用存储过程进行增删改查操作

    --创建存储过程
    CREATE PROCEDURE 存储过程名称
    AS
    需要查询的SQL语句
    GO
    --调用存储过程
    EXECUTE 存储过程名称
    --删除存储过程
    drop procedure 存储过程名称

     1、查询数据

    CREATE PROCEDURE GetList
    AS
    select * from TestTable
    GO
    exec GetList

    2、根据条件查询数据

    create Procedure GetList
    @Id nchar(20)
    as
    select * from TestTable where Id=@Id
    go
    exec GetList 1

    3、插入数据

    create Procedure InsertList
    @UserName nchar(20),
    @Subject nchar(20),
    @Source int
    as
    insert into TestTable (UserName,Subject,Source) values(@UserName,@Subject,@Source)
    go
    exec InsertList '扯淡','天文',100

    4、删除数据

    create procedure delList
    @Id int
    as
    delete TestTable where Id=@Id
    go
    exec delList 8

    5、修改数据

    create procedure UpdateList
    @Id int,
    @UserName nchar(20)
    as
    update TestTable set UserName=@UserName where Id=@Id
    go
    exec UpdateList 7,'张三三'
    注:强推一波个人小站:小语雀网 | 欢迎大佬们访问哈~
  • 相关阅读:
    docker安装与使用路径
    python3.7简单的爬虫
    ubuntu19.04下查看软件安装目录和详细信息
    Javascript检查对象是否存在某个属性
    bootstrap源码和测试
    python学习笔记之pdb调试
    pydensecrf安装报错1、UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 29: invalid start byte2、 LINK : fatal error LNK1158: 无法运行“rc.exe” error: command 'D:\software\vs2015\VC\BIN
    python学习日记:np.newaxis
    好用的网址集锦
    网络配置ipconfig /release、ipconfig /renew
  • 原文地址:https://www.cnblogs.com/zpblogs/p/14676816.html
Copyright © 2011-2022 走看看