词法结构:$符(美元符)的使用
postgresql 允许称作美元符的引用 的字符串常量书写办法。一个通过美元符引用生命的字符串常量由一个美元符号$,
零个或者多个字符组成的标签,另一个美元符号,组成字符串常量的任意字符序列,一个美元符号与前面相同的标签,一个美元符号组成的。
案例: 两个不同的用美元符引用的方法声明"Dianne’s horse"的例子。
select $$Dianne's horse$$;
另一种实现方法
select $SomeTag$Dianne’s horse$SomeTag$ as aa
上面两种使用美元符$最终获得的结果相同。
在美院符引用的字符串中,单引号不允许转义。实际上,在一个美元符引用的字符串里,不允许转义任何字符串:字符串内容总是按照字面内容书写。反斜杠不是特殊的,美元符自己也不是特殊的。
一个美元符引用字符串的标签(如果有标签),遵循和无引号包围的标识符相同的规则,只是它不能包含美元符。标签
是大小写敏感的,因此
t
a
g
tag
tagString content
t
a
g
tag
tag是正确的,而
T
A
G
TAG
TAGString content
t
a
g
tag
tag则是错误的。
select $tag$String content$tag$ as aa ;
下面执行标签中大小写不同,结果报错。
select $TAG$String content$tag$ as aa;
一个后面紧跟着关键字或者标识符的美元符引用必须用空白与其后的关键字或者标识符隔开;
否则美元符引用分隔符将会被当做标识符的开头部分。
拓展:
单引号前面再加一个单引号可以实现转义,并正常使用。
案例:
select 'people''s name' as aa;
输出结果: