标题 | Oracle数据库教学中常见函数的应用 |
范文 | 蔡小艳 崔艳萍 孟宪宇 阎知知 摘要:針对学生对Oracle函数学习、理解较难的状况,笔者结合士兵表,灵活应用Oracle的内置函数完成了各种士兵信息的查询,通过实例深入浅出地介绍了常用内置函数的作用与功能。 关键词:Oracle数据库;字符函数;数字函数;转换函数 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)27-0122-02 Oracle数据库系统提供了许多内置函数,按照操作的数据行数可以分为单行函数和聚合函数;按照操作的数据类型和功能又可以分为字符函数、数字函数、日期函数、聚合函数和转换函数等。本文主要介绍在Oracle数据库教学中常用的几类函数。 1字符函数 1.1 substr(string,Start,length) 函数substr(string,start,length)的功能是返回string中的一个子字符串,这个子字符串从start处开始,取length个字符。 例1:从士兵表中统计各个省份的士兵人数。 分析:籍贯字段中包含了省、市或县的信息,如果按省份来统计士兵的人数,则需要使用substr()函数提取籍贯字段中的省份信息。 selectsubstr(籍贯,1,3)省份,count(*)士兵人数 from士兵表 groupbysubstr(籍贯,1,3); 1.2 concat(stringl,string2) 函数concat(stringl,string2)的功能是连接stringl和string2两个字符串。 例2:根据直招士官的士兵登记表号生成其士兵证号。 分析:直招士官的士兵证号编码规则为在士兵登记表号前加缀“士字第”,在士兵登记表号末位加缀1位大写英文字母“z”。士兵表中每位士兵的士兵登记表号已录入,生成士兵证号则需要嵌套使用concat()函数,分别给士兵登记表号添加前缀和后缀。 update士兵表 set士兵证号=concat(concat('士字第,士兵登记表号),z号) where士官来源=直招士官; 2日期时间函数 sysdate 函数sysdate的功能是返回当前系统的日期时间。 在Oracle数据库的教学中,主要使用sysdate函数配合出生年月、入伍年月来计算士兵的年龄、兵龄等信息。 3数字函数 3.1 trtmc(x,[y]) 函数trunc(x,[y])的功能是对x进行截取,y为可选参数,说明对x截取到第几位小数。如果没有指定v或者v为0,则对x进行取整;如果y大于0,则截取x至小数点右边的第y位;如果y小于0,则对x小数点左边指定v位的部分置0,小数被去掉。 例3:查询年龄在18到20之间的士兵姓名、性别、籍贯和年龄。 分析:士兵表中有出生年月字段,没有年龄字段。在查询士兵年龄时,需要借助Oracle的日期时间函数sysdate和出生年月字段来计算年龄。 select姓名,性别,籍贯,trunc((sysdate-出生年月)/365,0)年龄from士兵表 where trunc((sysdate-出生年月)/365,0)between18and20; 3.2 round(x,[y]) 函数round(x,【y】)的功能是按照参数y对x进行四舍五入截取。如果没有指定y或者y为0,则对x进行四舍五入并取整;如果y大于0,则截取x至小数点右边的第y位并四舍五入;如果y小于0,则对x小数点左边指定v位的部分置0,小数被去掉。 例4:查询军衔为下士并且下士服役即将满3年的士兵。 分析:士兵表中有军衔时间字段,没有服役年限字段。在查询服役时间时,需要借助Oracle的日期时间函数sysdate和军衔时间字段来计算服役年限。 select* from士兵表 where军衔=下士'and round(、(sysdate-军衔时间)/365,0)=3; 4转换函数 4.1to_date(x,[format]) 函数to_date(x,[formall)的功能是按照format格式,将字符串x转化为日期时间数据。如果省略了format格式,则默认的日 期时间格式是DD-MM-YY。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。