您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 超级mysql帮助文档
  所属分类: 其它
  开发工具:
  文件大小: 1mb
  下载次数: 0
  上传时间: 2010-08-18
  提 供 者: sunwen******
 详细说明: 6 MySQL 语言参考 MySQL 拥有一个复杂的但直观易学的 SQL 接口。这个章节描述了各种不同的命令、类型和函数,为了高效地使用 MySQL 需要了解它们。这个章节也可以视为 MySQL 中包含的所有功能的参考。 6.1 语言结构 6.1.1 文字:怎么写字符串与数字 这个章节描述了在 MySQL 中书写字符串与数字的各种不同方式。也包含有对各种不同差别和“gotchas”,当你在处理 MySQL 的基本类型时可能陷入的疑惑。 6.1.1.1 字符串 字符串是多个字符组成的一个字符序列,由单引号(“'”) 或双引号 (“"”) 字符包围。(但在 ANSI 模式中运行时只能用单引号)。 例如: 'a string' "another string" 在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“\”)开头,称为转义字符。 MySQL 识别下列转义字符: \0 一个 ASCII 0 (NUL) 字符。 \' 一个 ASCII 39 单引号 (“'”) 字符。 \" 一个 ASCII 34 双引号 (“"”) 字符。 \b 一个 ASCII 8 退格符。 \n 一个 ASCII 10 换行符。 \r 一个 ASCII 13 回车符。 \t 一个 ASCII 9 制表符(TAB)。 \z ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql database < filename 时 ASCII(26) 可能会引起问题产生。) \\ 一个 ASCII 92 反斜线 (“\”) 字符。 \% 一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数。 \_ 一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数. 注意如果在某些正文环境内使用 “\%” 或 “\_”,将返回字符串 “\%” 和 “\_” 而不是 “%” 和 “_”。 字符串中包含引号的可以有下列几种写法: 一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。 一个字符串用双引号“"”来引用的,该字符串中的“"”字符可以用“""”方式转义。 你也可以继续使用在引号前加一个转义字符“\”来转义的方式。 一个字符串用双引号“"”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对待而且不必被重复或转义。 下面显示的 SELECT 演示引号和转义是如何工作: mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello'; +-------+---------+-----------+--------+--------+ | hello | "hello" | ""hello"" | hel'lo | 'hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello"; +-------+---------+-----------+--------+--------+ | hello | 'hello' | ''hello'' | hel"lo | "hello | +-------+---------+-----------+--------+--------+ mysql> SELECT "This\nIs\nFour\nlines"; +--------------------+ | This Is Four lines | +--------------------+ 如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示: NUL ASCII 0,你应该用 “\0”(一个反斜线和一个ASCII “0”字符)表示它。 \ ASCII 92,反斜线。需要用 “\\” 表示。 ' ASCII 39,单引号。需要用 “\'” 表示。 " ASCII 34,双引号。需要用 “\"” 表示。 如果你写 C 代码,你可以使用 C API 函数mysql_real_escape_string() 来为 INSERT 语句转义字符。查看章节 8.1.2 C API 函数概述。在 Perl 中,你可以使用 DBI 包中的 quote 方法来将这些特殊字符转换成适当的转义序列。查看章节 8.5.2 DBI 接口。 你应该在任何可能包含上述特殊字符的字符串中使用转义函数! 另外,很多 MySQL API 提供了一些占位符处理能力,这允许你在查询语句中插入特殊标记,然后在执行查询时对它们绑定数据值。这样,API 会自动为你从数值中转换它们。 6.1.1.2 数字 整数被表示为一个数字序列。浮点数使用 “.” 作为一个十进制的分隔符。这两种类型的数字可以前置 `-' 以表示一个负值。 有效整数的例子: 1221 0 -32 有效浮点数的例子: 294.42 -32032.6809e+10 148.00 一个整数可以在浮点语境中使用;它被解释为等值的浮点数。 6.1.1.3 十六进制值 MySQL 支持十六进制数值。在数字的语境中,它们表现类似于一个整数(64位精度)。在字符串的语境中,它们表现类似于一个二进制的字符串,每一对十六进制数字被转换为一个字符: mysql> SELECT x'4D7953514C'; -> MySQL mysql> SELECT 0xa+0; -> 10 mysql> SELECT 0x5061756c; -> Paul 表达式 x'hexstring' (4.0 中新加入) 是基于 ANSI SQL 的,表达式 0x 是基于 ODBC 的。十六进制的字符串通常被 ODBC 用于为 BLOB 类型字段赋值。你可以通过 HEX() 将一个字符串或一个数值转化为十六进制格式。 6.1.1.4 NULL 值 NULL 值并不意味着“无数据”,并且是不同于例如数字类型的 0 或字符串类型的空串。查看章节 A.5.3 NULL 值问题。 当使用文本文件导入与导出格式时 (LOAD DATA INFILE,SELECT ... INTO OUTFILE),NULL 可以用 \N 来描述。查看章节 6.4.9 LOAD DATA INFILE 句法. 6.1.2 数据库、表、索引、列和别名 数据库、表、索引、列和别名都需遵守 MySQL 同样的规则。 注意,从 MySQL 3.23.6 开始,规则发生改变了,此时引进了用“`”引用标识符(数据库、表和字段名)。如果你以 ANSI 模式运行,“"” 也可以用于引用标识符。查看章节 1.8.2 以 ANSI 模式运行 MySQL。 标识符 最大长度 允许的字符 数据库 64 一个目录名中允许的任何字符,除了“/”、“\” 或 “.”。 表 64 一个文件名中允许的任何字符,除了 “/” 或 “.”。 列 64 所有的字符。 别名 255 所胡的字符。 注意,除了上面的,在一个标识符中还不能有 ASCII(0) 或 ASCII(255) 或引用字符。 注意,如果标识符是一个受限掉的词或包含特殊的字符,当使用它时,必须以一个 ` (backtick) 来引用它。 mysql> SELECT * FROM `select` WHERE `select`.id > 100; 查看章节 6.1.7 MySQL 对保留字挑剔吗?。 在 MySQL 3.23.6 以前的版本中,命名规则如下: 一个名字可以由当前字符集中包含的文字与数字字符以及 “_” 和 “$” 组成。缺省字符集为 ISO-8859-1 Latin1;这可以通过改变 mysqld 的 --default-character-set 的选项来改变。查看章节 4.6.1 用于数据和排序的字符集。 一个名字可以以在名字中合法的任何字符开始。特别地,一个名字可以以一个数字开始(这不同于许多其它的数据库系统!)。但一个名字不能 仅仅 以数字组成。 不能在名字中使用 “.” 字符,因为它是用于扩充格式的,你可以用它引用列(见下面)。 建议不要使用象 1e 这样的名字,因为一个表达式 1e+1 是存在二义性的。它可以被解释为表达式 1e + 1 或数字 1e+1。 在 MySQL 中,你可以使用下列表格中的任一种方式引用一个列: 列引用 含义 col_name 列 col_name 来自查询所用的任何一个表中对应字段 tbl_name.col_name 列 col_name 来自当前数据库中的表 tbl_name db_name.tbl_name.col_name 列 col_name 来自数据库 db_name 中的表 tbl_name。这个形式从 MySQL 3.22 或以后版本开始可用。 `column_name` 该字段是一个关键词或包含特殊字符。 在一条语句中的列引用中,不需要明确指定一个 tbl_name 或 db_name.tbl_name 前缀,除非这个引用存在二义性。例如,假设表 t1 和 t2 均包含一个字段 c,当用一个使用了 t1 和 t2 的 SELECT 检索 c 时。在这种情况下,c 存在二义性,因为它在这个语句所使用的表中不是唯一的,因而必须通过写出 t1.c 或 t2.c 来指明你所需的是哪个表。同样的,如果从数据库 db1 的表 t 和数据库 db2 的表 t 中检索,你必须用db1.t.col_name 和 db2.t.col_name 来指定引用哪个库表的列。 句法 .tbl_name 意味着表 tbl_name 在当前数据库中。这个句法是为了与 ODBC 兼容,因为一些 ODBC 程序以一个 “.” 字符作为表名的前缀 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 超级mysql帮助文档
 输入关键字,在本站1000多万海量源码库中尽情搜索: