浏览 1111 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-07-27
一.------------------------->01
set linesize 500 set pagesize 100 run或 r 或 (符号)/ ------------>都表示 把上一个命令重新执行一次. alter session set NLS_date_format='YYYY-MM-DD'; 修改用户的会话来修改日期格式 默认的日期格式是:'DD-MON-YY' SQL> insert into scott.emp(empno,ename,sal) values(&employeeid,'&name',&employeesal); 输入 employeeid 的值: 9001 输入 name 的值: jiake02 输入 employeesal 的值: 4000 原值 2: values(&employeeid,'&name',&employeesal) 新值 2: values(9001,'jiake02',4000) 这个命令可以多次使用,如按符号 / 然后回车,可以反复的输入值. insert语句中使用子查询;例如 insert into managers(id,name,salary,hiredate) select empno,ename,sa,hiredate from emp where job='manager'; 二------------------>02 1.Oracle每个SQL语句都是一个事务,当用commit或rollback 来结束事务 2.savepoint update_dept;设置保存点; 可以用rollback to update_dept;方式,解决分步处理或者有选择的执行; Orcale连接两个字符串用两个||,而SQL用& %代表多个任意字符,_代表一个任意字符 IS NULL 是判断是否为空 三.lesson--------------------->03 SQL函数: 单行函数:---->General/Character/Number/Date/Conversion 1.字符函数 转换函数---->LOWER select lower(ename) from scott.emp; /UPPER select * from scott.emp where ename=upper('king'); /INTCAP 首字母大写,其余为小写 SQL> select initcap(ename) from scott.emp; INITCAP(EN ---------- Smith 字符操纵函数------>CONCAT select empno,concat(ename,job) from scott.emp;<=>select ename||job from scott.emp; EMPNO CONCAT(ENAME,JOB) ------ ------------------- 7369 SMITHCLERK 7499 ALLENSALESMAN /LENGTH 1.select empno,ename,length(ename) from scott.emp; EMPNO ENAME LENGTH(ENAME) ------ ---------- ------------- 7369 SMITH 5 2.select length('同学们') from dual; LENGTH('同学们') ------------- 3 /SUBSTR select empno,ename,substr(ename,1,4) from scott.emp; EMPNO ENAME SUBSTR(E ------ ---------- -------- 7369 SMITH SMIT 7499 ALLEN ALLE /INSTR 返回位置值 SQL> select ename,instr(ename,'S') from scott.emp; ENAME INSTR(ENAME,'S') ---------- ---------------- SMITH 1 ALLEN 0 WARD 0 JONES 5 /LPAD 把字符串按某种模式显示 SQL> select ename,lpad(ename,10,'*') from scott.emp; ENAME LPAD(ENAME,10,'*') ---------- -------------------- SMITH *****SMITH ALLEN *****ALLEN WARD ******WARD JONES *****JONES 数值函数:ROUND SELECT ROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1) FROM DUAL; 结果: 按顺序是:45.92 46 50 /TRUNC SELECT TRUNC(45.923,2),TRUNC(45.923,0),TRUNC(45.923,-1) FROM DUAL; 结果: 按顺序是:45.92 45 40 /MOD 日期函数: MONTHS_BETWEEN:返回两个日期之间月份的差值 MONTHS_BETWEEN('01-EP-95','11-JAN-94') ===>19.6774194 ADD_MONTHS:在日期上加上份数. ADD_MONTHS('11-JAN-94',6) ===>'11-JUL-94' NEXT_DAY:指定日期的后一天. NEXT_DAY('01-SEP-95','FRIDAY') ===>'08-SEP-95' LAST_DAY:月份中最后一天. LAST_DAY('01-SEP-95) ===>'30-SEP-95' ROUND:四舍五入日期 ROUND('25-JUL-95','MONTH') ===>01-AUG-95 ROUND('25-JUL-95','YEAR') ===>01-JAN-96 TRUNC:截断日期 TRUNC('25-JUL-95','MONTH') ===>01-JUL-95 TRUNC('25-JUL-95','YEAR') ===>01-JAN-95 日期函数: YYYY----代表完整的年份 YEAR----年份 MM------两位数月份 MONTH---月份的完整名称 DY------每星期中天的三个字符 DAY-----天的完整名称 1.to_char函数 SQL> select ename,hiredate,to_char(hiredate,'YYYY-MM-DD') from scott.emp; ENAME HIREDATE TO_CHAR(HI ---------- ---------- ---------- SMITH 17-12月-80 1980-12-17 ALLEN 20-2月 -81 1981-02-20 WARD 22-2月 -81 1981-02-22 2.to_date函数 1 insert into scott.emp(empno,ename,hiredate) 2* values(9004,'dtConvert',to_date('1982-05-04','YYYY-MM-DD')) EMPNO ENAME JOB MGR HIREDATE SAL COMM ------ ---------- --------- ---------- ---------- ---------- ---------- -- 9004 dtConvert 04-5月 -82 3.NVL函数:将NULL值转换成一个实际的值(date,character和number类型可以使用) eg:NVl(comm,0) 或NVL(hiredate,'01-JAN-97')或NVL(job,'No Job Yet') 4.DECODE 函数:功能类似 CASE or IF-THEN-ELSE 语句,但更容易.语法:DECODE(col/expression,search1,result1 [,search2,result2,......,] [,default] ) 1 select job,sal, 2 DECODE(job,'ANALYST',SAL*1.1, 3 'CLERK',SAL*1.15, 4 'MANAGER',SAL*1.20, 5 SAL) 6 REVISER_SALARY 7* FROM scott.emp JOB SAL REVISER_SALARY --------- ---------- -------------- CLERK 800 920 SALESMAN 1600 1600 SALESMAN 1250 1250 MANAGER 2975 3570 SALESMAN 1250 1250 MANAGER 2850 3420 MANAGER 2450 2940 ANALYST 3000 3300 PRESIDENT 5000 5000 SALESMAN 1500 1500 CLERK 1100 1265 CLERK 950 1092.5 ANALYST 3000 3300 CLERK 1300 1495 5.命令: save:把sqlplus中的命令,保存在硬盘中.例如: SQL> save 'D:\selectEmp.txt' 已创建文件 D:\selectEmp.txt get:把命令从硬盘中加载到sqlplus环境中. 然后 键入 run或r或/ 执行.例如: SQL> get 'D:\selectEmp.txt' 1* select * from scott.emp SQL> r 1* select * from scott.emp EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- ---------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 @:把命令从硬盘中加载到sqlplus环境中 并自动执行.例如: SQL> @ D:\selectEmp.txt EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- ---------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 有问题的地方请指正!! 谢谢!! 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


