6.4 数据操纵:select, insert, update, delete
6.4.1 select 句法
select [straight_join]
[sql_small_result] [sql_big_result] [sql_buffer_result]
[sql_cache sql_no_cache] [sql_calc_found_rows] [high_priority]
[distinct distinctrow all]
select_expression,...
[into {outfile dumpfile} 'file_name' export_options]
[from table_references
[where where_definition]
[group by {unsigned_integer col_name formula} [asc desc], ...]
[having where_definition]
[order by {unsigned_integer col_name formula} [asc desc] ,...]
[limit [offset,] rows rows offset offset]
[procedure procedure_name(argument_list)]
[for update lock in share mode]]
select 用于检索从一个或多个表中选取出的行。select_expression 表示你希望检索的列。 select 也可以被用于检索没有引用任何表的计算列。例如:
mysql> select 1 + 1;
-> 2
所有使用的关键词必须严格以上面所显示的次序被给出。举例来说,一个 having 子句必须出现在 group by 子句后,在 order by 字句之前。
* 一个 select 表达式可以使用 as 指定一个别名。别名可以当作表达式的列名,用于 order by 或 having 子句中。例如:
mysql> select concat(last_name,', ',first_name) as full_name
from mytable order by full_name;
* 在一个 where 子句中使用一个列别名是不允许的,因为,当 where 子句被执行时,列值可能还没有被计算确定。查看章节 a.5.4 使用 alias 的限制。
* from table_references 子句表示从哪个表中检索记录行。如果你命名超过超过一个表,并执行一个 join。对于 join 句法的信息,查看章节 6.4.1.1 join 句法。对于每个引用的表,你可以顺便指定一个别名。
table_name [[as] alias] [[use index (key_list)] [ignore index (key_list)] force index (key_list)]]
到 mysql 3.23.12 时,当 mysql 在从一个表中检索信息时,你可以提示它选择了哪一个索引。如果 explain 显示 mysql 使用了可能的索引列表中错误的索引,这个特性将是很有用的。通过指定 use index (key_list),你可以告诉 mysql 使用可能的索引中最合适的一个索引在表中查找记录行。可选的二选一句法 ignore index (key_list) 可被用于告诉 mysql 不使用特定的索引。 在 mysql 4.0.9 中,你也可以使用 force index。这个有点像 use index (key_list),但是有了这个附加物,一个表的扫描被采用时,将会有非常大的开销。换句法说,如果没有方法使用给定的索引在表中寻找记录行,这时表扫描才会被使用。 use/ignore/force key 分别是 use/ignore/force index 的同义词。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器