柔情似水 发表于 2015-1-16 22:14:53

MYSQL网站制作之MySql存储历程 带参数处置体例

如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。  下文先容的MySql存储历程是带参数的存储历程(静态实行SQL语句),该MySql存储历程是依据用户输出的前提和排序体例查询用户的信息,排序前提能够没有挪用体例:
  callGetUsersDynamic(age<=30,);
/********静态查询用户的信息********/CREATEPROCEDUREGetUsersDynamic(WhereConditionvarchar(500),OrderByExpressvarchar(100))begindeclarestmtvarchar(2000);ifLENGTH(OrderbyExpress)>0thenbeginset@sqlstr=concat(selectid,name,password,age,getdate(adddate)asAddDatefromuserswhere,WhereCondition,orderby,OrderByExpress);end;elsebeginset@sqlstr=concat(selectid,name,password,age,getdate(adddate)asAddDatefromuserswhere,WhereCondition);end;endif;preparestmtfrom@sqlstr;executestmt;end;  getdate()是一个自界说的函数,感化是前往日期的短格局
CREATEDEFINER=`root`@`localhost`FUNCTION`getdate`($datedatetime)RETURNSvarchar(50)CHARSETlatin1returndate_format($date,%Y-%m-%d);  静态拔出数据的MySql存储历程,(注重四个单引号暗示一个一引号):
CREATEDEFINER=`root`@`localhost`PROCEDURE`InsertUser`(inname2varchar(50),inpassword2varchar(32),inage2int,inadddate2datetime)beginDECLAREstmtvarchar(2000);set@sqlstr=concat(insertintousers(name,password,age,adddate)values();set@sqlstr=concat(@sqlstr,,name2,,,,,password2,,,,age2,,,,adddate2,,));preparestmtfrom@sqlstr;executestmt;end;<Pstyle="TEXT-INDENT:2em">
最近由权威调查机构Evans数据公司进行的一项调查显示,MySQL在过去两年已经获得了25%的市场份额。该调查公司还预测,相比其他的开源数据库和闭源数据库。

变相怪杰 发表于 2015-1-19 05:58:35

对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。

冷月葬花魂 发表于 2015-1-25 18:58:16

大家注意一点。如下面的例子:

金色的骷髅 发表于 2015-2-3 13:55:34

大家注意一点。如下面的例子:

因胸联盟 发表于 2015-2-9 03:14:14

对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。

乐观 发表于 2015-2-26 20:06:09

至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。

飘飘悠悠 发表于 2015-3-8 17:28:54

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

爱飞 发表于 2015-3-16 08:58:59

一个是把SQL语句写到客户端,可以使用DataSet进行加工;

精灵巫婆 发表于 2015-3-22 21:49:29

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
页: [1]
查看完整版本: MYSQL网站制作之MySql存储历程 带参数处置体例