MySQL 4.1.0 中文参考手册 --- 6.4 数据操纵:SELECT, INSERT, UPDATE, DELETE[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 shuixin13 的 blog

mysql 4.1.0 中文参考手册 --- 犬犬(心帆)翻译

mysql reference manual for version 4.1.0-alpha.


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 byhaving 子句中。例如:
    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 的同义词。

  • 你可以以 tbl_name (在当前的数据库中) 引用一张表,或以 dbname.tbl_name 明确地指定其个数据。 你要以以 col_nametbl_name.col_namedb_name.tbl_name.col_name 引用一个列。 你不需要在一个 select 语句中引用的列前指定 tbl_namedb_name.tbl_name 前缀,除非引用列存在二义性。查看章节 6.1.2 数据库、表、索引、列和别名,对于有歧义的列引用需要更加显式的列引用格式。

本文关键:MySQL 4.1.0 中文
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top