oracle 基本语法,正则表达式应用

where 字句的运算符:

  = 相等
  <>   不等
  !=    不等
    <    小于
    <=    小于等于
    >    大于
    >=    大于等于
    between    在两个指定值之间

like 语句后的通配符:   % 多个

                                      _  单个

正则表达式:

       Select prod_name from products where  REGEXP_LIKE(prod_name,’1000’)

       以上语句表示搜索包含1000 的所有行

执行or 匹配,查询 1000 或者 2000:

  Select prod_name from products where  REGEXP_LIKE(prod_name,’1000|2000’)

匹配多个字符用 [],匹配 123中任意一个

  Select prod_name from products where  REGEXP_LIKE(prod_name,’[123] ton‘)

匹配多个字符取反,匹配除 123中任意一个

       Select prod_name from products where  REGEXP_LIKE(prod_name,’[^123] ton‘)

匹配范围,匹配1 ~5

       Select prod_name from products where  REGEXP_LIKE(prod_name,’[1-5] ton‘)

匹配特殊字符,用转移 \

  Select prod_name from products where  REGEXP_LIKE(prod_name,’\.‘)

匹配字符类别:

       \d 任意数字(等同[0-9])
       \D 任意非数字字符(等同于[^0-9])
       \w 任意字母或数字(等同[a-zA-Z0-9])
       \W 任意非字母或者数字字符(等同[^a-zA-Z0-9])
       \s    任意空白字符
       \S    任意非空白字符

重复元字符

       *      0个或多个匹配
       +     1个或多个匹配(等价于{1,})
       ?      0个或1个匹配(等价于{0,1})
       {n}   具体的匹配次数
       {n,}  不少于指定的匹配次数
       {n,m }      匹配的范围

常用文本函数:

       Length()  返回字符串长度
       Lower()   转换成小写
       LPad()     在字符串左边填充空格
       LTrim()    去掉左边空格
       RPad()    在字符串右边填充空格
       RTrim()   去掉右边空格
       Soundex()      返回字符串的SOUNDEX值  -- 与发音有关系
       SubString()     返回字符串字符
       Upper()   返回大写形式

日期函数:

       Add_Month() 给日期添加/减去月份 
       Extract()  从日期和时间中减去 年月日时分秒  ---很重要
       Last_Day()      返回月份的最后一天
       Months_Beween() 返回两个月份之间的月数
       Next_Day()     返回指定日期后面的那一天
       Sysdate()        返回当前日期时间
       To_Date()       把字符串转换成日期

注意Extract() 参数只允许处理 YEAR,MONTH,DAY,HOUR,MINUTE,SECOND

       Select * from orders where  Extract(Year from order_date) = 2015
                                                 And Extract(Month from order_date) = 2

 

posted @ 2019-07-25 10:13  轻烟随风  阅读(319)  评论(0编辑  收藏  举报