PostgreSQL 里有三种隐含类型的常量:字符串、位串、数值。

常量也可以声明为明确的类型,这样就可以使用更准确的表现形式以及可以通过系统更有效地处理。


字符串常量

SQL 标准定义的声明字符串常量的方法是:用单引号(')包围的任意内容,比如 'This is a string'

如果在字符串中包含单引号,需要输入连续的两个单引号,比如:'Dianne''s horse'。
注意:是两个单引号而不是双引号。双引号的内容将会被当成变量处理。

在postgresql 9之前的版本中,支持反斜杠进行转义,如\b表示退格, \n表示换行, \t表示水平制表符,\r表示回车,\f表示换页,\digits表示八进制数据和 \xhexdigits 表示十六进制数据。在postgres 9之后,反斜线被当做普通字符进行处理。如果在字符串中包含\t等的内容,通过逃逸字符串语法实现。

逃逸字符串语法是通过在字符串前加字母 E (大写或者小写)的方法声明的。比如 E'foo' 。当需要续行包含逃逸字符的字符串时,仅需要在第一行的开始引号前写上 E 就可以了。

PostgreSQL 允许用一个反斜杠来逃逸单引号(\'),不过,将来版本的 PostgreSQL 将不允许这么用。所以最好坚持使用符合标准的连续两个单引号('')。

设置如下变量,则可以不加E,直接使用反斜扛进行转义。
SET standard_conforming_strings = off;

美元符界定字符串常量

如果字符串中包含很多单引号或者反斜杠,那么理解字符串的内容可能就会变得很苦涩,因为每个单引号都要加倍。
PostgreSQL 允许另外一种称作“美元符界定”的字符串常量书写办法。

一个通过美元符界定声明的字符串常量由:

$零个或多个字符组成的"记号"$任意内容$与前面相同的"记号"$

比如,下面是两个不同的用美元符界定的方法声明Dianne's horse的例子:

$$Dianne's horse$$
$SomeTag$Dianne's horse$SomeTag$

注意:在美元符界定的字符串里,单引号不允许逃逸。实际上,在一个美元符界定的字符串里,不允许逃逸任何字符,字符串内容总是按照字面内容书写。反斜杠不是特殊的、美元符自己也不是特殊的。

其他类型常量

任意类型的常量都可以用下列表示法中的任何一种来输入:

type 'string'
'string'::type
CAST ('string' AS type)

其中的 'string' 将会被转换为 type 类型的常量。如果不存在该常量所属类型的歧义,那么可以省略明确的类型转换(比如,当把它直接赋予一个表字段的时候),这种情况下它会自动转换。

其中的 'string' 可以用普通 SQL 表示法或者美元符界定来书写。

还可以用函数风格的语法来声明类型转换:
typename ('string')
不过,这个方法只能用于那些类型名同时也是有效函数名的类型。因此尽量不要这么用。

::, CAST() 和函数调用语法也可以用于声明任意表达式的运行时类型转换。
type 'string' 的形式只能用于声明一个字面常量的类型。并且它不能用于数组类型(要用 :: 或 CAST() 声明一个数组常量的类型)。

PostgreSql 常量相关推荐

  1. PostgreSQL 使用 pgbench 测试 sysbench 相关case

    PostgreSQL 使用 pgbench 测试 sysbench 相关case 作者 digoal 日期 2016-10-31 标签 PostgreSQL , sysbench , pgbench ...

  2. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 8 章 数据类型_8.10. 位串类型

    8.10. 位串类型 位串就是一串 1 和 0 的串.它们可以用于存储和可视化位掩码.我们有两种类型的 SQL 位类型:bit(n)和bit varying(n),其中 n是一个正整数. bit类型的 ...

  3. PostgreSQL学习手册(常用数据类型)

    2019独角兽企业重金招聘Python工程师标准>>> 一.数值类型: 下面是PostgreSQL所支持的数值类型的列表和简单说明: 名字 存储空间 描述 范围 smallint 2 ...

  4. PostgreSQL Oracle 兼容性之 - PL/SQL DETERMINISTIC 与PG函数稳定性(immutable, stable, volatile)...

    标签 PostgreSQL , Oracle , 函数稳定性 , stable , immutable , volatile , DETERMINISTIC 背景 Oracle创建pl/sql函数时, ...

  5. PostgreSQL学习手册(五) 函数和操作符

    PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符:     常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符:     下面是Po ...

  6. PostgreSQL学习手册(四) 常用数据类型

    一.数值类型:     下面是PostgreSQL所支持的数值类型的列表和简单说明: 名字 存储空间 描述 范围 smallint 2 字节 小范围整数 -32768 到 +32767 integer ...

  7. PostgreSQL教程(二):SQL语言

    本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 2.1. 引言 本章提供一个如何使用SQL执行简单操作的概述.本教程的目的只是给你一个介绍,并非完整的SQL教程.有许多关 ...

  8. PostgreSQL 当有多个索引可选时,优化器如何选择

    标签 PostgreSQL , 索引 , 复合索引 , 选择 , 成本 , 优化器 背景 当一个表有很多索引时,并且一个QUERY可以使用到其中的多个索引时,数据库会如何做出选择?最终选择哪个,或者哪 ...

  9. PostgreSQL 优化器代码概览

    简介 PostgreSQL 的开发源自上世纪80年代,它最初是 Michael Stonebraker 等人在美国国防部支持下创建的POSTGRE项目.上世纪末,Andrew Yu 等人在它上面搭建了 ...

最新文章

  1. 开课吧python小课值得么-好消息!今天,审计、会计、税务、财务主管彻底沸腾了……...
  2. 搭建mysql集群,使用Percona XtraDB Cluster搭建
  3. tensorflow,Anaconda和 vscode 如何连接以及问题解决
  4. faster-RCNN台标检测
  5. C Tricks(十六)—— 复制字符串
  6. 诚心劝言:自养动物不杀
  7. 出自蚂蚁课堂的简单springboot-demo
  8. matlab的火山图,如何用EXCEL画一张帅气的火山图?
  9. 阿里巴巴校招offer面经
  10. cocos2dx 3.9.1 mac模拟器log输出bug修正
  11. Golang学习笔记(二)
  12. kali 解压rar
  13. 网易2018实习生招聘笔试题的收获
  14. [附源码]java毕业设计咖啡销售管理系统-
  15. 批量搜索多个excel文件
  16. 漫画 | Code Review快把我逼疯了!
  17. 操作系统基本原理 操作系统的功能
  18. CMD中的用户名和自己账户名不一致
  19. 数据库——数据库表和表的操作
  20. 【Excel神技】之 工作表区域保护

热门文章

  1. 云服务器oa系统,oa系统放到云服务器云服务器
  2. Gensim库生成与导入W2V模型_CodingPark编程公园
  3. 华为m3现在还能用吗_现在买二手华为平板m3还能用吗?
  4. html日历页面节假日_html+css+js实现一个简易日历
  5. android开发分辨率,安卓APP设计规范之1080*1920设计稿对应开发尺寸
  6. CSDN没有适配竖屏显示器(3840x2160)
  7. 人才辈出各领风骚 中国股市十大操盘手排行榜
  8. Vue-创建组件时报错:Component names should conform to valid custom element name in html5 specification.
  9. python爬取内容_Python爬取数据(基础,从0开始)
  10. java lombok logback 配置日志打印