MySQL 语言参考

来源:MYSQL.CN 时间:2007-11-21 20:37:00 

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  字符。它用于在正文中搜索的文字实例,否则这里将解释为一个通配符。
     

  • \_

  • 一个 ASCII 95  字符。它用于在正文中搜索的文字实例,否则这里将解释为一个通配符。
     

注意如果在某些正文环境内使用  或 ,将返回字符串  和  而不是  和 。

字符串中包含引号的可以有下列几种写法:

  • 一个字符串用单引号来引用的,该字符串中的单引号字符可以用方式转义。

  • 一个字符串用双引号来引用的,该字符串中的字符可以用方式转义。

  • 你也可以继续使用在引号前加一个转义字符来转义的方式。

  • 一个字符串用双引号来引用的,该字符串中的单引号不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号来引用的,该字符串中的双引号不需要特殊对待而且不必被重复或转义。

下面显示的 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";+--------------------+| ThisIsFourlines |+--------------------+


如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示:

  • NUL

  • ASCII 0,你应该用 (一个反斜线和一个ASCII 字符)表示它。

  • \

  • ASCII 92,反斜线。需要用  表示。

  • '

  • ASCII 39,单引号。需要用  表示。

  • "

  • ASCII 34,双引号。需要用  表示。


如果你写 C 代码,你可以使用 C API 函数mysql_real_escape_string() 来为 INSERT 语句转义字符。在 Perl 中,你可以使用 DBI 包中的 quote 方法来将这些特殊字符转换成适当的转义序列。

你应该在任何可能包含上述特殊字符的字符串中使用转义函数!

另外,很多 MySQL API 提供了一些占位符处理能力,这允许你在查询语句中插入特殊标记,然后在执行查询时对它们绑定数据值。这样,API 会自动为你从数值中转换它们。

标签:mysql,语法,参考
0
投稿

猜你喜欢

  • Python迭代器和生成器介绍

    2022-03-22 07:41:24
  • python光学仿真面向对象光学元件类的实现

    2022-10-11 19:45:06
  • 详解解决Python memory error的问题(四种解决方案)

    2021-03-11 14:59:11
  • SQL按照日、周、月、年统计数据的方法分享

    2024-01-24 13:48:27
  • python实现一个摇骰子小游戏

    2021-11-06 05:49:26
  • Python简单实现Base64编码和解码的方法

    2022-05-14 12:22:35
  • sql索引失效的情况以及超详细解决方法

    2024-01-21 09:25:30
  • vue eslint报错error "Component name "*****" should always be multi-word"解决

    2024-05-13 09:10:32
  • JS判断是否为数字、JS判断是否为整数、JS判断是否为浮点数

    2008-11-19 16:42:00
  • 使用python获取csv文本的某行或某列数据的实例

    2021-06-13 14:11:20
  • python读取excel进行遍历/xlrd模块操作

    2022-11-09 18:44:51
  • python str字符串转uuid实例

    2021-12-31 20:15:54
  • Pandas缺失值填充 df.fillna()的实现

    2023-11-24 00:01:41
  • JavaScript 映射器 array.flatMap()

    2024-05-22 10:40:10
  • uniapp实现支付功能

    2023-08-21 13:53:47
  • 简单了解Go语言中函数作为值以及函数闭包的使用

    2024-04-29 13:05:50
  • ASP连接access和mssql数据库的全能代码

    2008-10-12 13:17:00
  • MySQL学习之分组查询的用法详解

    2024-01-26 02:27:37
  • Python 解决空列表.append() 输出为None的问题

    2023-07-24 14:07:57
  • Python集合之set和frozenset的使用详解

    2021-06-26 22:41:20
  • asp之家 网络编程 m.aspxhome.com