|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”mysql|selectMySQL中SELECT语句的基础语法是:
SELECT[STRAIGHT_JOIN][SQL_SMALL_RESULT][SQL_BIG_RESULT][HIGH_PRIORITY][DISTINCT|DISTINCTROW|ALL]select_list[INTO{OUTFILE|DUMPFILE}file_nameexport_options][FROMtable_references[WHEREwhere_definition][GROUPBYcol_name,...][HAVINGwhere_definition][ORDERBY{unsighed_integer|col_name|formura}[ASC|DESC],...][LIMIT[offset,]rows][PROCEDUREprocedure_name]]
从这个基础语法能够看出,最复杂的SELECT语句是SELECTselect_list,实践上使用这个最复杂的SELECT语句,你也能够完成很多你等候的功效,起首你能使用它举行MySQL所撑持的任何运算,比方:SELECT1+1,它将前往2;其次,你也能使用它给变量赋值,而在PHP中,使用SELECT语句的这类功效,你就能够自在地使用MySQL的函数为PHP程序举行各类运算,并赋值给变量。在良多的时分,你会发明MySQL具有很多比PHP更加功效壮大的函数。
STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、HIGH_PRIORITY是MySQL对ANSISQL92的扩大。假如优化器以非最好序次联合表,利用STRAIGHT_JOIN能够加速查询。
SQL_SMALL_RESULT和SQL_BIG_RESULT是一组绝对的关头词。它们必需与GROUPBY、DISTINCT或DISTINCTROW一同利用。SQL_SMALL_RESULT告诉优化器了局会很小,请求MySQL利用一时表存储终极的表而不是利用排序;反之,SQL_BIG_RESULT告诉优化器了局会很小,请求MySQL利用排序而不是做一时表。
HIGH_PRIORITY将付与SELECT比一个更新表的语句更高的优先级,使之能够举行一次优先的疾速的查询。
以上四个关头词的利用办法切实其实对照流畅。侥幸的是,在尽年夜多半情形下,在MySQL中我们完整能够选择不利用这四个关头词。
DISTINCT、DISTINCTROW对查询前往的了局集供应了一个最基础可是很有效的过滤。那就是了局会合只含非反复行。在这里要注重的是,对关头词DISTINCT、DISTINCTROW来讲,空值都是相称的,不管有几NULL值,只选择一个。而ALL的用法就有多此一举之嫌了。它对了局集的发生没有任何影响。
INTO{OUTFILE|DUMPFILE}file_nameexport_options,将了局集写进一个文件。文件在服务器主机上被创立,而且不克不及是已存在的。语句中的export_options部分的语法与用在LOADDATAINFILE语句中的FIELDS和LINES子句中的不异,我们将在MySQL进阶_LOADDATA篇中具体会商它。而OUTFILE与DUMPFILE的关头字的区分是:后前只写一行到文件,并没有任何列或行停止。如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL。 |
|