为什么80%的码农都做不了架构师?>>>   

1、模式匹配
  pg中提供3种模式匹配的方法:传统SQL LIKE 操作;最近的SIMILAR TO操作(1999添加到SQL);POSIX-style正则表达式。
  函数可用来提取or替换一个匹配的子字符串从匹配的位置。若你有超越这种模式匹配的需求,可以考虑在Perl或Tcl中写一个自定义的函数。
  
  1.1、传统SQL LIKE 操作
   string LIKE pattern [ESCAPE escape-character]
   string NOT LIKE pattern [ESCAPE escape-character]
   若string匹配提供的pattern,则like表达式返回true,NOT与之相反。
   若pattern中不含有"%" 或"_"符号,则pattern仅仅代表string自己,这种情况下LIKE操作符就像等于操作符。
   "_":匹配任何单个字符
   "%":匹配任何序列的0个或多个字符
   如:
    'abc' LIKE 'abc'    true
    'abc' LIKE 'a%'     true
    'abc' LIKE '_b_'    true
    'abc' LIKE 'c'      false
    
   LIKE模式匹配总是涉及整个字符串,因此,若想要匹配一个字符串中任何一个序列,则该pattern需要以"%"开始和结尾。
   匹配字面的"%" 或"_"符号,通过在pattern中使用escape字符(转义字符),默认的转义字符是一个"\",但也可以使用ESCAPE从句。为匹配escape字符本身,需要写2个escape字符。
   也可以通过写 ESCAPE ''来选择no escape字符,这将有效的禁止escape机制,从而使它不可能关掉"%" 或"_"符号的特殊意义。
   关键字ILIKE可以替换LIKE,根据活动的地区使得大小写不敏感。此不是SQL标准却是PG扩展
   "~~" 等价于 LIKE;"~~*" 等价于 ILIKE("!~~"/"!~~*"代表NOT LIKE 和NOT ILIKE)
  
  1.2、SIMILAR TO正则表达式
   string SIMILAR TO pattern [ESCAPE escape-character]
   string NOT SIMILAR TO pattern [ESCAPE escape-character]
   类似于LIKE,除了它解析pattern使用SQL标准正则表达式外,SQL正则表达式在LIKE符号和通用正则表达式符号之上。
   只有它的pattern匹配整个字符串时,该SIMILAR TO成功。这是不同于常见的正则表达式的行为模式可以匹配任何字符串的一部分。也像LIKE,SIMILAR TO 使用"%" 或"_"符号作为一个通配符代表任何字符串or单个字符。
   除了借用了LIKE的这些特性, SIMILAR TO 借用POSIX正则表达式支持模式匹配的通配符:
   | 2个选择中的任何一个
   * 重复前一个项0次or更多次
   + 重复前一个项1次or更多次
   ? 重复前一个项0次or 1次
   {m} 重复前一个项m次
   {m,} 重复前一个项m次or更多次
   {m,n} 重复前一个项至少m次,不超过n次
   Parentheses() 组合项到一个逻辑项
   [...] 指明一个字符类,就像在POSIX正则表达式里的一样
   如:
    'abc' SIMILAR TO 'abc'      true
    'abc' SIMILAR TO 'a'        false
    'abc' SIMILAR TO '%(b|d)%'  true
    'abc' SIMILAR TO '(b|c)%'   false

substring(string from pattern for escape-character),提供抽取匹配SQL正则表达式的子字符串函数,与使用SIMILAR TO一样,指定的pattern必须匹配整个字符串,
   否则函数失败并返回null,返回标识模式的一部分表示成功,pattern必须包含2个出现的escape字符紧随其后的是一个双引号",文本匹配模式的一部分返回这些标记之间。
   如:#"限制返回字符串
    substring('foobar' from '%#"o_b#"%' for '#')   oob
    substring('foobar' from '#"o_b#"%' for '#')    NULL

1.3、POSIX-style正则表达式

正则表达式匹配操作符:
   操作符        描述                                例子
   ~            匹配正则表达式,大小写敏感            'thomas' ~ '.*thomas.*'
   ~*            匹配正则表达式,大小写不敏感        'thomas' ~* '.*Thomas.*'
   !~            不匹配正则表达式,大小写敏感        'thomas' !~ '.*Thomas.*'
   !~*            不匹配正则表达式,大小写不敏感        'thomas' !~* '.*vadim.*'
   
   POSIX正则表达式为模式匹配提供比使用LIKE和SIMILAR TO更强大的方式。
   正则表达式是一个缩写的定义一组字符串的一个字符序列

