- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL SELECT语法篇
MySQL进阶SELECT语法篇从基本语法可以看出,最简单的SELECT语句是SELECT select_list,实际上利用这个最简单的SELECT语句,你也可以完成许多你期待的功能,首先你能利用它进行MySQL所支持的任何运算,例如:SELECT 1+1,它将返回2;其次,你也能利用它给变量赋值,而在PHP中,运用SELECT语句的这种功能,你就可以自由地运用MySQL的函数为PHP程序进行各种运算,并赋值给变量。在很多的时候,你会发现MySQL拥有许多比PHP更为功能强大的函数。MySQL中SELECT语句的基本语法是:?SELECT?[STRAIGHT_JOIN]?[SQL_SMALL_RESULT]?[SQL_BIG_RESULT]?[HIGH_PRIORITY]?[DISTINCT|DISTINCTROW|ALL]?select_list?[INTO?{OUTFILE|DUMPFILE}?file_name?export_options]? [FROM?table_references?[WHERE?where_definition]? [GROUP?BY?col_name,...]? [HAVING?where_definition]? [ORDER?BY?{unsighed_integer|col_name|formura}?[ASC|DESC],...]? [LIMIT?[offset,]?rows]? [PROCEDURE?procedure_name]]??STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、HIGH_PRIORITY是MySQL对ANSI?SQL92的扩展。如果优化器以非最佳次序联结表,使用STRAIGHT_JOIN可以加快查询。SQL_SMALL_RESULT和SQL_BIG_RESULT是一组相对的关键词。它们必须与GROUP?BY、DISTINCT或DISTINCTROW一起使用。SQL_SMALL_RESULT告知优化器结果会很小,要求MySQL使用临时表存储最终的表而不是使用排序;SQL_BIG_RESULT告知优化器结果很小,要求MySQL使用排序而不是做临时表。HIGH_PRIORITY将赋予SELECT比一个更新表的语句更高的优先级,使之可以进行一次优先的快速的查询。?以上四个关键词的使用方法的确比较晦涩。幸运的是,在绝大多数情况下,在MySQL中我们完全可以选择不使用这四个关键词。DISTINCT、DISTINCTROW对查询返回的结果集提供了一个最基本但是很有用的过滤。那就是结果集中只含非重复行。在这里要注意的是,对关键词DISTINCT、DISTINCTROW来说,空值都是相等的,无论有多少NULL值,只选择一个。而ALL的用法就画蛇添足了。它对结果集的产生没有任何影响。?INTO?{OUTFILE|DUMPFILE}?file_name?export_options,将结果集写入一个文件。文件在服务器主机上被创建,并且不能是已经存在的。语句中的export_options部分的语法与用在LOAD?DATAINFILE语句中的FIELDS和LINES子句中的相同,我们将在MySQL进阶_LOAD?DATA篇中详细讨论它。而OUTFILE与DUMPFILE的关键字的区别是:后前只写一行到文件,并没有任何列或行结束。??select?list:其中可以包含一项或多项下列内容:1、“*”,表示按照create?table的顺序排列的所有列。2、按照用户所需顺序排列的列名的清单。??3、可以使用别名取代列名,形式如下:column?name?as?column_heading。4、表达式(列名、常量、函数,或以算术或逐位运算符连接的列名、常量和函数的任何组合)。5、内部函数或集合函数。6、上述各项的任何一种组合。FROM:决定SELECT命令中使用哪些表。一般都要求有此项,除非select_list中不含列名(例如,只有常量、算术表达式等)。如果表项中有多个表,用逗号将之分开。在关键词FROM后面的表的顺序不影响结果。表名可以给出相关别名,以便使表达清晰。这里的语法是tbl_name?[AS]?alias_name。例如:select?t1.name,t2.salary?from?employee?as?t1,info?as?t2?where?t1.name=t2.name与select?t1.name,t2.salary?from?employee?t1,info?t2?where?t1.name=t2.name是完全等价的。?所有对该表的其他引用,例如在where子句和having子句中,都要用别名,别名不能以数字开头。?wher
文档评论(0)