60.笔记 MySQL学习——MySQL数据值类别之字符串
字符串两端引号可以是单引号也可以是双引号。尽量使用单引号,因为:
n SQL语言标准规定使用单引号,使用单引号字符串的语句可以更好地移植到其他数据库引擎。
n 如果启用了SQL模式ANSI_QUOTES,那么双引号将处理成标识符引起来的符号,而不会把它只当成字符串引起来的符号。
特殊字符需要转义,这个很多编码的语法都是如此。
例如\t表示一个制表符,\T是一个普通的’T’字符。
如果需要反斜线字符的特殊含义,启用SQL的NO_BACKSLASH_ESACPES模式
使用引号书写字符串值时,还可以表示十六进制记法。
mysql> select x'4A',x'4a';
+-------+-------+
| x'4A' | x'4a' |
+-------+-------+
| J | J |
+-------+-------+
1 row in set (0.00 sec)
在不同上下文中,解释会不一样如下:
mysql> select x'6162',x'6162'+0;
+---------+-----------+
| x'6162' | x'6162'+0 |
+---------+-----------+
| ab | 24930 |
+---------+-----------+
1 row in set (0.00 sec)
字符串上下文中,每两个十六进制数字解释为一个8位数字字节值。
数字上下文中,当成一个数。
此外还可以如下记法,取消引号,前面加上0即可。
mysql> select 0x6162,0x6162+0;
+--------+----------+
| 0x6162 | 0x6162+0 |
+--------+----------+
| ab | 24930 |
+--------+----------+
1 row in set (0.00 sec)