存储过程

SQL Server 存储过程

余生长醉 提交于 2020-01-11 02:53:14
SQL Server 存储过程 摘自:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。 1、 存储过程的优点 A、 存储过程允许标准组件式编程 存储过程创建后可以在程序中被多次调用执行,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。 B、 存储过程能够实现较快的执行速度 如果某一操作包含大量的T-SQL语句代码,分别被多次执行

java调用存储过程

↘锁芯ラ 提交于 2020-01-11 02:43:01
java调用存储过程 注意:以下分析,只基于 mysql 数据库。 存储过程简介 此部分参考于《java程序员面试宝典》 存储过程:SQL 语句在执行时要先编译,然后再被执行。在大型数据库系统中,为了提高效率,将为了完成特定功能的 SQL 语句集进行编译优化后,存储在数据库服务器中,用户通过指定存储过程的名字来调用执行。 使用存储过程可以增强 SQL 语言的功能和灵活性,由于可以用流程控制语句编写存储过程,有很强的灵活性,因此可以完成复杂的判断和运算,并且可以保证数据的安全性和完整性,同时,存储过程可以使没有权限的用户在控制之下间接地存储取数据库,也保证了数据的安全。 最基本语法: create procedure sp_name ( [ 参数名 ] [ 参数类型 ] . . . ) begin . . . end ; 最简单实例: 显示当前数据库所有表 -- 创建一个无参数的存储过程,名字为 showTables create PROCEDURE showTables ( ) BEGIN show tables ; END ; -- 调用存储过程 call showTables ( ) ; -- 删除指定存储过程 drop PROCEDURE showTables ; CallableStatement 接口 接口定义 public interface

SQL Server 存储过程

南笙酒味 提交于 2020-01-10 18:15:00
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。 1、 存储过程的优点 A、 存储过程允许标准组件式编程 存储过程创建后可以在程序中被多次调用执行,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。 B、 存储过程能够实现较快的执行速度 如果某一操作包含大量的T-SQL语句代码,分别被多次执行,那么存储过程要比批处理的执行速度快得多。因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划。而批处理的T

存储过程

白昼怎懂夜的黑 提交于 2020-01-10 11:43:24
create table City ( Cid int identity, CName varchar(50), Pid int ) create table Users ( Id int identity(1001,1), UserName varchar(50), Provinceid int, cityid int, district int, townid int, sites varchar(100) ) create view vw_cha as select us.*,c1.CName as 'ProvinceidName',c2.CName as 'cityidName',c3.CName as 'districtName',c4.CName 'townidName',ROW_NUMBER() over(order by Id) as rid from City c1 join Users us on c1.Cid=us.Provinceid join City c2 on us.cityid=c2.Cid join City c3 on us.district=c3.Cid join City c4 on us.townid=c4.Cid if OBJECT_ID('proc_fenye') is not null drop proc proc_fenye go

Linq to MySQL 存储的使用

