PostgreSql 常量
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 常量相关推荐
- PostgreSQL 使用 pgbench 测试 sysbench 相关case
PostgreSQL 使用 pgbench 测试 sysbench 相关case 作者 digoal 日期 2016-10-31 标签 PostgreSQL , sysbench , pgbench ...
- PostgreSQL 10.1 手册_部分 II. SQL 语言_第 8 章 数据类型_8.10. 位串类型
8.10. 位串类型 位串就是一串 1 和 0 的串.它们可以用于存储和可视化位掩码.我们有两种类型的 SQL 位类型:bit(n)和bit varying(n),其中 n是一个正整数. bit类型的 ...
- PostgreSQL学习手册(常用数据类型)
2019独角兽企业重金招聘Python工程师标准>>> 一.数值类型: 下面是PostgreSQL所支持的数值类型的列表和简单说明: 名字 存储空间 描述 范围 smallint 2 ...
- PostgreSQL Oracle 兼容性之 - PL/SQL DETERMINISTIC 与PG函数稳定性(immutable, stable, volatile)...
标签 PostgreSQL , Oracle , 函数稳定性 , stable , immutable , volatile , DETERMINISTIC 背景 Oracle创建pl/sql函数时, ...
- PostgreSQL学习手册(五) 函数和操作符
PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符: 常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符: 下面是Po ...
- PostgreSQL学习手册(四) 常用数据类型
一.数值类型: 下面是PostgreSQL所支持的数值类型的列表和简单说明: 名字 存储空间 描述 范围 smallint 2 字节 小范围整数 -32768 到 +32767 integer ...
- PostgreSQL教程(二):SQL语言
本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 2.1. 引言 本章提供一个如何使用SQL执行简单操作的概述.本教程的目的只是给你一个介绍,并非完整的SQL教程.有许多关 ...
- PostgreSQL 当有多个索引可选时,优化器如何选择
标签 PostgreSQL , 索引 , 复合索引 , 选择 , 成本 , 优化器 背景 当一个表有很多索引时,并且一个QUERY可以使用到其中的多个索引时,数据库会如何做出选择?最终选择哪个,或者哪 ...
- PostgreSQL 优化器代码概览
简介 PostgreSQL 的开发源自上世纪80年代,它最初是 Michael Stonebraker 等人在美国国防部支持下创建的POSTGRE项目.上世纪末,Andrew Yu 等人在它上面搭建了 ...
最新文章
- 开课吧python小课值得么-好消息!今天,审计、会计、税务、财务主管彻底沸腾了……...
- 搭建mysql集群,使用Percona XtraDB Cluster搭建
- tensorflow,Anaconda和 vscode 如何连接以及问题解决
- faster-RCNN台标检测
- C Tricks(十六)—— 复制字符串
- 诚心劝言:自养动物不杀
- 出自蚂蚁课堂的简单springboot-demo
- matlab的火山图,如何用EXCEL画一张帅气的火山图?
- 阿里巴巴校招offer面经
- cocos2dx 3.9.1 mac模拟器log输出bug修正
- Golang学习笔记(二)
- kali 解压rar
- 网易2018实习生招聘笔试题的收获
- [附源码]java毕业设计咖啡销售管理系统-
- 批量搜索多个excel文件
- 漫画 | Code Review快把我逼疯了!
- 操作系统基本原理 操作系统的功能
- CMD中的用户名和自己账户名不一致
- 数据库——数据库表和表的操作
- 【Excel神技】之 工作表区域保护
热门文章
- 云服务器oa系统,oa系统放到云服务器云服务器
- Gensim库生成与导入W2V模型_CodingPark编程公园
- 华为m3现在还能用吗_现在买二手华为平板m3还能用吗?
- html日历页面节假日_html+css+js实现一个简易日历
- android开发分辨率,安卓APP设计规范之1080*1920设计稿对应开发尺寸
- CSDN没有适配竖屏显示器(3840x2160)
- 人才辈出各领风骚 中国股市十大操盘手排行榜
- Vue-创建组件时报错:Component names should conform to valid custom element name in html5 specification.
- python爬取内容_Python爬取数据(基础,从0开始)
- java lombok logback 配置日志打印