资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle课程小结1. DualDual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中DUAL就是个一行一列的表,如果你往里执行insert、delete、truncate操作,就会导致很多程序出问题不要去执行drop dual的操作,否则会使系统不能用,数据库起不了DUAL是属于SYS schema的一个表,然后以PUBLIC SYNONYM的方式供其他数据库USER使用2. Null在Oracle中,值null被看作一个未知值,任何包含NULL值的算术运算都会得到结果NULL,。因此,下面的select语句返回null select 5+7+null+9 from dual;select null*9 from dual;空字符串:Oracle 把空字符串 () 当作 null, 因此 length() 的值是null, 而不是 0。一个null值与任何其它值比较,包括null值,结果都是null,因此,对NULL的=、!=、=、=等操作的结果都是未知的,也就算说,这些操作的结果仍然是NULL。由于NULL是未知,所以NULL AND NULL、NULL OR NULL、NULL AND TRUE和NULL OR FALSE的值都是未知的,这些的结果仍然是NULL。但NULL AND FALSE和NULL OR TRUE不一样declare v_result boolean; v_result1 boolean;begin v_result:=null and false; v_result1:=null or true; dbms_output.put(v_result=); dbms_output.put_line(case when v_result then true else false end);-false dbms_output.put(v_result1=); dbms_output.put_line(case when v_result1 then true else false end); -true end;3. 函数函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函,也可自定义函数数单行函数,多行函数(组函数)Lower(c)-小写转换返回c小写字符Concat(c1,c2) -连接字符串c1,c2均为字符串,函数将c2连接到c1的后面,如果c1为null,将返回c2.如果c2为null,则返回c1,如果c1、c2都为null,则返回null,如果c1,c2其中之一为数字,或都为数字Concat(10,10) Concat(10,10)Substr( string, start_position, length )-取字串参数1:string 要处理的字符串 参数2:截取字符串的开始位置 参数3:截取的字符串的长度(而不是字符串的结束位置) ,如果省略,则返回从start_position开始到string尾之间的字符串Select SUBSTR(Hello,2) From DualInstr(column|expression,string,m,n)-查询指定字符在字符串中的位置参数1:被搜索的字符串或者是表达式参数2:要查找的字符参数3:从什么位置开始查询参数4:这个字符出现的位置 比如说:第一次出现的位置,第二次出现的位置。如果此参数3为正,从左到右开始检索,如果此参数为负,从右到左检索最后两个参数是默认的是1和1SELECT instr(abc,d) FROM dual; - 返回 0 SELECT instr(syran mo,a,1,2) FROM dual; - 返回 0SELECT INSTR(oWo, W) FROM DUAL;-?Round( number, decimalplaces )-四舍五入函数参数1:要处理的数值(数值表达式) 参数2:四舍五入时取的小数的位数,不填则返回整数select round(123.456) from dual; 得到 123 select round(123.456, 0) from dual; 得到 123 select round(123.456, 1) from dual; 得到 123.5 select round(123.456, 2) from dual; 得到 123.46 select round(123.456, 3) from dual; 得到 123.456 select round(-123.456, 2) from dual; 得到 -123.46Mod(number,divisor) -返回一个number除以divisor的余数参数1:为被除数。 参数2:为除数。如果 divisor 为零,函数 MOD 返回值 为原来numberMOD(3, 2) 等于1 MOD(3, 0) 等于3 MOD(2,3) 等于2 To_char(date, format_model)-日期转为字符To_char(number, format_model)-数字转为字符格式化元素,用于显示字符形式的数字值: 9表示一个数,.打印一个小数点,打印一个千位指示 SELECT TO_CHAR(12345.529,999,999.99) FROM DUAL;- 12,345.53 Replace(text, search_string, replacement_string) -替换字符串从字符串(text)查找一个文本表达式(search_string),如果找到,用指定的置换串(replacement_string)代替它如果replacement_string为空,那么所有的search_string都被移除。如果search_string为null,那么就返回原来的SELECT REPLACE(hello,ello,i) FROM DUAL; -hiTo_number(, , )是将一些处理过的按一定格式编排过的字符串变回数值型的格式SELECT TO_NUMBER(20)*5 FROM DUAL;-100To_date( string1, format_mask , nls_language )-转换为日期Format_mask yyyy-MM-dd HH24:mi:ssselect To_Date(1981-1-1,YYYY-MM-DD) from dual -1981-1-1Length(string)-返回字符串的长度select length(我) from dual -1select length(AB) from dual -2 4. dbms_output如果dbms_output.put_line的内容不能显示,需要在命令行中先敲入set serveroutput on;put和put_line 当使用过程put_line时,会自动在行的尾部追加行结束符;当使用过程put时,需要使用过程 new_line追加行结束符. set serverout on begin dbms_output.put_line(伟大的中华民族); dbms_output.put(中国); dbms_output.put(,伟大的祖国); dbms_output.new_line; end; / 伟大的中华民族 中国,伟大的祖国 new_line 该过程用于在行的尾部追加行结束符.当使用过程PUT时,必须调用NEW_LINE过程来结束行.5. PL/SQL 块DECLARE/*定义部分(可选)定义常量、变量、复杂数据类型、游标、例解*/BEGIN/*执行部分(必须)PL/SQL语句和SQL语句*/EXCEPTION/*异常处理部分(可选)处理运行错误*/END; /*块结束标记*/命名块:指具有特定名称标识的PL/SQL块,在PL/SQL块前使用加以标记 begin dbms_output.put_line(Hello,World!); begin dbms_output.put_line(Good); end; - end;-赋值操作符“:=”变量名:=值定义变量 变量名 数据类型StudScore NUMBER(5,2);StudName VARCHAR(20);定义常量添加关键字 CONSTANT 并赋值PI CONSTANT NUMBER(8,7):=3.1415926;条件控制 有三种语句形式 IF-THENIF-THEN-ELSEIF-THEN-ELSIFIF THEN语句;END IF;IF THEN语句;ELSE语句;END IF;IF THEN语句;ELSIF THEN语句;ELSIF THEN语句;ELSE语句;END IF;CASE WHEN THEN 语句; WHEN THEN 语句; WHEN THEN 语句; Else 语句;End Case;CASE WHEN THEN 语句; WHEN THEN 语句; WHEN THEN 语句; Else 语句;End Case;有三种形式的 LOOP 语句 LOOPWHILE-LOOPFOR-LOOPLOOP语句; EXIT EXIT-WHENEND LOOP;EXIT 强制循环无条件完成 立即退出循环EXIT WHEN ;EXIT 语句时对 WHEN 子句中的条件进
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号