谁都会走 提交于 2020-01-10 10:42:01
下面主要介绍 Linq to MySQL (ALinq for MySQL),如果你还不知道 ALinq 是什么, 请点击这里 。 完整的 Sample 位于 ALinq 的安装目录下的子目录 Samples\CSharpe\OracleSamples.zip 或 Samples\VB\OracleSamples.zip 。 Sample 的使用:打开该工程,然后运行 Sample3_StoreProcedure ,然后点击 Create Procedure 按钮创建存储过程。 示例1: 步骤一:在数据库中创建存储过程,下面这个存储过程是用来添加一个 Category 到数据库中。 CREATE PROCEDURE ADD_CATEGORY(IN CATEGORY_NAME VARCHAR(30), IN CATEGORY_DESCRIPTION TEXT)BEGININSERT INTO CATEGORIES (CategoryName, Description)Values (category_name, category_description);END 步骤二:将存储过程映射到 DataContext 实体类中的方法函数。 [Function(Name = "ADD_CATEGORY")]public void AddCategory( [Parameter(Name =

为什么不推荐使用存储过程

早过忘川 提交于 2020-01-10 05:17:50
为什么不推荐使用存储过程的原因: 因为MySQL不会考虑不受其控制的操作成本 存储过程难以调试和扩展,更没有移植性(阿里巴巴开发手册) 详情请点击: https://blog.csdn.net/zl1zl2zl3/article/details/92664078 来源: CSDN 作者: 学亮编程手记 链接: https://blog.csdn.net/a772304419/article/details/103890230

SQL Server 存储过程

…衆ロ難τιáo~ 提交于 2020-01-10 02:52:44
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。 1、 存储过程的优点 A、 存储过程允许标准组件式编程 存储过程创建后可以在程序中被多次调用执行,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。 B、 存储过程能够实现较快的执行速度 如果某一操作包含大量的T-SQL语句代码,分别被多次执行,那么存储过程要比批处理的执行速度快得多。因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划。而批处理的T

Oracle-存储过程示例

时光总嘲笑我的痴心妄想 提交于 2020-01-10 01:45:25
方式1: --(1) 创建将“卡片编号”以“指定字符串”进行拆分,并通过表结构返回结果。 CREATE OR REPLACE TYPE STR_SPLIT IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE FUNCTION SPLITSTR(P_STRING IN VARCHAR2, P_DELIMITER IN VARCHAR2) RETURN STR_SPLIT PIPELINED AS V_LENGTH NUMBER := LENGTH(P_STRING); V_START NUMBER := 1; V_INDEX NUMBER; BEGIN WHILE(V_START <= V_LENGTH) LOOP V_INDEX := INSTR(P_STRING, P_DELIMITER, V_START); IF V_INDEX = 0 THEN PIPE ROW(SUBSTR(P_STRING, V_START)); V_START := V_LENGTH + 1; ELSE PIPE ROW(SUBSTR(P_STRING, V_START, V_INDEX - V_START)); V_START := V_INDEX + 1; END IF; END LOOP; RETURN; END SPLITSTR; --(2)

MySQL存储过程学习记录

时光总嘲笑我的痴心妄想 提交于 2020-01-09 23:18:49
-- 创建存储过程 -- DELIMITER // CREATE PROCEDURE pro_first() BEGIN select NOW(); END -- // -- DELIMITER ; -- 删除存储过程 DROP PROCEDURE pro_first; -- 查看指定存储过程 SHOW CREATE PROCEDURE pro_first; -- 查看所有存储过程 SHOW PROCEDURE STATUS; -- 调用存储过程 CALL pro_first(); -- 练习 create procedure pro_practise() BEGIN select 1+3 from dual; END call pro_practise(); -- 变量 CREATE procedure pro_variable() BEGIN -- 声明局部变量 DECLARE num1 int; DECLARE username VARCHAR(20) DEFAULT '张三'; select num1, username; END CALL pro_variable(); -- 变量赋值 CREATE PROCEDURE pro_variable2() BEGIN -- 声明局部变量 DECLARE num1 int; DECLARE num2 int; DECLARE

Oracle数据库创建存储过程、函数、包(六)

让人想犯罪 __ 提交于 2020-01-09 18:17:57
一、存储过程 存储过程简介 a、 在Oracle中的存储过程又名子程序; b、 命名的PL/SQL块,编译并存储在数据库中; c、 存储过程的各个部分: 声明部分; 可执行部分; 异常处理部分(可选)。 d、存储过程的分类: 过程-执行某些操作; 函数-执行操作并返回值; 存储过程的优点 a、 模块化: 将程序分解为逻辑模块; b、 可重用性: 可以被任意数目的程序调用; c、 可维护性: 简化维护操作; d、 安全性: 通过设置权限,使数据更安全。 创建存储过程的语法 --创建存储过程: create [ or replace ] procedure 存储过程名称 [ ( 参数名称 参数类型 , 参数名称 参数类型 ) ] is | as 局部变量声明区 begin [ 可执行 SQL 语句; ] [ exception 异常处理语句 ] end 过程名称 ; --调用存储过程 begin 过程名称 [ ( 参数名称 参数类型 , 参数名称 参数类型 ) ] ; end ; 例子: in参数存储过程: --3. 创建一个带参数的存储过程,根据制定的参数删除一个员工。 --创建存储过程: create or replace procedure emp2 ( theEmpNo emp . empNo % type ) as begin delete from emp where