MySQL 4.1.0 中文参考手册 -- 6.1 语言结构[2]

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

本文简介:选择自 shuixin13 的 blog

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 infileselect ... 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 所胡的字符。

本文关键:MySQL 中文
  相关方案
Google
 

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

go top