【原创】MySql的语法及注意事项

最近项目中要用到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的注释怎么写

这个就比较简单了,可以通过三种方式

1、#...
2、"--  ..."   (--后面必须跟一个空格呀)
3、/*...*/

三: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的语法就说到这里,只是记录一下自己遇到的一些问题进行总结。

转载请注原创地址,谢谢。

原文地址:https://www.cnblogs.com/yxhblog/p/2579593.html