转载于:https://my.oschina.net/rksi5/blog/265039

PostgreSql 功能和操作相关推荐

  1. 多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...

    进程调度的功能与时机 一.进程调度的功能 进程调度功能由操作系统内核的进程调度程序完成,在Linux 内核中,进程调度功能的实现从调用内核函数schedule()开始.进程调度的功能是按照某种策略和算 ...

  2. oracle ebs 采购订单 为员工分配职务,oracle—EBS-采购功能点操作手册

    oracle-EBS-采购功能点操作手册 浙大软件学院学生操作手册 PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更 ...

  3. MTK MODEM(1)--- MTK平台NV基本功能与操作

    MTK平台NV基本功能与操作  一.NVRAM基本概念  NV就是Non Volatile缩写,就是非易失性存储性,通俗来说,就是即使系统掉电后,存储在该存储器的数据也不会丢失.  为什么要备份恢复, ...

  4. 「Photoshop2021入门教程」新功能——快速操作

    PS新手教程哪里有?小编为大家带来Photoshop2021新手系列教程,今天我们来学习PS新功能--快速操作面板. 打开图片 菜单栏点击帮助-Photoshop帮助... 弹出发现窗口,选择快速操作 ...

  5. Parallels Desktop 安装Win 10提示“安全启动功能防止操作系统启动”该怎么解决?

    Parallels Desktop 安装 Windows10 提示"安全启动功能防止操作系统启动"该怎么解决?未来小编就来帮大家解决这个难题!一起来看以下教程吧- pd17虚拟机 ...

  6. Parallels Desktop 安装 Windows10 提示“安全启动功能防止操作系统启动”怎么解决?

    Parallels Desktop 17.1.0 安装 Windows10 提示"安全启动功能防止操作系统启动"怎么解决?如下图提示: 安装 Parallels Desktop 1 ...

  7. oracle—ebs_采购功能点操作手册,oracle—EBS_采購功能点操作手册.doc

    oracle-EBS_采購功能点操作手册 PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更新记录 版本日期姓名说明1 ...

  8. oracle采购操作手册,oracle-ebs采购功能点操作手册.doc

    oracle-ebs采购功能点操作手册.doc PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更新记录 版本日期姓名 ...

  9. Oracle在采购部增加一名员工,ORACLEEBS采购功能点操作手册1.doc

    PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更新记录 版本日期姓名说明1.02012年3月6日韩业邦 根据po的知 ...

最新文章

  1. 美观实用!Star 过万,用 Python 做交互式图形的这款工具火了!
  2. 算法 - 插入排序(C#)
  3. 新生代农民工必看:模拟器eNSP安装教程(附下载链接)
  4. mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?
  5. HALCON关于显示的函数与介绍(持续更新)
  6. 推荐系统遇上深度学习(三十九)-推荐系统中召回策略演进!
  7. 【LeetCode】Copy List with Random Pointer
  8. 软件测试一个项目几个接口,你打开一个项目网址中间发生了什么?(软件测试面试题)...
  9. 若依最详细的配置(零基础,小白版)
  10. ps画画模糊笔刷_大量PS笔刷AI笔刷打包下载(超过1000款笔刷)
  11. 吉珠计算机专业插本学校,2015年吉珠与北理珠的专插本考生必看:招生专业数据统计...
  12. java 文件读写 中文_java读写中文文件
  13. 西门子界面官方精美触摸屏+WINCC程序模板 西门子官方触摸屏程序模板,炫酷的扁平式动画效果
  14. 记录将pycharm中的caches缓存文件转移到D盘
  15. mdx格式的词典用什么软件打开_抄作业了!手把手教你安装欧路词典(ios系统为例)...
  16. uniapp 二维码展示和扫码
  17. 18、iOS底层分析 - GCD(一)基本概念与简单使用
  18. 收藏上全募金资模式及策略
  19. 韦东山-首批华为鸿蒙系统课程开发者
  20. anaconda中使用pip安装pytorch(GPU)

热门文章

  1. Mrtg搭建流量监控服务器
  2. 边缘计算+SDN:为物联网腾飞插上翅膀
  3. 【预告】腾讯移动分析 MTA 即刻登陆 2017 GMTC 全球移动技术大会
  4. Win7下让MSN离开任务栏
  5. Net Framework 2.0 MSI returned error code 1603解决方法
  6. 多线程程序 怎样查看每个线程的cpu占用
  7. Delphi常用时间函数列表
  8. Django2.0——模板渲染(一)
  9. keras简单介绍与使用
  10. Nginx+Lua服务端合并静态文件