-
MySQL存储过程名词解释_MySQL存储过程详解
2021-03-04 01:59:23答:①将重复性很高的一些操作,封装到一个存储过程中。简化了对这些SQL的调用。②批量处理sql+循环③统一接口注意:mysql中,存储功能相对较弱。使用较少。二、基本建立语法例1:DELIMITER $$CREATE PROCEDURE ...一、使用场景
1.执行时简单:名字+参数
2.存储过程中可以有一个、多个sql语句。
问:为啥要用存储过程?
答:
①将重复性很高的一些操作,封装到一个存储过程中。简化了对这些SQL的调用。
②批量处理sql+循环
③统一接口
注意:mysql中,存储功能相对较弱。使用较少。
二、基本建立语法
例1:
DELIMITER $$
CREATE PROCEDURE delete_matches(IN p playerno INTEGER)
BEGIN
DELETE FROM MATCHES
WHERE playerno=p_playerno;
END$$
DELIMITER;
call delete_matches(6);
例2:
delimiter $$
CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
SET @x = 0; --》用set赋值, repeat循环
REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END$$
delimiter ;
CALL dorepeat(1000);
SELECT @x;
执行后:@x的值为1001
@变量名字的作用:
①存储过程中定义,存储过程中进行处理,加减乘除。
②存储过程外面可以访问这个@变量,这个变量保存了存储过程中对这个变量处理后的值。
@x:用户变量
存储过程外面可以访问,一直被保存。
直接使用set @x=0;就可以生成这么一个变量,不需要数据类型。
三、存储过程参数
三类:in(输入参数)、out(输出参数)、inout(输入和输出参数)
存储过程需要是活的–》输入不同的参数,执行不同的操作,处理不同的行等等。
IN参数
DELIMITER $$
CREATE PROCEDURE delete matches(IN p playerno INTEGER)
BEGIN
DELETE FROM MATCHES
WHERE playerno=p_playerno;
END$$
DELIMITER;
call delete_matches(6);
IN参数可以是:数值100、赋值了的变量 set @a=100;
OUT参数
delimiter $$
CREATE PROCEDURE simpleproc (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM PLAYERS;
END$$
delimiter ;
CALL simpleproc(@a);
SELECT @a;
OUT参数:变量就可以,可以没有赋值。 @a
INOUT参数
delimiter $$
CREATE PROCEDURE simpleproc1(INOUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM PLAYERS where PLAYERNO<=param1;
END$$
delimiter ;
set @a=10;
CALL simpleproc1(@a); --》调用存储过程时,只要引用变量就行!
SELECT @a;
INOUT参数:只能是赋了值得变量。 set @a=100;
一个存储过程如果想有返回值:
1.out参数
2.inout参数
3.在存储过程内部定义用户变量
@变量名字
建议:返回值使用out参数;输入值使用in参数。
四、begin…end语法
为什么需要begin…end?
答:
①因为begin…end语句之间的n条语句属于一条语句,一个整体。
②成对出现。
BEGIN
sql语句
END$$
五、变量
1.用户变量@
随处可定义,随处可使用;
不定义可直接使用;
随处可见;
内部定义,外部可见。
2.局部变量,只有名字,没有@符号
先定义,再使用;
只在存储过程内部可见;只能定义在begin后面!
注意:在存储过程内部,使用局部变量,不要使用用户变量。
用户变量和局部变量的区别:
①局部变量前面没有@符号
②当begin…end块处理完后,局部变量就消失了,而用户变量存在于整个会话之中。
定义局部变量:
DECLARE 变量名字 类型 [default] –》而且declare必须紧接着begin!
例:
DECLARE var_name [, var_name] ... type [DEFAULT value]
delimiter $$
CREATE PROCEDURE sp1 (x VARCHAR(10))
BEGIN
DECLARE newname VARCHAR(10);
DECLARE xid INT;
SELECT xname, id INTO newname, xid
FROM table1 WHERE xname = x;
SELECT newname;
END$$
delimiter ;
call sp1('a');
初始化局部变量:
delimiter $$
CREATE PROCEDURE test1(OUT num1 INTEGER)
BEGIN
DECLARE num2 INTEGER DEFAULT (SELECT count(*) FROM PLAYERS);
SET num1 = num2;
END$$
delimiter ;
begin…end的作用域:
外层看不到内层;
内层可以看到外层;
平行互相看不见。
SET
可以给用户变量和局部变量赋值
用户变量内外都可以使用
局部变量,只有begin end之间可以使用,而且需要declare定义
六、IF…ELSE
DELIMITER $$ --》定义$$为分界符
CREATE PROCEDURE difference(
IN p1 INTEGER, --》整数
IN p2 INTEGER,
OUT p3 INTEGER)
BEGIN
IF p1 > p2 THEN
SET p3 = 1;
ELSEIF p1= p2 THEN
SET p3 = 2;
ELSE
SET p3 = 3;
END IF;
END$$
DELIMITER ;
mysql> call difference(1,10,@p);
Query OK, 0 rows affected (0.00 sec)
mysql> select @p;
+------+
| @p |
+------+
| 3 |
+------+
1 row in set (0.01 sec)
七、函数
1.返回值
两个return:一个标志返回什么类型;一个实际的返回值。
2.调用函数:函数需要出现在=的右边
例子:
DELIMITER $$
CREATE FUNCTION SimpleCompare(n INT, m INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE s VARCHAR(20);
IF n > m THEN SET s = '>';
ELSEIF n = m THEN SET s = '=';
ELSE SET s = '
END IF;
SET s = CONCAT(n, ' ', s, ' ', m);
RETURN s;
END$$
DELIMITER ;
mysql> select SimpleCompare(1,2) ;
+--------------------+
| SimpleCompare(1,2) |
+--------------------+
| 1 < 2 |
+--------------------+
1 row in set (0.01 sec)
mysql> set @a=SimpleCompare(1,2) ;
Query OK, 0 rows affected (0.01 sec)
mysql> select @a;
+-------+
| @a |
+-------+
| 1 < 2 |
+-------+
1 row in set (0.00 sec)
八、case…end case
例1:
DELIMITER $$
CREATE PROCEDURE difference1(
IN p1 INTEGER,
IN p2 INTEGER,
OUT p3 INTEGER)
BEGIN
CASE
WHEN p1 > p2 THEN
SET p3 = 1;
WHEN p1= p2 THEN
SET p3 = 2;
ELSE
SET p3 = 3;
END CASE;
END$$
DELIMITER ;
mysql> call difference1(1,100,@a);
Query OK, 0 rows affected (0.01 sec)
mysql> select @a;
+------+
| @a |
+------+
| 3 |
+------+
1 row in set (0.00 sec)
例2:
DELIMITER $$
CREATE PROCEDURE p(x INT)
BEGIN
DECLARE v INT DEFAULT 1;
set v=x;
CASE v
WHEN 2 THEN SELECT v;
WHEN 3 THEN SELECT 0;
ELSE
BEGIN
END;
END CASE;
END$$
DELIMITER ;
mysql> call p(2);
+------+
| v |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
mysql> call p(3);
+---+
| 0 |
+---+
| 0 |
+---+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
九、while
例题:
DELIMITER $$
CREATE PROCEDURE dowhile(x int)
BEGIN
DECLARE v1 INT DEFAULT 5;
set v1=x;
WHILE v1 > 0 DO
select v1;
SET v1 = v1 - 1;
END WHILE;
END$$
DELIMITER ;
mysql> call dowhile(10);
+------+
| v1 |
+------+
| 10 |
+------+
1 row in set (0.01 sec)
+------+
| v1 |
+------+
| 9 |
+------+
1 row in set (0.01 sec)
。。。一直到1
十、repeat…until
先执行,再判断。
例题:
delimiter //
CREATE PROCEDURE dorepeat1(p1 INT)
BEGIN
SET @x = 0;
REPEAT
SET @x = @x + 1;
UNTIL @x > p1
END REPEAT;
END//
delimiter ;
mysql> call dorepeat1(10);
Query OK, 0 rows affected (0.01 sec)
mysql> select @x;
+------+
| @x |
+------+
| 11 |
+------+
十一、loop配合leave
leave:跳出语句块
DELIMITER $$
CREATE PROCEDURE small_exit(OUT p1 INTEGER,OUT p2 INTEGER)
BEGIN
SET p1 = 1;
SET p2 = 1;
block1: BEGIN
LEAVE block1; --》就不再执行下面那个p2=3了!!
SET p2 = 3;
END block1;
SET p1 = 4;
END$$
DELIMITER ;
mysql> call small_exit(@a,@b);
Query OK, 0 rows affected (0.00 sec)
mysql> select @a,@b;
+------+------+
| @a | @b |
+------+------+
| 4 | 1 |
+------+------+
1 row in set (0.00 sec)
loop
DELIMITER $$
CREATE PROCEDURE wait_n(IN wait_seconds INTEGER)
BEGIN ---》PS:interval 间隔
DECLARE end_time datetime DEFAULT now() + INTERVAL wait_seconds SECOND;
wait_loop:LOOP
IF now() > end_time THEN
LEAVE wait_loop;
END IF;
END LOOP wait_loop;
END$$
DELIMITER ;
mysql> call wait_n(10);
Query OK, 0 rows affected (10.55 sec)
while:先判断再执行
repeat…until:先执行再判断
loop:判断可以放在loop…end loop之间的任意位置
iterate:跳出本次循环
十二、ITERATE
DELIMITER $$
CREATE PROCEDURE doiterate3(p1 INT,p2 INT)
BEGIN
label1: LOOP
SET p1 = p1 + 1;
SET p2 = p2 + 1;
IF p1 < 10 THEN
select p1;
ITERATE label1; --》跳出本次label1循环!继续下次label1循环。
select p2; --》一直没执行
END IF;
LEAVE label1;
END LOOP label1;
SET @x = p1;
END$$
DELIMITER ;
mysql> call doiterate3(10,10); --》直接就执行leave label1
Query OK, 0 rows affected (0.01 sec)
mysql> call doiterate3(1,1); ---》显示p1=2,3,4...9
+------+
| p1 |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
+------+
| p1 |
+------+
| 3 |
+------+
1 row in set (0.00 sec)
十三、select info经典用法
DELIMITER $$
CREATE PROCEDURE total_penalties_player(
IN p_playerno INTEGER,
OUT total_penalties DECIMAL(8,2))
BEGIN
SELECT sum(amount) ---》去掉into的select只能返回一行数据!
INTO total_penalties --》把select 的结果into给(多个)变量!!
FROM PENALTIES
WHERE playerno = p_playerno;
END$$
DELIMITER ;
mysql> call total_penalties_player(44,@a); ---》计算44号人的罚款总额,结果赋给@a
Query OK, 1 row affected (0.01 sec)
mysql> select @a;
+--------+
| @a |
+--------+
| 130.00 |
+--------+
1 row in set (0.00 sec)
小结:
1.经典的方式:将select返回的多列单行数据赋值给相应的变量(一个列对应一个变量)
2.这些变量经常是out参数
3.也就是变相的将select的结果传给了存储过程,让外面的程序可见。
例2:into给多个参数:
DELIMITER $$
CREATE PROCEDURE get_address(
IN p_playerno SMALLINT,
OUT p_street VARCHAR(30),
OUT p_houseno VARCHAR(4),
OUT p_town VARCHAR(30),
OUT p_postcode VARCHAR(6))
BEGIN
SELECT street, houseno, town, postcode
INTO p_street, p_houseno, p_town, p_postcode
FROM PLAYERS
WHERE playerno = p_playerno;
END$$
DELIMITER ;
mysql> call get_address(44,@a,@b,@c,@d);
Query OK, 1 row affected (0.01 sec)
mysql> select @a,@b,@c,@d;
+--------------+------+-----------+--------+
| @a | @b | @c | @d |
+--------------+------+-----------+--------+
| Lewis Street | 23 | Inglewood | 4444LJ |
+--------------+------+-----------+--------+
1 row in set (0.00 sec)
-
MySQL存储过程名词解释_mysql 存储过程 是什么意思
2021-01-18 21:13:34展开全部存储过程(Stored Procedure)是一组为了完成特定功32313133353236313431303231363533e4b893e5b19e31333361303633能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储...展开全部
存储过程(Stored Procedure)是一组为了完成特定功32313133353236313431303231363533e4b893e5b19e31333361303633能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。
存储过程通常有以下优点:存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。
存储过程能实现较快的执行速度。如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。
存储过程能过减少网络流量。针对同一个数据库对象的操作(如查询、修改),如果这一操作所涉及的Transaction-SQL语句被组织程存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是该调用语句,从而大大增加了网络流量并降低了网络负载。
存储过程可被作为一种安全机制来充分利用。系统管理员通过执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。
MySQL存储过程创建的格式如下:
CREATE PROCEDURE 过程名 ([过程参数[,...]])
[特性 ...] 过程体
举例代码如下:CREATE PROCEDURE proc1(OUT s int)
BEGIN
SELECT COUNT(*) INTO s FROM user;
END
存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。
过程体的开始与结束使用BEGIN与END进行标识。
注意:MySQL在5.0以前并不支持存储过程
-
MySQL存储过程名词解释_mysql 存储过程与事件
2021-01-18 21:13:33{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行...{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,提供数据库优化方面专业建议,在业务高峰期与用户共同保障数据库系统平稳运行。","link1":"https://www.aliyun.com/service/optimization/database","link":"https://www.aliyun.com/service/chiefexpert/database","icon":"https://img.alicdn.com/tfs/TB1a5ZfonnI8KJjy0FfXXcdoVXa-100-100.png","btn2":"数据库紧急救援服务","tip":"还有更多专家帮助您解决云上业务问题:立即查看","btn1":"云上数据库优化服务","link2":"https://www.aliyun.com/service/databaserescue","title":"数据库专家服务"}],"search":[{"txt":"安全首席专家","link":"https://www.aliyun.com/service/chiefexpert/security"},{"txt":"中间件首席专家","link":"https://www.aliyun.com/service/chiefexpert/middleware"},{"txt":"系统与平台首席专家","link":"https://www.aliyun.com/service/chiefexpert/platform"},{"txt":"存储首席专家","link":"https://www.aliyun.com/service/chiefexpert/storage"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}},"simplifiedDisplay":"newEdition","newCard":[{"link":"https://www.aliyun.com/product/rds/mysql","icon":"rds_mysql1","contentLink":"https://www.aliyun.com/product/rds/mysql","title":"云数据库RDS MySQL版","des":"云数据库RDS MySQL版 MySQL 是全球最受欢迎的开源数据库,阿里云MySQL版 通过深度的内核优化和独享实例提供稳定极致的数据库性能,同时灵活的部署架构及产品形态,可满足不同场景下的数据库需求。","btn1":"了解详情","link1":"https://www.aliyun.com/product/rds/mysql","btn2":"管理控制台","link2":"https://rdsnext.console.aliyun.com/#/rdsList/cn-hangzhou/basic/","btn3":"在线咨询","link3":"https://www.aliyun.com/core/online-consult?spm=5176.8789780.7y9jhqsfz.115.47ea55caeL2Mfu&from=OVtXEBmlH8","infoGroup":[{"infoName":"最新活动","infoContent":{"firstContentName":"MySQL 1年仅19.9元","firstContentLink":"https://www.aliyun.com/database/dbfirstbuy#J_9036464270","lastContentName":"ECS+MySQL 0.7元/日","lastContentLink":"https://www.aliyun.com/1111/enterprise"}},{"infoName":"快速入门","infoContent":{"firstContentName":"选型指南","firstContentLink":"https://help.aliyun.com/document_detail/164594.html?spm=a2c4g.11186623.6.551.56b67384ispvvk","lastContentName":"上手指南","lastContentLink":"https://help.aliyun.com/document_detail/26124.html?spm=a2c4g.11174283.2.16.51795b83pbkzav"}},{"infoName":"最佳实践","infoContent":{"firstContentName":"X-Engine的应用场景","firstContentLink":"https://help.aliyun.com/document_detail/148402.html?spm=a2c4g.11186623.2.14.3f592685zjuUxu#concept-2364901","lastContentName":"读写分离功能","lastContentLink":"https://help.aliyun.com/document_detail/96073.html?spm=a2c4g.11174283.2.53.42db5b83VvZvMJ"}},{"infoName":"产品推荐","infoContent":{"firstContentName":"云数据库PolarDB","lastContentName":"云原生数据仓库MySQL","firstContentLink":"https://www.aliyun.com/product/polardb","lastContentLink":"https://www.aliyun.com/product/ads"}}]}],"visual":{"textColor":"dark","topbg":""}}
{"$env":{"JSON":{}},"$page":{"env":"production"},"$context":{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,提供数据库优化方面专业建议,在业务高峰期与用户共同保障数据库系统平稳运行。","link1":"https://www.aliyun.com/service/optimization/database","link":"https://www.aliyun.com/service/chiefexpert/database","icon":"https://img.alicdn.com/tfs/TB1a5ZfonnI8KJjy0FfXXcdoVXa-100-100.png","btn2":"数据库紧急救援服务","tip":"还有更多专家帮助您解决云上业务问题:立即查看","btn1":"云上数据库优化服务","link2":"https://www.aliyun.com/service/databaserescue","title":"数据库专家服务"}],"search":[{"txt":"安全首席专家","link":"https://www.aliyun.com/service/chiefexpert/security"},{"txt":"中间件首席专家","link":"https://www.aliyun.com/service/chiefexpert/middleware"},{"txt":"系统与平台首席专家","link":"https://www.aliyun.com/service/chiefexpert/platform"},{"txt":"存储首席专家","link":"https://www.aliyun.com/service/chiefexpert/storage"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}},"simplifiedDisplay":"newEdition","newCard":[{"link":"https://www.aliyun.com/product/rds/mysql","icon":"rds_mysql1","contentLink":"https://www.aliyun.com/product/rds/mysql","title":"云数据库RDS MySQL版","des":"云数据库RDS MySQL版 MySQL 是全球最受欢迎的开源数据库,阿里云MySQL版 通过深度的内核优化和独享实例提供稳定极致的数据库性能,同时灵活的部署架构及产品形态,可满足不同场景下的数据库需求。","btn1":"了解详情","link1":"https://www.aliyun.com/product/rds/mysql","btn2":"管理控制台","link2":"https://rdsnext.console.aliyun.com/#/rdsList/cn-hangzhou/basic/","btn3":"在线咨询","link3":"https://www.aliyun.com/core/online-consult?spm=5176.8789780.7y9jhqsfz.115.47ea55caeL2Mfu&from=OVtXEBmlH8","infoGroup":[{"infoName":"最新活动","infoContent":{"firstContentName":"MySQL 1年仅19.9元","firstContentLink":"https://www.aliyun.com/database/dbfirstbuy#J_9036464270","lastContentName":"ECS+MySQL 0.7元/日","lastContentLink":"https://www.aliyun.com/1111/enterprise"}},{"infoName":"快速入门","infoContent":{"firstContentName":"选型指南","firstContentLink":"https://help.aliyun.com/document_detail/164594.html?spm=a2c4g.11186623.6.551.56b67384ispvvk","lastContentName":"上手指南","lastContentLink":"https://help.aliyun.com/document_detail/26124.html?spm=a2c4g.11174283.2.16.51795b83pbkzav"}},{"infoName":"最佳实践","infoContent":{"firstContentName":"X-Engine的应用场景","firstContentLink":"https://help.aliyun.com/document_detail/148402.html?spm=a2c4g.11186623.2.14.3f592685zjuUxu#concept-2364901","lastContentName":"读写分离功能","lastContentLink":"https://help.aliyun.com/document_detail/96073.html?spm=a2c4g.11174283.2.53.42db5b83VvZvMJ"}},{"infoName":"产品推荐","infoContent":{"firstContentName":"云数据库PolarDB","lastContentName":"云原生数据仓库MySQL","firstContentLink":"https://www.aliyun.com/product/polardb","lastContentLink":"https://www.aliyun.com/product/ads"}}]}],"visual":{"textColor":"dark","topbg":""}}}
-
SQL SERVER 2005视图、索引、存储过程、触发器、游标及事务名词解释
2013-07-21 11:00:42视图是一个有select语句指定,用以检索数据库表中的某些行或列数据的语句存储定义 2、创建水平视图 视图的常见用法是限制用户只能存取表中的某些数据行,用这种方法产生的视图成为水平视图 create view view_...1、什么是视图?
视图不占物理存储空间,它是一种逻辑对象,可以将其看成一个''虚表'
视图是一个有select语句指定,用以检索数据库表中的某些行或列数据的语句存储定义
2、创建水平视图
视图的常见用法是限制用户只能存取表中的某些数据行,用这种方法产生的视图成为水平视图
create view view_student
as
select * from student where classi_d="10"
3、投影视图
限制用户只能读取表中部分列的数据,那么使用这种方法创建的视图称作投影视图,即列中的子集
create view view_student2
as
select student_id as '学号, student_name as '姓名',sex as'性别' from student where sex=1
with check option ' /*强制视图上执行的所有修改语句必须符合由select 语句设置的准则*/
4 创建联合视图
用户可以生成从多个表中提取数据的联合视图,把查询的结果可看做一个单独的可见表。
5 什么是索引?
索引是数据库对象之一,索引是为了加速表中数据行的检索而创建的一种分散的一种存储结构
索引是针对一个表而建立的,它是有数据页面以外的索引页面组成的
create unique clustered index book_id _index--唯一性聚集索引
on book(book_id asc)
with
fillfactor=50
非聚簇索引
create nonclustered index student_course_index
on student_course (student_id asc, course_id) asc
with
fillfactor=50
6 什么是存储过程?
存储过程是一系列预先编译好的,能够实现特定数据操作功能的SQL代码集,它与特定的数据库相关联,存储在SQL SERVER服务器上
example:
//创建一个实现加法运算结果作为输出参数的存储过程
create procedure sp_add
@value1 int(10),
@value2 int (10),
@result int output
as
select @result=@result1+@result2
go
///执行存储过程
declare @value1 int(10)
declare @value2 int (10)
declare @result int(10)
set @value1=1
set @value2=2
exec sp_add @value1,@value2,@result output
print convert(char(5),@value1)+"+"+convert(char(5),@value2)+'='+convert(char(5),@result)
7、什么是触发器?
触发器是一种实施复杂数据完整性的特殊存储过程,他对表进行增删改查的时触发自动执行,以防止数据进行不正确,未授权货不一致的参数
触发器能够维持两个表之间的参照完整性,就像外键一样 ,外键执行效率更高,因为他们在数据改变之前被测试,而不想触发器在数据改变之后才触发
8、什么是游标?
游标是一种处理数据的方法,为了查看或者处理结果集中的数据,游标提供了结果集中向前或者向后浏览数据的能力
游标的使用步骤:1、创建游标 2、打开游标 3、读取数据 4、数据操作 5、关闭和释放游标
declare @taocan nvarchar(50),@youhui nvarchar(50) declare taocan_cursor scroll cursor --声明游标 for select Taocan,youhui from [189Shop].[dbo].[Table_TaocanType] for read only open taocan_cursor ---打开游标 fetch from taocan_cursor into @taocan,@youhui --从游标中提取行 while @@FETCH_STATUS=0--表示成功完成FETCH 语句 begin print '套餐:'+@taocan+',优惠:'+@youhui fetch from taocan_cursor into @taocan,@youhui end close taocan_cursor --关闭游标 deallocate taocan_cursor --释放游标
9、什么是事务?
事务是一系列操作,这些操作要么被执行,要么不被执行,他是一个不可分割的单元
-
mysql视图的名词解释_数据库试题和名词解释.doc
2021-01-28 07:07:54数据库试题和名词解释《数据库技术及应用》一、单项选择题(30分)1. 关系数据库中,实现实体之间的联系是通过表与表之间的( )A公共索引 B公共存储 C公共元组 D公共属性2. 事务日志是用于保存( )A数据操作 B对数据库的... -
模块耦合名词解释_名词解释题
2020-12-22 07:23:481第1章名词解释1、软件开发工具:在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各阶段,对软件开发者提供各种不同程度帮助(支持)的一类广泛的软件。... -
物联网名词解释
2020-05-09 11:46:15它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。 DCS: 集散控制系统是以微处理器为基础,... -
MySQL中常见的名词解释
2018-05-08 15:26:07过程管理器:支持mysql独有语法 函数库 支持在sql语句中插入mysql独有函数 2.常用术语 1.存储引擎 名称 含义 MyISAM 无事务,速度快 INNODB 有事务,功能全,常用 ... -
图像化转向名词解释_遥感——数字图像处理名词解释及简单整理
2020-12-31 08:55:182、图像处理的内容它是研究图像的获取、传输、存储、变换、显示、理解与综合利用的一门崭新学科。根据抽象程度不同可分为三个层次:狭义图像处理、图像分析和图像理解。Unit21、图像数字化是将一幅画面转化成计算机... -
MSSql中实现翻页的5个存储过程
2020-06-13 19:45:07是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在... -
ElasticSearch名词解释
2017-04-14 10:21:48分析的过程就是将全文(full text)转换成 术语/分词(terms)。 这取决于使用那个分析器,这些短语:“FOO BAR”, “Foo-Bar”, “foo,bar”,可能会拆分成” foo”和“bar”。这些拆分后的词实际上是存储在索引中... -
索引,视图和存储过程的利弊
2014-03-26 19:54:28在网上看到有关视图和存储过程的一道面试题,就整理一下。本文参考到维基百科还有其他网站的的一些解释。 索引:索引是一本书籍的重要组成部分,它把书中的重要名词列罗列出来,并给出它们相应的页码,方便读者快速... -
几个名词的解释
2007-12-07 17:48:00存储过程中的set nocount off 表示该存储过程返回受影响的行数,为on的话就不返回。/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////... -
数据结构名词解释汇总okk.docx
2020-04-22 10:28:21是研究数据元素(DataElement)之间抽象化的相互关系和这种关系在计算机中的存储表示(即数据的逻辑结构和物理结构),并对这种结构定义相适应的运算,设计出相应的算法,且确保经过这些运算后所得到的新结构仍然是... -
python面向过程与面向对象的名词解释_Python实习生面向对象——首次见面(面向对象、面向过程、类、参数自...
2021-01-30 05:56:43年轻人,你渴望力量吗?你渴望拥有对象吗?让我们面向对象重建“家园”吧!一.面向对象的简介众所周知,python是一门面向...\color{blue}{通俗的来讲,对象就是内存中用来存储指定数据的一块区域。}通俗的来讲,对... -
数据库学习基础之名词解释
2011-06-11 22:27:21系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的... -
虚拟币开发专题(区块链中使用的技术专业名词解释)
2017-07-15 10:14:24序列化:将一个数据结构转换成一个字节序列的过程。区块链在内部使用的编码格式称为递归长度前缀编码(RLP),在这里有描述 帕特里夏树:一种数据结构,它会存储每个帐户的状态。这个树的建立是通过从每个节点... -
.net中几个名词解释
2009-03-06 19:29:00A: XX工厂(Factory):生成某个对象运用了工厂模式,负责生成(生产)对象任务的对象叫做工厂。...一个非托管应用程式(比如sql server2005)需要运行托管代码(比如C#写的存储过程),那么就需要在他的... -
【vb.net机房重构】存储过程
2015-03-28 10:58:16关于存储过程官方的解释是说它是放在服务器上的预先编译好的SQL语句。看到这里,作为文科生的人可能又要迷糊了,什 么是服务器呀?为什么叫预先编译好的SQL语句呀?它又是在哪里编译呢? 如何建立: 下面让... -
Elasticsearch文档存储过程
2018-03-17 22:35:09参考:ES官方文档分片内部原理:https://www.elastic.co/guide/cn/elasticsearch/guide/current/inside-a-shard.htmlES分片原理:http://blog.csdn.net/mgxcool/article/details/49250341索引的解释:名词的索引:指... -
虚拟币开发专题(二代币区块链专业名词解释)
2017-07-12 10:17:21序列化:将一个数据结构转换成一个字节序列的过程。虚拟币在内部使用的编码格式称为递归长度前缀编码(RLP),在这里有描述 帕特里夏树:一种数据结构,它会存储每个帐户的状态。这个树的建立是通过从每个节点... -
理解sp_excutesql存储过程
2011-07-16 12:00:00以下是对msdn中关于sp_excutesql存储过程描述的理解: msdn关于sp_excutesql的描述分成三个方面: 自包含批处理 替换参数值 重用执行计划 自包含批处理: 理解自包含批处理最好先理解“批处理”的概念。“批处理”是... -
【PL/SQL】匿名块、存储过程、函数、触发器
2017-03-12 02:11:27名词解释 子程序:PL/SQL的过程和函数统称为子程序。 匿名块:以DECLARE或BEGIN开始,每次提交都被编译。匿名块因为没有名称,所以不能在数据库中存储并且不能直接从其他PL/SQL块中调用。 命名块:除匿名块之外的... -
Linux系统存储之LVM
2019-11-11 15:35:361.lvm存在意义及名词解释 - lvm存在意义: 解决存储容量的问题: - 图解lvm如何解决存储容量的问题 - 名词解释 2.lvm的建立 pvcreate---->vgcreate---->lvceate 在创建过程中我们可以用以下命令监控,可以... -
mysql知识点(存储引擎,MVCC)
2020-07-10 18:29:33名词解释: 索引覆盖:select id,name form tbl where name = ‘张三’,如果name是表的索引,那么先去查找辅助索引,辅助索引的叶子节点上存的是主键的值,此时从辅助索引就可以查到对应的字段,就不用再去主键 -
第四、五章 存储管理与虚拟存储
2018-05-31 19:07:00一、名词解释1.地址映射把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为地址重定位。2.动态重定位地址变换过程在程序执行期间,随着对每条指令或数据的访问自动进行... -
Linux下系统存储--LVM
2019-11-14 19:24:07LVM存在的意义及名词解释 1、LVM存在的意义: 2、LVM的图解 3、名词解释 LVM的建立 1、查看LVM的信息 pvs #查看pv的信息 vgs #查看vg的信息 lvs #查看lvm的信息 2、步骤 在创建过程中我们可以用以下命令监控,... -
18.Linux高级存储管理
2021-02-21 10:13:49名词 解释 pv物理卷 被处理过的物理分区 vg物理卷组 捆绑pv到一个组中 pe物理扩展 设定存储最小单元 lv逻辑卷 最终的使用设备 watch -n 1 "pvs;echo ====;vgs;echo =====;lvs;echo =====;df -h /weixin... -
ceph存储 性能测试常见问题
2018-09-12 15:50:19名词解释 性能测试FAQ 1. 性能测试的基本过程是什么? 2. 如何准备测试环境? 3. 准备环境时,由于条件限制,机器系统硬件环境可能不同,机器硬件的cpu主频,单双核,硬盘转速等对性能测试的影响情况如何,在... -
JVM——虚拟机栈结构以及原理超详细解释
2020-12-24 15:39:07名词解释 当前栈帧:一条线程在执行过程中,一个时间点上,只会有一个活动的栈帧(栈顶的栈帧,当前正在执行的方法对应的栈帧) 当前方法:当前栈帧对应的方法 定义这个方法的类:当前类 栈的存储结构 上面已经...