oracle资料:ORACLE复习资料8来源: 发布时间:星期三, 2008年10月22日 浏览:13次 评论:0
Oracle 复习
/*自定义的列标题 使用双引号或者不用引号*/ select cName "猎头" , nPercentageCharge "所收佣金金额" from contractrecruiter select cName 猎头 , nPercentageCharge 所收佣金金额 from contractrecruiter /*显示非重复行,关键字 distinct */ select distinct cCity from externalcandidate /*并置运算符,dual 哑元系统表*/ select 'Antony' || '$$$' || 'Martin' from Dual /* 算术运算符:+,-,*,/,% 比较运算符:=,>,<,>=,<=,!= 并置运算符:|| 逻辑运算符:and , or , not 其他运算符:between...and , in */ /*在select 语句中使用 where 子句*/ select vFirstName,vLastName from Externalcandidate where vQualification = 'Graduate' and nTestScore>=60 /*检索带匹配模式的数据*/ //like关键字 //通配符:% select vFirstName from Employee where vFirstName like '%a%a%'; //定位标记符:下划线(_)表示精确地和任意单个字符匹配 select vFirstName from Employee where vFirstName like '_s%' /*注意:like 后面的字符串区分大小写*/ select cNewspaperName ,vContactPerson,cPhone from Newspaper where cNewspaperName like '%Texas%' and vContactperson like 'Jackson%' /*检索带遗漏值的数据*/ select vFirstName,vLastName from Externalcandidate where dInterviewDate is null /*以特定顺序检索数据*/ select cPositionCode , vDescription from Position order by cPositionCode Asc /* 单行函数——标量函数 多行函数——组合函数 */ /*字符函数*/ //将每个单词的首字母大写,其他字符小写 select initcap('aBC') from dual //将字符串转成大写 select upper('daniel') from dual //将字符串转成小写 select lower('daniel') from dual //从左边删除指定字符串 select LTrim('DANIEL THOMSON','DANIEL') from dual //从右边删除指定字符串 select RTrim('DANIEL THOMSON','THOMSON') from dual //将两个字符串并置 select concat('Good','Morning') from dual //将指定字符串,从第pos个字符开始,截取length个字符长 //select substr(string,pos,length) from dual select substr('abcdefg',1,4) from dual //返回指定字符在指定字符串中的位置 select instr ('abcdefg','b') from dual //从左边填充 select lpad('30000',7,'$') from dual;——$$30000 //从右边填充 select rpad('30000',7,'$') from dual;——30000$$ //返回字符串的长度 select length('Good Morning') from dual //数值函数 //绝对值函数 select abs(-25) from dual //天花板函数 select ceil(-25.2) from dual //地板函数 select floor(-25.2) from dual //乘方 power(n,m) 指n的m次方 select power(10,2) from dual //整除后取余数 select mod(10,3) from dual //四舍五入 round select round(3.1415926,2) from dual //截短,不四舍五入 trunc select trunc(3.1415926,3) from dual //开平方 sqrt select sqrt(25) from dual //日期函数 //add_months 把第二个参数所指的月份加到第一个参数 select add_months('12-4月-1990',4) from dual //返回两个日期中较大的 greatest select greatest('18-4月-1984','18-3月-1984') from dual //结果是 18-4月-1984 //返回两个日期中较小的 least select least('18-4月-1984','18-3月-1984') from dual //返回18-3月-1984 //返回某月的最后一天 select last_day('20-1月-2000') from dual;——返回2000-1-31 //比较两个日期相隔的时间 //前面的减去后面的,如果前面的较小则返回负数,下例返回 -12 select months_between('20-1月-2000','20-1月-2001') from dual //返回给定日期的(相应参数所指)下一个日子 select next_day('20-1月-2000','星期一') from dual /*Oracle 的数据类型*/ VARCHAR2(size) 长度可变的字符串数据 1到4000(应该指定最大长度) CHAR(size) 固定长度的字符数据 1到2000(缺省值大小为1) NUMBER(p,s) 该十进制小数最长P位,小数点右边最长S位 DATE 日期和时间 LONG 长度可变的字符数据 上限为2G CLOB 字符数据 上限为4G RAW(size) 原始二进制数据 上限为2000(应指定最大值) LONG RAW 可变长度的原始二进制 上限为2G BLOB 二进制数据 上限为4G BFILE 存储在外部文件中的二进制上限为4G ROWID 十六进制字符串,表示行的唯一地址 //隐式数据转换 //显示数据转换 //日期格式化函数 //数值格式化函数 TO_CHAR:将DATE,NUMBER转换成CHAR select TO_CHAR(sysdate,'DD-MONTH-YYYY') from dual TO_DATE:将CHAR,NUMBER转换成DATE select TO_DATE(sysdate,'DD-MONTH-YYYY') from dual ROUND:舍入日期到函数所指最近的日期 select ROUND(sysdate,'MONTH') from dual —— 返回最近月的第一天 select ROUND(sysdate,'YEAR') from dual —— 返回最近年的第一天 TRUNC:截短到当月或者当年的第一天 select trunc(sysdate,'MONTH') from dual —— 返回当月的第一天 select trunc(sysdate,'YEAR') from dual —— 返回当年的第一天 TO_NUMBER:将CHAR或VARCHAR数据类型转换成NUMBER数据类型 select to_number(cEmployeeCode) from employee /*使用通用格式化函数*/ // NVL 函数:NVL(列名,缺省值) 用缺省值替换该列中空值 // Coalesce 函数: Coalesce(exp_name1,exp_name2,exp_name3......exp_n) //当exp_name1不为空,则返回exp_name1,否则,若exp_name2不为空值此函数返回exp_name2; //假如exp_name1,exp_name2皆为空,则返回exp_n /*在 select 语句里使用条件子句*/ select cCandidateCode,vFirstName,vLastName, case cState when 'California' then 'Send call letters' else 'No need to send call letter' end "Message" from Employee 文章引用自: 0
相关文章
读者评论
发表评论 |