SQLite:使用x' abc'创建表时的语法

时间:2016-08-05 12:10:50

标签: sqlite

将值插入SQLite表时,可以使用x' 41'等语法。 (= A)。当您尝试插入选项卡,换行符等特殊字符时,这非常有用。

sqlite> CREATE TABLE test(aColumn VARCHAR(10));
sqlite> INSERT INTO test VALUES(x'0a41420a');
sqlite> SELECT * FROM test;

AB

sqlite>

此语法是否也可用于定义表的名称?

这样的东西
sqlite> CREATE TABLE x'0a41420a'(aColumn VARCHAR(10));
Error: near "x'0a41420a'": syntax error

不起作用。

1 个答案:

答案 0 :(得分:1)

x'..'语法指定blob literal。 因此,表中的值不是字符串而是blob,除非您将其显式convert为字符串:

INSERT INTO test VALUES(CAST(x'0a41420a' AS TEXT));

在SQL中,标识符(例如表/列名称)可以用双引号引用。在引用的标识符内,允许所有字符(零字节除外)(但双引号必须加倍):

sqlite> CREATE TABLE "
AB
"(cols);
sqlite> SELECT hex(name) FROM sqlite_master;
0A41420A