1. 创建实例数据库
create database db5;
use db5;
2.创建一个简单的工作表,并插入数据
create table t(s1 int);
insert into t values(5);
3.创建程序实例 create procedure Example
create procedure p1() select * from t;
SQL语句存储过程的第一部分是 create procedure
第二部分是过程名:上面新存储过程的名字是p1。
第三部分书参数列表(),第四部分是程序的主体,“select * from t”
*****什么样的MySQL语句在存储过程体中是合法的?
在存储过程体中可以包含所有的合法SQL数据库定义语言,insert,update,delete,drop,create,replace等等语句
包括(set,commit,rollback)但是,在代码中如果包含MYSQL的扩充功能,那么代码将不能移植。
4. 调用存储过程,所需要输入的就是call和你过程名以及一个括号。
call p1();
5.过程中的特征子句
create procedure p2()language SQL
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
select current_date,rand() from t;
6.Parameters参数
create procedure p5()------; //参数列表是空的
create procedure p5([IN] name data-type)---- //输入参数in可选,默认为参数为in
create procedure p5(out name data-type)----- //输出参数out
create procedure p5(inout 那么data-type)----- //即可以做输入参数也可以做输出参数
----输入参数in 例子。
create procedure p5(p int) set @x=p;
call p5(12345);
select @x;
----输出参数out 例子
create procedure p6(out p int)set p=-5;
call p6(@y);
select @y;
7. 复合语句:如果你的过程中有多条语句,那么你需要begin/end块。在这里你可以进行变量的定义和流程的控制
首先执行命令 delimiter //
create procedure p7()
BEGIN
set @a=6;
set @b=5;
insert into t values (@a);
select s1 * @a from t where s1>= @b;
END;//
-----在复合语句中申明变量
create procedure p8()
begin
DECLARE a INT;
DECLARE b INT;
SET a=5;
SET b=5;
insert into t values (a);
select s1*a from t where s1>=b;
end;//
含有default默认语句舌设定语句的例子
create procedure p9()
begin
declare a ,b int default 5;
insert into t values(a);
select s1*a from t where s1>=b;
end;//
8. scope作用域的问题:内部的变量在其作用域范围内享有更高的优先权,当执行到end
变量时,内部变量消失,此时已经在其作用域外,变量不再可见了,应为在存储
过程外再也不能找到这个申明的变量,但是你可以通过out参数或者将其值指派
给会话变量来保存其值。
create procedure p11()
begin
declare x1 char(5) default 'outer';
begin
declare x1 char(5) default 'inner';
select x1;
end;
select x1;
end;//
/********************************* 存储过程中的条件式语句 ***************************************/
1. if-then -else语句
create procedure p12(in parameter int)
begin
declare var int;
set var=parameter+1;
if var=0 then
insert into t values(17);
end if;
if parameter=0 then
update t set s1=s1+1;
else
update t set s1=s1+2;
end if;
end;//
2. case指令:如果需要进行更多条件真假的判断我们可以使用case语句
create procedure p13(in parameter int)
begin
declare var int;
set var=parameter+1;
case var
when 0 then insert into t values(17);
when 1 then insert into t values(18);
else insert into t values(19);
end case;
end;//
/***************************** 循环语句 ************************************/
1. while ···· end while; 循环语句
create procedure p14()
begin
declare var int;
set var=0;
while var<6 do
insert into t values(var);
set var=var+1;
end while;
end;//
2. repeat···· end repeat ;它在执行操作后检查结果,而while则是执行前进行检查
create procedure p15()
begin
declare v int;
set v=0;
repeat
insert into t values(v);
set v=v+1;
until v>=5
end repeat;
end;//
3. loop ·····end loop; loop 循环不需要初始条件,这点和while 循环相似,同时和repeat
循环一样不需要结束条件, leave语句的意义是离开循环,
create procedure p16()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
insert into t values(v);
set v=v+1;
if v >=5 then
leave LOOP_LABLE;
end if;
end loop;
end;//
4. LABLES 标号:标号可以用在begin repeat while 或者loop 语句前,语句标号只能在
合法的语句前面使用。可以跳出循环,使运行指令达到复合语句的最后一步。
一、LOCATE
<!---->/*
LOCATE(substr, str);
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0。
如下示例,返回结果:5
*/
SELECT LOCATE('5', '1234567890');
二、LENGTH
<!---->/*返回字符串的长度*/
SELECT LENGTH(str);
三、CONCAT
<!---->/*
字符串连接函数
如下示例结果:'abc123def'
*/
SELECT CONCAT('abc', 123, 'def');
四、REPLACE
<!---->/*
字符串替换函数
如下示例结果:'123def'
*/
SELECT REPLACE('abcdef', 'abc', '123');
五、SUBSTRING
<!---->/*
字符串截取函数 SUBSTRING(str, begin, end);
截取字符串str,从第begin位到end位
如下示例结果:'567890'
*/
SELECT SUBSTRING('1234567890', 5, 10);
最后作为一个结束,介绍个
MySql分页存储过程
DROP PROCEDURE IF EXISTS `PtBase`.`prPager`;
CREATE PROCEDURE `PtBase`.`prPager`(
OUT oRowsTotal INT, --输出记录总数
IN iTableName VARCHAR(800), --表名
IN iFields VARCHAR(800), --查询字段
IN iPageSize INT, --每页记录数
IN iPageNow INT, --当前页
IN iOrderString VARCHAR(100), --排序条件
IN iWhereString VARCHAR(800) --WHERE条件
)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE _beginRow INT DEFAULT 0;
DECLARE _mainString VARCHAR(8000);
DECLARE _limitString VARCHAR(100);
DECLARE _countString VARCHAR(8000);
SET _beginRow = (iPageNow - 1) * iPageSize;
SET _limitString = CONCAT(' LIMIT ', beginRow, ', ', iPageSize);
SET _countString = CONCAT('SET oRowsTotal = SELECT COUNT(*) FROM ', iTableName, ' WHERE ', iWhereString);
SET _mainString = CONCAT('SELECT ', iFields, ' FROM ', iTableName, ' WHERE ', iWhereString, iOrderString, _limitString);
SET @countStr = _countString;
PREPARE countStmt FROM @countStr;
EXECUTE countStmt;
DEALLOCATE PREPARE countStmt;
SET @mainStr = _mainString;
PREPARE mainStmt FROM @mainStr;
EXECUTE mainStmt;
DEALLOCATE PREPARE mainStmt;
END;
相关推荐
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
一份关于信号与系统的大纲教程!!!!!!!!!!!!!
【课件】7.5.1散列表的基本概念
【课件】8.7.4置换-选择排序
unidac_10.2.1_d29pro.exe
此代码是基于 C、C++ 语言的 stm32 为微控制器编写的。 代码包含单独的部分:main、ini、USART code_for_display。 ADC_ini(模数转换器)是关于初始化ADC的。每当您触发模拟输入以开始转换时,它都会对模拟输入进行采样。它执行一个称为量化的过程,以决定电压电平及其在输出寄存器中推送的二进制代码。 USART(通用异步接收器-发射器)是一种外围通信硬件设备,它允许计算机通过 wifi 或蓝牙与串行连接的设备进行同步和异步通信。 code_for_display部分是包含 7 段显示的代码。 main 初始化ADC_ini,USART,code_for_display并开始接收信息的循环,显示它,将其发送到另一个设备,重复
大学生数据结构学习笔记和资料大全!
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
Android-Retrofit-Images在这个示例 Android 项目中
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
基于MSP430F5529的两路寻迹小车.zip
大学生 C/C++/JAVA/Python数据结构学习笔记和资料大全
Windows下的MDK Keil uVision4的demo工程,STM32F103的IC,开箱即可编译烧写体验: 已包含完整的freeRTOS依赖,可直观体验freeRTOS事件Event实现的多线程通信,代码方面主要通过未使用事件Event来实现多个线程间通信。 工程方面已经集成了freeRTOS的源码及相关事件Event的使用示例,配合博文《FreeRTOS 体验教程:7.如何用事件Event实现FreeRTOS多线程通信?》食用效果更佳。
头歌c语言实验答案 实验结果: 当输入示例字符串后,程序将输出预期结果: Character count: 49 Word count: 9 Line count: 3 这样的实验设计可以帮助学生加深对C语言字符串处理的理解,包括指针操作、字符分类函数的使用以及基本的逻辑控制。
C#学生管理系统.zip 学生选课及成绩查询系统是一个学校不可缺少的部分
Eclipse archetype-catalog.xml
1.DBeaver是一款通用数据库工具,专为开发人员和数据库管理员设计。 2.DBeaver支持多种数据库系统,包括但不限于MySQL、PostgreSQL、Oracle、DB2、MSSQL、Sybase、Mimer、HSQLDB、Derby、SQLite等,几乎涵盖了市场上所有的主流数据库。 3.支持的操作系统:包括Windows(2000/XP/2003/Vista/7/10/11)、Linux、Mac OS、Solaris、AIX、HPUX等。 4.主要特性: 数据库管理:支持数据库元数据浏览、元数据编辑(包括表、列、键、索引等)、SQL语句和脚本的执行、数据导入导出等。 用户界面:提供图形界面来查看数据库结构、执行SQL查询和脚本、浏览和导出数据,以及处理BLOB/CLOB数据等。用户界面设计简洁明了,易于使用。 高级功能:除了基本的数据库管理功能外,DBeaver还提供了一些高级功能,如数据库版本控制(可与Git、SVN等版本控制系统集成)、数据分析和可视化工具(如图表、统计信息和数据报告)、SQL代码自动补全等。
基于MapReduce的招聘数据清洗项目是一种高效处理和整理大量招聘数据的方法。MapReduce是一种分布式计算模型,由谷歌提出,广泛应用于大规模数据处理。该项目旨在通过MapReduce框架,将原始招聘数据进行清洗、规范化和去重,以生成干净、结构化的数据,便于后续分析和使用。 项目首先通过Mapper函数对原始数据进行初步处理,提取出关键字段如职位名称、公司名称、薪资范围等,并进行初步清洗,如去除空格、特殊字符等。接着,Reducer函数对Mapper输出的数据进行进一步处理,合并重复项,并按照预定规则规范化数据格式。 该项目免费提供源码,便于用户下载、使用和修改。用户可以根据自己的需求,调整MapReduce任务的参数和逻辑,以适应不同的数据清洗要求。通过分布式处理,项目能够高效处理海量招聘数据,提高数据清洗的速度和准确性。 使用基于MapReduce的招聘数据清洗项目,不仅可以大幅度提高数据处理效率,还能保证数据的一致性和准确性,为企业的招聘分析和决策提供可靠的数据支持。项目的源码开放,使得更多用户能够受益于这一高效的数据处理工具。
unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;unity角色几何优秀的路径动画源码,源码演示视频:https://www.bilibili.com/video/BV1Br421c7Nw/;
高分项目,基于Unity3D开发实现的HeliHell Pack 直升机控制,内含完整源码+资源+unitypackage 很多小伙伴都想找能够开直升机的游戏,今天安利几款直升机模拟游戏。在这些游戏里大家会模拟一名直升机驾驶员,驾驶直升机做各种任务。大家可以通过调节方向盘来控制直升机的起降和转...