bitsCN.com
--存储过程及常用流程控制语法
/*该代码是创建了一个名叫"p4"的存储过程并设置了s1,s2,s3两个int型一个varchar型参数,还可以是其他数据类型,内部创建了x1,x2两个变量
DELIMITER是修改分隔符的
DELIMITER $$的意思是把默认分隔符";"换成"$$",这样分段写的存储过程就能整个被执行,而不是被当成多条sql语句单独执行
创建完过程再将分隔符改回成";"
两种创建变量并赋值的方式
SET @变量名 = 值;
SELECT 值 INTO @变量名;
使用变量前必须先运行该变量赋值语句
过程内部还可以通过 "DECLARE 变量名 类型(字符串型要加范围) DEFAULT 值;" 来创建变量,但如此创建的变量只能在该过程内部访问
存储过程只有三种类型参数 IN,OUT,INOUT
调用过程时过程有几个参数传几个参数,只是IN型的参数可以传的是变量,可以是常量,而OUT和INOUT型的参数传的必须是变量
传给out,inout参数的变量值会随着在过程中改变在外部也改变,而给in参数的变量外部值则不受过程内变量值改变的影响
*/DELIMITER $$
DROP PROCEDURE IF EXISTS `p4`$$
CREATE PROCEDURE `p4`(IN s1 INT,OUT s2 INT,INOUT s3 VARCHAR(10))
BEGIN
DECLARE x1 VARCHAR(10) DEFAULT 'this is x1';
DECLARE x2 VARCHAR(10) DEFAULT 'this is x2';
SET s1 = 11;
SET s2 = 22;
SET s3 = 'iss3';
/*if语法*/
IF s1 = 11 AND s2 = 12 THEN
SELECT s1,s2;
END IF;
IF s3 = 's3' OR s1 = s2 THEN
SELECT s3;
ELSE
SELECT s1,s2,s3;
END IF;
/*case语法*/
CASE s3
WHEN 's1' THEN
SELECT 'this is s1';
WHEN 's2' THEN
SELECT 'this is s2';
ELSE
SELECT 'this is s3';
END CASE;
/*while循环*/
WHILE s1>1 DO
SET s1=s1-1;
END WHILE;
SELECT s1;
/*repeat循环语句
与while不同的是while满足条件就执行,repeat始终执行直到满足条件终止
*/REPEAT
SET s1 = s1-1;
UNTIL s1=1
END REPEAT;
SELECT s1;
/*LOOP循环
LOOP没有循环条件,会不停的循环直到遇到 "LEAVE ZiDingYi;" "ZiDingYi"是自定义的LOOP标记*/
ZiDingYi:LOOP
SET s1 = s1+1;
IF s1 = 5 THENLEAVE ZiDingYi;
END IF;
END LOOP;
SELECT s1;
END$$
DELIMITER ;
SET @p_in=1;
SET @p_out=2;
SET @p_inout = 's3';
SELECT 'Hello World1' INTO @p_4;
/*调用存储过程*/
CALL p4(@p_in,@p_out,@p_inout);
SELECT @p_in,@p_out,@p_inout,@p_4;
/*存储过程如果只有一个语句则语句不用 begin...end包围
存储过程中可以直接使用外部定义的变量
存储过程中用set和select定义的变量就是全局的,执行该过程后内部用set和select定义的变量外部可以访问,其他过程也可以直接使用*/
CREATE PROCEDURE p1() SET @var='p1';
CREATE PROCEDURE p2() SELECT CONCAT('Last procedure was ',@var);
CALL p1();
CALL p2();
SELECT @var;
CREATE PROCEDURE p3() SELECT CONCAT(@p3_var,' World');
SET @p3_var='Hello';
CALL p3();
/*删除存储过程*/
DROP PROCEDURE p4;
/*或者*/
DROP PROCEDURE IF EXISTS `p4`
/*查看该数据库下有哪些存储过程 test为数据库名*/
SELECT NAME FROM mysql.proc WHERE db='test';
/*或者*/SHOW PROCEDURE STATUS WHERE db='test';
/*查看存储过程详细信息,包括创建语句*/SHOW CREATE PROCEDURE p4;
--创建触发器(表里的触发器如果是触发本表,就会报错;触发其他的表就可以)
create trigger zl_tri after insert on zl_table
for each ROW
insert INTO zl_table1(Count) VALUES(2222);
--显示触发器
Show triggers [from 库名]
--删除触发器
DROP TRIGGER 库名.触发器名;
--集合
MySql只支持Union(并集)集合运算,好像也是4.0以后才有的;
但是对于交集Intersect、差集Except,就没有实现了。
--连接(和sql语法一样)
--基本语法(基本和sql语法一样,一下是不一样的地方)
select * from emp order by emp_sal desc limit 2; --limit相当于top
查看工资排名第2到第3的员工资料:
mysql> select * from emp order by emp_sal desc limit 1,2;
使用rand()抽样调查,随机抽取2个员工,查看其资料
mysql> select * from emp order by rand() limit 2;
bitsCN.com

Python作为当下最大众化的编程语言,相信每天都会有大量的新手朋友进入学习大军的行列。但是无论一门语言是多么的容易学习,其基本概念、基础知识还是比较多的,对于小白来说,一时间要掌握这么多还是有些吃力。今天精选收集了众多Python相关的知识速查表,可以说是包罗万象,以后妈妈再也不用担心大家记不住任何知识点了!Python基础Pythonbasics该速查表包含了所有的Python基本知识,从变量数据类型到列表字符串,从环境安装到常用库的使用,可以说面面俱到。Beginner'sPytho

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

在mysql中,是否需要commit取决于存储引擎:1、若是不支持事务的存储引擎,如myisam,则不需要使用commit;2、若是支持事务的存储引擎,如innodb,则需要知道事务是否自动提交,因此需要使用commit。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具