仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 607|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网站制作之静态SQL四品种型的语句格局

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:35:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQL部署迅速,因此移植过程不会导致生产中断。而且,较短的学习曲线可以让你的系统管理员迅速掌握它的运行和维护。而且,MySQL的易于维护和管理意味着目前的职员可以处理目前的工作。静态|语句1.DynamicSQLFormat1

EXECUTEIMMEDIATESQLStatement{USINGTransactionObject};

eg:
stringMysql
Mysql="CREATETABLEEmployee"&
+"(emp_idintegernotnull,"&
+"dept_idintegernotnull,"&
+"emp_fnamechar(10)notnull,"&
+"emp_lnamechar(20)notnull)"
EXECUTEIMMEDIATE:Mysql;

2.DynamicSQLFormat2

PREPAREDynamicStagingAreaFROMSQLStatement{USINGTransactionObject};
EXECUTEDynamicStagingAreaUSING{ParameterList};

eg:
INTEmp_id_var=56
PREPARESQLSA
FROM"DELETEFROMemployeeWHEREemp_id=?";
EXECUTESQLSAUSING:Emp_id_var;


3.DynamicSQLFormat3

DECLARECursor|ProcedureDYNAMICCURSOR|PROCEDUREFORDynamicStagingArea;
PREPAREDynamicStagingAreaFROMSQLStatement{USINGTransactionObject};
OPENDYNAMICCursor{USINGParameterList};
EXECUTEDYNAMICProcedure{USINGParameterList};
FETCHCursor|ProcedureINTOHostVariableList;
CLOSECursor|Procedure;
eg:
integerEmp_id_var

DECLAREmy_cursorDYNAMICCURSORFORSQLSA;
PREPARESQLSAFROM"SELECTemp_idFROMemployee";
OPENDYNAMICmy_cursor;
FETCHmy_cursorINTO:Emp_id_var;
CLOSEmy_cursor;


4.DynamicSQLFormat4

DECLARECursor|ProcedureDYNAMICCURSOR|PROCEDUREFORDynamicStagingArea;
PREPAREDynamicStagingAreaFROMSQLStatement{USINGTransactionObject};
DESCRIBEDynamicStagingAreaINTODynamicDescriptionArea;
OPENDYNAMICCursor|ProcedureUSINGDESCRIPTORDynamicDescriptionArea;
EXECUTEDYNAMICCursor|ProcedureUSINGDESCRIPTORDynamicDescriptionArea;
FETCHCursor|ProcedureUSINGDESCRIPTORDynamicDescriptionArea;
CLOSECursor|Procedure;

eg:

stringStringvar,Sqlstatement
integerIntvar
Sqlstatement="SELECTemp_idFROMemployee"
PREPARESQLSAFROM:Sqlstatement;
DESCRIBESQLSAINTOSQLDA;
DECLAREmy_cursorDYNAMICCURSORFORSQLSA;
OPENDYNAMICmy_cursorUSINGDESCRIPTORSQLDA;
FETCHmy_cursorUSINGDESCRIPTORSQLDA;

//IftheFETCHissuccessful,theoutput
//descriptorarraywillcontainreturned
//valuesfromthefirstrowoftheresultset.
//SQLDA.NumOutputscontainsthenumberof
//outputdescriptors.
//TheSQLDA.OutParmTypearraywillcontain
//NumOutputentriesandeachentrywillcontain
//anvalueoftheenumerateddatatypeParmType
//(suchasTypeInteger!,orTypeString!).

CHOOSECASESQLDA.OutParmType[1]
CASETypeString!
Stringvar=GetDynamicString(SQLDA,1)
CASETypeInteger!
Intvar=GetDynamicNumber(SQLDA,1)

ENDCHOOSE
CLOSEmy_cursor;
据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员DBA更倾向于选择一个专有关系数据库,例如Oracle。对于一些具有专门数据库管理员的比较大的环境来说,MySQL很难得到宠爱,这时候,关于MySQL是否真的具有良好的可扩展性的争论已经没有意义。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-19 17:19:40 | 只看该作者
你可以简单地认为适合的就是好,不适合就是不好。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-24 15:27:42 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
不帅 该用户已被删除
地板
发表于 2015-2-1 19:42:44 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
乐观 该用户已被删除
5#
发表于 2015-2-7 15:00:30 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
若天明 该用户已被删除
6#
发表于 2015-2-22 08:33:46 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
若相依 该用户已被删除
7#
发表于 2015-3-6 23:56:25 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
飘灵儿 该用户已被删除
8#
发表于 2015-3-13 23:04:41 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
第二个灵魂 该用户已被删除
9#
发表于 2015-3-20 21:02:18 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 06:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表