Mysql是数以关系型数据库管理系统,属于Oracle公司,早年是属于sun公司的,在2010年10月24日被甲骨文公司收购了!
在mysql5.0版本以前mysql是不支持事物的,在5.0版本以后改善了此功能!
mysql对php,web,java,c#都是支持的,同时对各个系统平台都是支持的!
mysql和sqlserver的增删改查的操作方式是一样的,但是mysql的存储过程的写发方式和各种大型数据库的都是差不多的!
各种数据库的都有存储过程、事物、游标,但是在一般的公司里面,存储过程用的比较多,事物其次,游标很少用!
一般进公司别人会问
存储过程和函数的区别
不同点:
1、标识符不同,函数function 过程 procedure 2、函数可以有返回值,可以没返回值。而过程没有返回值
3、函数有返回值类型可以将结果返回给变量,而过程没有返回值
4、函数可以在select语句中直接使用,而过程不行!
相同点:
两者都有出参(参数在方法内发生变化话,将值传出)
讲了这么多,还没说到存储过程到底是什么?
存储过程其实就是面向对象的一个模拟。(什么叫面向对象呢,一切客观可感的的事物都是我们的对象)
在mysql我们定义存储过程的时候一定要在开头和结尾的时候定义两个关键字delimiter // ******// ****delimiter;这个过程 没有定义这个开头和介绍Mysql会自动默认为是一般的增删改查的操作语言,从而会报各种各样的错!
存储过程在mysql里面是怎么使用的呢?
delimiter //
1、创建一个存储过程 create procedure pro()
2、开始begin
3、你用算法和代码
4、结束end
//
call pro(); -- 回调函数
这个存储过程就简历好了;
delimiter //
create procedure pro11(IN sname nvarchar(100),IN Age int,IN Adress nvarchar(100) )
begin
declare count1 int;
declare idd int;
declare sname nvarchar(100);
declare age int;
declare adress nvarchar(100);
set count1=0;
set sname=Name;
set age=Age;
set adress=Adress;
while count1<60 do
insert into demo(sname,age,address) values(Name,age,adress);
SET count1 = count1 + 1;
end while ;
set idd=(select max(id) from demo);
select idd;
end
//
delimiter ;
同时在给存储过程写入参数的时候 会有三个关键字:in,out,inout
in:一般是默认状态下的,指的是我们将参数值传递给存储过程不需要将值返回过来,在调用存储过程的时候我们必须初始化值
out:指从存储过程传出信息,在调用存储过程的时候我们可以不必初始化值,在存储过程里面参数就是null,然后在传出存储过后之前必须初始化值
inout:指在传进存储过程前我们必须初始化值,在存储过程中经过计算后再次传出存储过程
(突然想到这和c#语言中out、ref很像)
【在c#中如果你要调用MySql的接口,需要去官网下载http://dev.mysql.com/downloads/connector/net/ 在你安装程序的位置找到System.Data.SQLite.dll】