您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > oracle讲解Chapter2
Version3.0查询和SQL函数第二章(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle2/42本章目标•SELECT语句的使用•SQL*Plus中的运算符•SQL*Plus函数(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle3/42一、SELECT语句4-1•SELECT可以用于:―创建现有表的副本―插入来自其他表的记录―使用别名让列显示其他名称(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle4/42SELECT语句4-2•创建现有表的副本-语法:Createtablenew_table_nameasSELECTcolumn_namesfromexisting_table_name;Createtablenew_table_name(col_name1,col_name2,…,col_namen)asSELECTcolumn_name1,col_name2,…,col_namenfromexisting_table_name;(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle5/42SELECT语句4-3•插入来自其他表的记录-语法:Insertintotable_name(SELECTcolumn_namesfromexisting_table_name);(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle6/42SELECT语句4-4•为列显示不同名称-语法:SELECTcolumn_namealias_namefromtable_name;(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle7/42二、SQL*Plus中的运算符•运算符的分类―算术运算符―比较运算符―逻辑运算符―连接运算符(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle8/42算术运算符•算术运算符―用于执行数学计算•不同的算术运算符―加(+)―减(-)―乘(*)―除(/)(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle9/42比较运算符•比较运算符―用于将一个表达式与另一个表达式进行比较•不同的比较运算符―=、!=、、、=、=―IN―LIKE―ISNULL,反面:ISNOTNULL,非NOTISNULL―BETWEEN和NOTBETWEEN(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle10/42逻辑运算符•逻辑运算符―用于合并两个条件的结果以产生单个结果•不同的逻辑运算符―AND―OR―NOT(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle11/42连接运算符•连接运算符―用于将两个或多个字符串合并在一起;或者将一个字符串与一个数据值合并在一起―符号||表示连接运算符―注意符号的左右两边必须留空格―用于合并各列为一个字符串的查询(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle12/42操作符的优先级•算术操作符最高•连接操作符•比较操作符•NOT逻辑操作符•AND逻辑操作符•OR逻辑操作符最低(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle13/42三、SQL*Plus函数11-1•SQL*Plus函数―用于操纵数据―接受一个或多个参数并返回一个值•SQL*Plus函数的类别―单行函数―分组函数(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle14/42•单行函数―对每一行返回一个值―也称为标量函数―在SELECT和WHERE子句中使用SQL*Plus函数11-2(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle15/42•单行函数的分类―日期函数―字符函数―数字函数―转换函数―其他函数―常规函数SQL*Plus函数11-3(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle16/42•日期函数―Add_months―对指定的日期增加指定的月数后返回一个日期―Add_months(d,n),d表示日期,n表示月数―Last_day―返回月末最后一天相应的日期―Last_day(d),d表示日期―Months_between―查出两个日期之间的月份数―Months_between(d1,d2),应是d1-d2的差值除以31天即为结果1、日期函数:SQL*Plus函数11-4(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle17/42日期函数(续)•日期函数―Round―返回日期,舍入到格式模型所指定的单位,默认情况下日期舍入到最接近的日期―Round(d,[fmt]),d为日期,fmt是格式模型―若fmt指定的是year,则舍入到最接近年的1月1日,若是日期大于或等于7月1日,则舍入下一年的1月1日―若fmt指定的是month,则舍入到最接近月的1日,大于15日舍入到下一个月的1日,否则舍入到当月的1日―若fmt指定的是day,则舍入到最接近的日期日(一周的第一天)―若缺少fmt,则保持不变―Next_day―next_day(d,day),d表示日期,day表示星期的任意一天,整数―显示d日期后的一周的星期(day-1)(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle18/42日期函数(续)―Trunc―返回日期,trunc(d,[fmt]),其时间部分截断为格式模型所指定的单位―表示滞后于当前日期,刚好跟next_day()函数相反―理解:trunc()类似于取整函数,next_day()类似于四舍五入函数―Greatest―Greatest(d1,d2,…),返回参数列表中的最晚日期,即取日期值最大的日期―New_time―显示日期列或日期常数在其他时区的时间和日期―New_time(date,’this’,’other’),this代表当前时区的三个缩写字母,other代表目标时区所在的三个缩写字母(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle19/42•字符函数―Substr―Substr(s,n1,[n2]):从字符串s指定的n1处截取n2个字符串作为返回值―Instr―Instr(s,s1,[n]):从n处位置开始判断s1字符串是否在字符串s2中―Length―求字符串的长度―Chr/Ascii―Chr(n):将数字n转换成ASCII相同的字符―Ascii(s):将字符串s的首字母转换成对应的ASCII码值2、字符串函数:SQL*Plus函数(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle20/42字符函数(续)―字符串函数―Initcap(s):将字符串s的首字母转换为大小―Lpad―Lpad(s,n,s1):规定字符串s的个数为n,不足的在最左边用n-Length(s)个字符串s1填充―Rpad―Rpad(s,n,s1):规定字符串s的个数为n,不足的在最右边用n-Length(s)个字符串s1填充―Ltrim―Ltrim(s,s1):返回从最左边截取掉与s1字符串相匹配的字符串―若没有s1,则截取掉最左边的空格―Rtrim―Rtrim(s,s1):返回从最右边截取掉与s1字符串相匹配的字符串―若没有s1,则截取掉最右边的空格(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle21/42字符函数(续)―字符串函数―Trim―Trim(s):合并了Ltrim()和Rtrim()的功能―Trim(leadings1froms):返回删除前导与s1相同的字符串后所余下的字符串―Trim(trailings1froms):返回删除结尾与s1相同的字符串后所余下的字符串―Trim(s1froms):删除两端含有的s1―Trim(s):删除两端的空格(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle22/42字符函数(续)―Decode–执行逐个值替换–Decode(value,if1,then1,if2,then2,…),其中if和then要成对匹配;value值若是if1,则用then1替换,否则,value值若是if2,则用then2替换,依次类推•Translate–Translate(s,s1,s2):用字符串s2去替换字符串s中含有的字符串s1–逐字符替换法,只要s1中有s2相同的字符,都会用等位字符去替换,若s2中不够等位字符,则用空格替换–示例:translate(‘jack’,’msc’,’1d’)-’jak’(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle23/42字符函数(续)•Replace–Replace(s,s1,s2):在s中用s2去替换搜索到的匹配字符串s1•Concat–Concat(s1,s2):返回两个字符串连接后的结果•Upper–Upper(s):将字符串s全部转换为大写•Lower–Lower(s):将字符串s全部转换为小写(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle24/42•数字函数―Mod―Mod(n1,n2):求n1/n2的余数―Round―Round(n1,n2):返回n1小数点为n2位的数,四舍五入法―Trunc―Trunc(n1,n2):按指定位数n2为小数点精度返回n1数,截取法―Abs―Abs(n):取绝对值―Ceil(n):对n按四舍五入取整―Floor(n):对n使用截取法取整3、数字函数:SQL*Plus函数11-6(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle25/42数字函数(续)―Power(n1,n2):求n1的n2次方―Sqrt(n):求n的平方根,n要求为非负数―Exp(n):求e的n次幂―Cos(n):求弧度为n的余弦―Cosh(n):求数n的余切―Sign(n):返回值的符号,无论值的大小;正数返回值为1,负数返回值为-1,0返回值为0―Ln(n):返回n的自然对数(Oracle数据库设计与实现)DatabaseDesignandImplementationUsingOracle26/424、转换函数:SQL*Plus函数11-7•转换函数―To_char(d|n,fmt)―将日期或数字按指定格式转换为字符串―To_char(sysdate,’yyyy”-”mm”-”dd’)―To_char(23457,’$99,999.00’)―rr:返回指定的日期的世纪年份值―To_date(s,[fmt])―将char或var
本文标题:oracle讲解Chapter2
链接地址:https://www.777doc.com/doc-13048 .html