Oracle数据库学习札记(四)

2014-11-24 17:25:57 · 作者: · 浏览: 2
arch_string,pattern[,positioin[,occurrence[,match_option]]]):substr函数扩展
合计函数:
avg(x):平均值
count(x):统计数量
max(x):最大值
median(x):中间值
min(x):最小值
stddev(x):标准差
sum(x):汇总值
variance(x):方差
分组技术:select 列列表 from 表名 where 限制条件 group by 分组列 having 分组后的数据应该满足的条件
时间函数:
add_months(x,y):在x上增加y个月,若Y为负数则减少
last_day(x),返回包含在X中的月份的最后一天
months_between(x,y):返回X和Y之间的月数,如果Y在X前返回负数
next_day(x,day);返回仅接着X的下一天,DAY是一个字串
sysdate():返回当前系统的日期
trunk(x[,unit]):截断x'
round(x[,unit]):圆整X
current_date():返回本地区的当前日期
dbtimezone():返回当前数据库的时区
new_time(x,time_zone1,time_zone2):把x从时区1转换为时区2
sessiontimezone();返回当前数据库对话的时区
tz_offset(time_zone):按照最小时哈分钟返回time_zone的偏置时间
时间戳函数:
current_timestamp():返回包含了当前会话时间,时区信息的timestamp with time zone类型
extact([year|month|day|hour|minute|second|[timezone_hour|timezone_minute]]|[timezone_region|timezone_abbr] from x):从表达式X中提取参数信息
from_tz(x,time_zone):把指定的时间戳和日期转换为timestamp with time zone类型
localtimestamp():返回会话的timestamp with time zone类型数据
systimestamp():返回当前数据库的timestamp with time zone类型数据
sys_extact_utc(x):把类型为tmestamp with time zone 的表达式转换为timestamp类型
to_timestamp(x[,format]):把字串表达式X转换成timestamp类型可以使用format指定格式
to_timestamp_tz(x[,format]):把字串表达式X转换成timestamp with time zone类型可以使用format指定格式


十二.日期和时间
设置默认时间格式:默认情况下是:dd-mon-yy;alter session nls_date_format 日期格式;则可以改变
转换日期数据:
cc:两位数字的世纪
scc:有负号的两位数字的世纪,表示世纪前
q:表示一位数季度
yyyy:表示4位数年
iyyy:表示4位数年,ISO格式
rrrr:表示当前年的4位数字的圆整年
y,yyy:有逗号的4位数字年
yyy:年的最后3位数字
iyy:年的最后3位数字,ISO格式
yy:年的最后2位数字
iyy:年的最后2位数字,ISO格式
rr:基于当前年的两位数字的圆整年
y:年的最后1位数字
i:年的最后1位数字,ISO格式
YEAR:年名称为大写字母
Year:年名称首为大写字母
mm:两为数字月
MONTH:月名称全称,大写字母9个字符,位数不足用空格补
Month:月份的名称全程,首字母大写,9个字符,不足补空格
MON:月份名称的前3个字母,大写
Mon:月份名称的前3个字母,首字大写
RM:罗马数字月
ww:年中的2位数字星期
iw:年中的2位数字星期,ISO标准
w:月中的一位数字星期
ddd:年中的3位数字日
dd:月中的两位数字日
d:周中的一位数字日
DAY:日的全称,大写字母
Day:日的全称,首字母大写
DY:日的前三个字母,大写
Dy:日的前三个字母,首字母大写
hh24:两位数字小时,24小时制
hh:两位数字小时,12小时制
mi:两位数字分钟
ss:两位数字秒
ff[1...9]:小数数字秒,小数部分指定
sssss:过去12点的秒数
ms:毫秒
cs:厘秒
[-/,.;:]:日期时间中的分隔符
TH,th:数字的后缀
SP,sp:拼读数字
SPTH,spth:sp和th的组合
tzh:时区小时
tzr:时区区域
设置当前数据库会话时区:alter session set time_zone 时区
时间戳:timestamp比date功能更强大,可以存储更多信息
时间戳类型:
timestamp[(secounds_preeision)]:可以用来存储世纪,年,月,日,24小时.分钟,和秒.如果使用可选的参数指定豪秒精度,可以存储小数秒.该选项的范围是0-9,默认是6.
timestamp[(secounds_preeision)] with time zone:扩展timestamp类,可以存储时区
timestamp[(secounds_preeision)] with local time zone:扩展timestamp类,可以把时间转换为当前数据库时区


十三.子查询
概念:在一个Select语句中被嵌套的select语句被称为子查询,子查询和连接查询可以相互转换,连接查询效率远远高于子查询,子查询中不能使用order by语句,子查询可以嵌套但是最多只能255层
运算符:子查询中可以使用两种比较运算符:但行运算符和多行运算符
单行子查询:子查询语句只返回单行单列的结果,返回一个常量值
多行子查询:子查询语句返回多行单列的结果,返回一个组
多列子查询:子查询语句返回多列结果
关联子查询:子查询引用外查询语句中的一个或多个列.
嵌套子查询:子查询语句中又有子查询.