最近项目中要用到MySql数据库的相关操作,因为之前用C#写的项目中,用的比较多的就是SQL,Orale数据库,写SQL数据库的存储过程及测试语句,可能大家都比较熟,可是对于MySql写存储过程及语法,你又了解多少呢。
C#操作MySQL数据库,可以使用开源类库mysql.data.dll,这个操作和SQL数据库的操作类比较相似,本章内容暂时不说这些内容。只说写MySql的一些语法及注意事项:
本节内容如下:
(1)MySql如何定义变量
(2)MySql的注释怎么写
(3)MySql如何存储过程(带返回参数)
(4)怎么样执行MySql存储过程(带返回参数)
(5)MySql中的判断语句怎么写
(6)执行MySql存储过程,中文写进数据库变成乱码
我们开始吧。
一:MySql如何定义变量
对于SQL的开发人员,第一想到的就是Declare。可是MySQl是这样的吗,经测试,如果是写存储过程,里面可以用到Declare,而不是存储过程,只是写一些测试用例时应该使用Set关键字。例如:
存储过程中定义变量
CREATE PROCEDURE `test`( username CHAR(20) BEGIN DECLARE nickID INT;
不是存储过程定义变量:
set @code =1; select @code;
二:MySql的注释怎么写
这个就比较简单了,可以通过三种方式
三:MySql如何存储过程(带返回参数)
写过SQL的人一定想到Out关键字,MySql也是一样。直接代码如下
CREATE PROCEDURE `test`( username CHAR(20) , out Code INT) BEGIN DECLARE nickID INT;
四:怎么样执行MYSql存储过程(带返回参数)
第一次用了SQL的方法进行,内容报错。就在网上查查。终于找到参考内容。我直接代码:
call test('ywtest',@code); select @code;
@code就是返回参数,不用定义,直接写,加上@就可以了。是不是很简单.
五:MySql中的判断语句怎么写
这个我也可想多说了,直接代码,一目了然。
IF FOUND_ROWS() =0 THEN BEGIN SET Code=1000;-- 成功 END; ELSE SET Code=1001;-- 失败
END IF;
结构不难看出。我已经标识为红色了。
六:执行MySql存储过程,中文写进数据库变成乱码
我在写完存储过程后,直接调用,存储过程的参数是char类型,我直接输入中文,保存到数据库竟然是乱码,这下慌了。网上查查,又是改字符集,又是改其它的都不行。最后解决办法很简单
就是在存储过程的参数后面加上character set utf8即可。直接代码。
CREATE PROCEDURE `test`( username CHAR(20) character set utf8, out Code INT) BEGIN DECLARE nickID INT;
好了,MySql的语法就说到这里,只是记录一下自己遇到的一些问题进行总结。
转载请注原创地址,谢谢。