Posted on 2007-09-06 09:07
tearofmoscow 閱讀(294)
評(píng)論(0) 編輯 收藏
一.------------------------->01
set linesize 500
set pagesize 100
run或 r 或 (符號(hào))/ ------------>都表示 把上一個(gè)命令重新執(zhí)行一次.
alter session set NLS_date_format='YYYY-MM-DD'; 修改用戶(hù)的會(huì)話(huà)來(lái)修改日期格式
默認(rèn)的日期格式是:'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)
這個(gè)命令可以多次使用,如按符號(hào) / 然后回車(chē),可以反復(fù)的輸入值.
insert語(yǔ)句中使用子查詢(xún);例如 insert into managers(id,name,salary,hiredate)
select empno,ename,sa,hiredate
from emp
where job='manager';
二------------------>02
1.Oracle每個(gè)SQL語(yǔ)句都是一個(gè)事務(wù),當(dāng)用commit或rollback 來(lái)結(jié)束事務(wù)
2.savepoint update_dept;設(shè)置保存點(diǎn);
可以用rollback to update_dept;方式,解決分步處理或者有選擇的執(zhí)行;
Orcale連接兩個(gè)字符串用兩個(gè)||,而SQL用&
%代表多個(gè)任意字符,_代表一個(gè)任意字符
IS NULL 是判斷是否為空
三.lesson--------------------->03
SQL函數(shù):
單行函數(shù):---->General/Character/Number/Date/Conversion
1.字符函數(shù)
轉(zhuǎn)換函數(shù)---->LOWER select lower(ename) from scott.emp;
/UPPER select * from scott.emp where ename=upper('king');
/INTCAP 首字母大寫(xiě),其余為小寫(xiě)
SQL> select initcap(ename) from scott.emp;
INITCAP(EN
----------
Smith
字符操縱函數(shù)------>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('同學(xué)們') from dual;
LENGTH('同學(xué)們')
-------------
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
數(shù)值函數(shù):ROUND
SELECT ROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1)
FROM DUAL;
結(jié)果:
按順序是:45.92 46 50
/TRUNC
SELECT TRUNC(45.923,2),TRUNC(45.923,0),TRUNC(45.923,-1)
FROM DUAL;
結(jié)果:
按順序是:45.92 45 40
/MOD
日期函數(shù):
MONTHS_BETWEEN:返回兩個(gè)日期之間月份的差值
MONTHS_BETWEEN('01-EP-95','11-JAN-94')
===>19.6774194
ADD_MONTHS:在日期上加上份數(shù).
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:截?cái)嗳掌?br />
TRUNC('25-JUL-95','MONTH') ===>01-JUL-95
TRUNC('25-JUL-95','YEAR') ===>01-JAN-95
日期函數(shù):
YYYY----代表完整的年份
YEAR----年份
MM------兩位數(shù)月份
MONTH---月份的完整名稱(chēng)
DY------每星期中天的三個(gè)字符
DAY-----天的完整名稱(chēng)
1.to_char函數(shù)
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函數(shù)
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函數(shù):將NULL值轉(zhuǎn)換成一個(gè)實(shí)際的值(date,character和number類(lèi)型可以使用)
eg:NVl(comm,0) 或NVL(hiredate,'01-JAN-97')或NVL(job,'No Job Yet')
4.DECODE 函數(shù):功能類(lèi)似 CASE or IF-THEN-ELSE 語(yǔ)句,但更容易.語(yǔ)法: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中的命令,保存在硬盤(pán)中.例如:
SQL> save 'D:\selectEmp.txt'
已創(chuàng)建文件 D:\selectEmp.txt
get:把命令從硬盤(pán)中加載到sqlplus環(huán)境中. 然后 鍵入 run或r或/ 執(zhí)行.例如:
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
@:把命令從硬盤(pán)中加載到sqlplus環(huán)境中 并自動(dòng)執(zhí)行.例如:
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
有問(wèn)題的地方請(qǐng)指正!!
謝謝!!