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